首先引入pssql和jpa的依赖包:
org.postgresql
postgresql
org.springframework.boot
spring-boot-starter-data-jpa
spring:
datasource:
driver-class-name: org.postgresql.Driver
username: postgres
password: Hik12345
url: jdbc:postgresql://10.21.82.6:5432/test
jpa:
hibernate:
ddl-auto: update
show-sql: true
#防止启动时打印出“java.sql.SQLFeatureNotSupportedException: 这个 org.postgresql.jdbc.PgConnection.createClob() 方法尚未被实作。”的异常
properties:
hibernate:
temp:
use_jdbc_metadata_defaults: false
讲一下ddl-auto:
一般情况下设置成update,启动程序时会根据实体类自动创建数据库表
/**
* 用户
*
* @author renjie
* @version 1.0.0
*/
@Entity
@Table(name = "user_info")
public class UserInfo implements Serializable {
private static final long serialVersionUID = 7291943992082860001L;
@Id
private Long id;
@Column(name = "name",nullable = false)
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
使用@Table来指定表的一些属性,这里我设定了表名。
使用@Id来指明主键
使用@Column可以设定列的属性,包括非空,名称,唯一,默认值等等。
接下来我们创建一个接口实现JpaRepository或者调用entitymanage的类方法,这一篇我先实现第一种方法来给大家演示,下一篇我们再说后一种方法。
/**
* 数据层
*
* @author renjie
* @version 1.0.0
*/
public interface UserRepository extends JpaRepository, JpaSpecificationExecutor {
}
JPA已经把我们常用的一些增(save),删(delete),改(update),查(find)已经做了一定的封装,所以在这个接口中我们直接拿来使用就可以了。但若要进行一些条件查询、修改之类的操作,则需要自定义方法。jpa根据方法名称来进行sql查询,如你需要根据用户名称查询用户,可以在UserRepository接口中添加如下方法:
List findUserInfoByName(String name);
控制层代码如下:
/**
* 控制层
*
* @author renjie
* @version 1.0.0
*/
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
UserServcie userServcie;
@RequestMapping(value="/save", method = RequestMethod.POST)
public ObjectResult save(UserInfo userInfo){
userServcie.saveUser(userInfo);
return ObjectResult.success();
}
@RequestMapping(value="/find", method = RequestMethod.GET)
public ObjectResult save(){
List userInfos = userServcie.find();
return ObjectResult.success(userInfos);
}
}
service层的代码就不贴了,直接调用UserRepository接口中的save、findAll方法即可