01 spring boot读取配置信息
02 多环境配置
03 处理全局异常
04 spring boot admin
05 spring mvc + mybatis
06 spring boot 数据校验
07 spring boot 单元测试
08 spring boot 热启动
继续学习,今天通过spring boot集成 jpa 这个orm不知道现在用的人多不多。通常针对简单的后台配置界面我们会用到jpa,毕竟CRUD的基本操作可以省去不少代码量。对于比较复杂的查询的场景用mybatis会多一点。废话不多说,咱们主要是动手,开始~
准备项目
pom.xml文件的修改,这个很重要,主要是引入jpa的依赖,然后还有数据库的驱动和连接池。
org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-thymeleaforg.springframework.boot spring-boot-starter-data-jpaorg.springframework.boot spring-boot-starter-testmysql mysql-connector-javacom.alibaba druid 1.0.9
application.properties的配置,这里主要包括数据库驱动,数据库访问的用户名,密码,数据库连接池。这里打开了ddl的自动化,也就是说先生成了entity,jpa会帮助你在数据库中生成对应的表。并且可以通过log显示sql语句。
spring.datasource.driverClassName=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/springboottestspring.datasource.username=rootspring.datasource.password=123456spring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.jpa.hibernate.ddl-auto=updatespring.jpa.show-sql=true
代码准备
先来个实体类,这里建立了一个students的实体类,需要注意的是定义的几个annotation
Entity:定义实体类
Table:对应要生成的表
Id:,GeneratedValue:这里定义id作为自增长
Column:定义字段
@Entity@Table(name="students")public class students { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="id") private Integer id; @Column(name="name") private String name; @Column(name="age") private Integer age; @Column(name="address") private String address; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; }}
再来个数据库访问层吧
这里注意集成自JpaRepository,两个参数分别是实体类的类型和OID的类型
/** * 参数一 T :当前需要映射的实体 * 参数二 ID :当前映射的实体中的OID的类型,这里的OID在students中就是自增长的那个ID的类型 * */public interface StudentsRepository extends JpaRepository {}
测试结果
来个测试类吧,测试方便一点。
@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest(classes=DemoSpringbootSpringmvcMybatisApplication.class)public class StudentsRepositoryTest { @Autowired private StudentsRepository studentsRepository; @Test public void testSave(){ students st = new students(); st.setAddress("address"); st.setName("test"); st.setAge(12); this.studentsRepository.save(st); }}
这里注意打上RunWith和SpringBootTest的annotation,引入dao类以后就可以开始测试了。
现在数据库中是不存在students的table的运行以后就应该生成这个table并且插入一条记录进去。
搞完收工,喜欢就关注我。谢谢各位