|
0.先推荐一个工具——lombok,pom文件如下:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>compile</scope>
</dependency>
可以使用注解@Data 编译时自动生成get,set方法,构造函数,toString方法。
@Data
@Entity
public>
{
@Id
private String>
private String account;
@Column(name
= "call_phone")
private String phone;
@Column(name
= "nick_name")
private String nickname;
private String password;
private String salt;
private int userType;
private String createUser;
private Timestamp createTime;
private int state;
}
生成后的效果如下:
1.pom.xml文件下添加如下依赖,引入spring-boot-jpa的jar包,以及mysql驱动
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2.在/src/main/resources/application.properties中配置spring datasource及hibernate方言
(Spring boot 默认使用hibernate作为JPA的实现)
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false
spring.datasource.username
=root
spring.datasource.password
=root
spring.datasource.tomcat.max
-active=100
spring.datasource.tomcat.max
-idle=200
spring.datasource.tomcat.initialSize
=20
spring.jpa.database
-platform=org.hibernate.dialect.MySQL5Dialect 3.定义Entity和Repository(接口)。
Entity--Account实体类如下:
@Entity会被spring扫描并加载,
@Id注解在主键上
@Column name="call_phone" 指该字段对应的数据库的字段名,如果相同就不需要定义。数据库下划线间隔和代码中的驼峰法视为相同,如数据库字段create_time等价于Java类中的createTime,因此不需要用@Column注解。
@Data
@Entity
public>
{
@Id
private String>
private String account;
@Column(name
= "call_phone")
private String phone;
@Column(name
= "nick_name")
private String nickname;
private String password;
private String salt;
private int userType;
private String createUser;
private Timestamp createTime;
private int state;
}
Repository如下:
@Repository
public interface AccountRepository extends JpaRepository<Account, String>
{
Account findOneByAccount(String account);
}
4.在其他@Component中调用
@RestController
@RequestMapping(
"/subsystem")
public>
{
@Autowired
AccountRepository accountRepository;
@PostMapping(path
= "/admin/info")
public String getAdminInfo(String currentAccount)
{
Account account
= accountRepository.findOneByAccount(currentAccount);
System.out.println(account);
return account.toString();
}
} |
|
|