- 创建一个spring boot 项目
- 目录结构
- 添加maven 依赖
-1.创建一个spring boot 项目.
2.添加maven 依赖
1.创建一个spring boot 项目.
2.添加maven 依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.29</version>
</dependency>
- application.properties 配置文件内容如下
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/zqp
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.show-sql= true
spring.jpa.hibernate.ddl-auto=update//create //等等.就是跟着实体创建数据库表.正式环境基本不用
spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jackson.serialization.indent_output=false
dao 层:
-
public interface PersonRespository extends JpaRepository<Person, Integer>{
}
- model层
- @Entity
public class Person {
@Id
@GeneratedValue
private int id;
private String name;
private String age;
private Person(int id, String name, String age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
private Person() {
super();
// TODO Auto-generated constructor stub
}
}
- servece 层
public class PersonService {
@Autowired
PersonRespository personRespository;
@Transactional(rollbackOn=IllegalArgumentException.class)
public Person savePersonWithRollBack(Person person){
Person p = personRespository.save(person);
if(p.getName().equals("xxx")){
throw new IllegalArgumentException("xx 数据库 ,已经存在");
}
return p;
}
}
- controller 层
@RestController
@SpringBootApplication
public class DataController {
//测试事务能否回滚
@RequestMapping("/rollBack")
public Person rollBack(Person person){
Person p = personService.savePersonWithRollBack(person);
return p;
}
}
- 注意.spring boot 的入口要写到其他包目录的上面.不然其他bean 会扫描不到.spring boot 的入口 是从启动程序上级包开始像下扫描
- spring data-jpa 默认开启了事务注解,可以直接使用可以看spring-data-jpa包下 simplejpaRespository.class
- 这篇博客是基础搭建.实际上spring data-jpa 有很强大的功能.