springboot mysql jpa_spring boot jpa 访问 mysql

spring boot 访问 mysql

方式二:spring data jpa

为什么使用 jpa :

第一次使用 Spring JPA 的时候,感觉这东西简直就是神器,几乎不需要写什么关于数据库访问的代码一个基本的 CURD 的功能就出来了。

如何使用:

在 pom 文件中引入依赖

org.springframework.boot

spring-boot-starter-data-jpa

org.springframework.data

spring-data-commons

2.1.6.RELEASE

mysql

mysql-connector-java

配置数据库:

spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

spring.datasource.username=root

spring.datasource.password=root

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# JPA 相关配置

spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

spring.jpa.show-sql=true

spring.jpa.hibernate.ddl-auto=update

JPA 相关配置

#在 SrpingBoot 2.0 版本中,Hibernate 创建数据表的时候,默认的数据库存储引擎选择的是 MyISAM (之前是 InnoDB)。这个参数是在建表的时候,将默认的存储引擎切换为 InnoDB 用的。

spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

配置在日志中打印出执行的 SQL 语句信息。

spring.jpa.show-sql=true

每次运行程序,没有表格会新建表格,表内有数据不会清空,只会更新

spring.jpa.hibernate.ddl-auto=update

创建 Entity Dao Service Controller 三层文件:

entity:

@Entity

@Table(name = "user")

public class JpaUser {

@Id

@GeneratedValue

private Long id;

private String name;

private int age;

private String sex;

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;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

}

Dao

写一个接口 继承 JpaRepository 简单的 CRUD 可以直接使用了

@Repository

public interface JpaUserDao extends JpaRepository {

}

Service

@Service

public class JpaUserService {

@Autowired

JpaUserDao userDao;

public JpaUser add(JpaUser user){

return userDao.save(user);

}

public JpaUser update(JpaUser user){

return userDao.save(user);

}

public JpaUser getById(long id){

return userDao.findById(id).get();

}

}

Controller

@RestController

@RequestMapping("/jpaUser")

public class JpaUserController {

@Autowired

JpaUserService userService;

@RequestMapping(value = "/add",method = RequestMethod.POST)

public Object addUser(@RequestBody JpaUser user){

return userService.add(user);

}

@RequestMapping(value = "/update",method = RequestMethod.PUT)

public Object updateUser(@RequestBody JpaUser user){

return userService.update(user);

}

@RequestMapping(value = "/find",method = RequestMethod.GET)

public Object updateUser(long id){

return userService.getById(id);

}

}

完成 启动 访问测试

jpa 配置说明:

spring.jpa.hibernate.ddl-auto=create ----每次运行该程序,没有表格会新建表格,有表会删除表重新创建表

spring.jpa.hibernate.ddl-auto=create-drop ----每次程序结束的时候会清空表

spring.jpa.hibernate.ddl-auto=update ----每次运行程序,没有表格会新建表格,表内有数据不会清空,只会更新表结构

spring.jpa.hibernate.ddl-auto=validate ----运行程序会校验数据与数据库的字段类型是否相同,不同会报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值