SpringBoot之JPA入门
1、springboot之jpa支持
jpa不需要mybatis的逆向工程,只要写一个实体类和注解,他能自动生成表,jpa自带分页,不需切面依赖。
1.先创建SpringBoot项目
Developer Tools:
选Lombok
Web 选 Spring Web
Template Engines
选 Thymeleaf
SQL
选JDBC APL ,Sping Data JPA,MySql Driver
2. 导入druid的数据源
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
修改mysql数据库的版本,改为5.1.44
3. yml配置,注意位置要好。
server:
port: 80
servlet:
context-path: /
spring:
jpa:
hibernate:
ddl-auto: update
show-sql: true
datasource:
#1.JDBC
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/yind?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
username: root
password: 123
druid:
initial-size: 5
min-idle: 5
max-active: 20
max-wait: 60000
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 30000
validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: true
test-on-return: false
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
filter:
stat:
merge-sql: true
slow-sql-millis: 5000
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
session-stat-enable: true
session-stat-max-count: 100
stat-view-servlet:
enabled: true
url-pattern: /druid/*
reset-enable: true
login-username: admin
login-password: admin
allow: 127.0.0.1
建表及注解
1.先创建一个实体类
@Data
@Entity
@Table(name = "t_springboot_book")
public class Book {
@Id
@GeneratedValue
private Integer bid;
@Column(length = 100)
private String bname;
@Column
private Float price;
@Table(name = “t_springboot_book”)创建一个t_springboot_book表,数据库是没有这个表的
@Entity与实体类进行映射
@Id 主键
@GeneratedValue 自动增长,序列,不过一般不用,可能出现跳号的情况。
@Column(length = 100) 列设置指定长度
2. 建表
找到启动类zhongmain对应的启动,启动。
创建resources包JpaDao类,jpa值增删改查
* 只要继承JpaRepository,通常所用的增删查改方法都有
* 第一个参数:操作的实体类
* 第二个参数:实体类对应数据表的主键
*/
@Repository
public interface JpaDao extends JpaRepository<Book, Integer> {
}
测试增删改查
controller层
@Autowired
private JpaDao jpaDao;
@RequestMapping("/add")
public String add(Book book){
jpaDao.save(book);
return "success";
}
@RequestMapping("/edit")
public String edit(Book book){
jpaDao.save(book);
return "success";
}
@RequestMapping("/del")
public String del(Book book){
jpaDao.delete(book);
return "success";
}
@RequestMapping("/getOne")
public Book getOne(Integer bid){
// 会出现懒加载问题:org.hibernate.LazyInitializationException: could not initialize proxy - no Session
// return jpaDao.getOne(bid);
return jpaDao.findById(bid).get();
}
@RequestMapping("/getAll")
public List<Book> getAll(){
return jpaDao.findAll();
}
浏览器输入请求进行测试
注意:这里和你的表可能不一样,访问语句也不一样
http://localhost/springboot/jpa/getOne?bid=11
http://localhost/springboot/jpa/getAll
http://localhost/springboot/jpa/add?bname=不死不灭&price=234
http://localhost/springboot/jpa/add?bname=斗破苍穹&price=234&bid=11
http://localhost/springboot/jpa/del?bid=11
#总结:
1.创建时选这jpa的依赖创建后就有,在导入duird的依赖,
2.yml配置,配置端口,和jpa,在配置数据库连接池
3.测试即可