JPA : 数据库持久化规范 (也是 关系映射设计的规范)
hibernate : 实现了 JPA 的框架。
spring-boot-jpa:在原有 hibernate 框架的基础上在做继续包装,简化。
下面是 spring-boot-jpa 的使用方式。、
1、在pom.xml 中添加 依赖包:
2、编写 application.properties
3、创建 实体映射对象
4、创建 对象 Repository 接口
5、创建 对象服务
6、创建 对象 Controller
1、在pom.xml 中添加 依赖包:
<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/resouces 下创建 :
application.properties
#server.port=8080
# 数据库访问配置
# 主数据源,默认的
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username= root
spring.datasource.password= root
spring.datasource.driverClassName = com.mysql.jdbc.Driver
#指定数据库
spring.jpa.database=mysql
# 是否显示sql语句
spring.jpa.show-sql=true
# hibernate ddl auto (create create-drop update)
spring.jpa.hibernate.ddl-auto=update
# 选择自己的 命名策略 ImprovedNamingStrategy (比如 orderItem >> order_item)
spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy
3、创建 实体对象
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(name = "userName")
private String name;
private String orderItem;
。。。get set 。。。
}
4、创建接口 PersonRepository 继承 CrudRepository
/*这里第一个泛型 Person 代表使用对象 Integer 代表 id类型*/
public interface PersonRepository extends CrudRepository<Person, Integer> {
}
5、创建 PersonService 注入 PersonRepository 类
@Service
public class PersonService {
@Resource
private PersonRepository mPersonReposity;
@Transactional//加入事物管理
public void save(Person p){
mPersonReposity.save(p);
}
@Transactional
public void delete(int id){
mPersonReposity.delete(id);
}
public Iterable<Person> getAll(){
return mPersonReposity.findAll();
}
}
6、创建 对象 Controller
@RestController
@RequestMapping("/person")
public class PersonController {
@Resource
public PersonService mPersonService;
@RequestMapping("/save")
public String save(){
Person p = new Person();
p.setName("zhang ");
p.setOrderItem("1");
mPersonService.save(p);
return "save OK";
}
@RequestMapping("/delete")
public String delete(){
mPersonService.delete(1);
return "delete Ok";
}
@RequestMapping("/getAll")
public Iterable<Person> getAll(){
return mPersonService.getAll();
}
}
测试:
127.0.0.1:8080/person/save 保存
127.0.0.1:8080/person/getAll 查询
127.0.0.1:8080/person/delete 删除