步骤:

  1. 在pom.xml文件中添加mysql,spring-data-jpa的依赖。

  1. <!-- 添加mysql数据库驱动依赖-->
  2. <dependency>
  3. <groupId>mysql</groupId>
  4. <artifactId>mysql-connector-java</artifactId>
  5. </dependency>
  6. <!-- 添加spring-data-jpa依赖 -->
  7. <dependency>
  8. <groupId>org.springframework.boot</groupId>
  9. <artifactId>spring-boot-starter-data-jpa</artifactId>
  10. </dependency>

2在application.properties文件中配置mysql链接属性。

在res/main/resources下创建一个application.properties文件:

  1. 在application.propertices文件中配置JPA配置信息;

  1. ##########################################
  2. ###datasource--指定mysql数据库连接信息
  3. ###spring.datasource.url:mysql地址
  4. ###spring.datasource.user:数据库用户名
  5. ###spring.datasource.password:数据库密码
  6. ###spring.datasource.driverClassName:对应数据库驱动
  7. ###spring.datasource.max-active:指定连接池中最大的活跃连接数
  8. ###spring.datasource.max-idle:指定连接池最大的空闲连接数量.
  9. ###spring.datasource.min-idle:指定必须保持连接的最小值(For DBCP and Tomcat connection pools)
  10. ###spring.datasource.initial-size:指定启动连接池时,初始建立的连接数量
  11. ###
  12. ###其他信息总结:
  13. ###spring.dao.exceptiontranslation.enabled是否开启PersistenceExceptionTranslationPostProcessor,默认为true
  14. ###spring.datasource.abandon-when-percentage-full设定超时被废弃的连接占到多少比例时要被关闭或上报
  15. ###spring.datasource.allow-pool-suspension使用Hikari pool时,是否允许连接池暂停,默认为: false
  16. ###spring.datasource.alternate-username-allowed是否允许替代的用户名.
  17. ###spring.datasource.auto-commit指定updates是否自动提交.
  18. ###spring.datasource.catalog指定默认的catalog.
  19. ###spring.datasource.commit-on-return设置当连接被归还时,是否要提交所有还未完成的事务
  20. ###spring.datasource.connection-init-sql指定连接被创建,再被添加到连接池之前执行的sql.
  21. ###spring.datasource.connection-init-sqls使用DBCP connection pool时,指定初始化时要执行的sql
  22. ###spring.datasource.connection-properties.[key]在使用DBCP connection pool时指定要配置的属性
  23. ###spring.datasource.connection-test-query指定校验连接合法性执行的sql语句
  24. ###spring.datasource.connection-timeout指定连接的超时时间,毫秒单位.
  25. ###spring.datasource.continue-on-error在初始化数据库时,遇到错误是否继续,默认false
  26. ###spring.datasource.data指定Data (DML)脚本
  27. ###spring.datasource.data-source-class-name指定数据源的全限定名.
  28. ###spring.datasource.data-source-jndi指定jndi的地址
  29. ###spring.datasource.data-source-properties.[key]使用Hikari connection pool时,指定要设置的属性
  30. ###spring.datasource.db-properties使用Tomcat connection pool,指定要设置的属性
  31. ###spring.datasource.default-auto-commit是否自动提交.
  32. ###spring.datasource.default-catalog指定连接默认的catalog.
  33. ###spring.datasource.default-read-only是否设置默认连接只读.
  34. ###spring.datasource.default-transaction-isolation指定连接的事务的默认隔离级别.
  35. ###spring.datasource.driver-class-name指定driver的类名,默认从jdbc url中自动探测.
  36. ###spring.datasource.fair-queue是否采用FIFO返回连接.
  37. ###spring.datasource.health-check-properties.[key]使用Hikari connection pool时,在心跳检查时传递的属性
  38. ###spring.datasource.idle-timeout指定连接多久没被使用时,被设置为空闲,默认为10ms
  39. ###spring.datasource.ignore-exception-on-pre-load当初始化连接池时,是否忽略异常.
  40. ###spring.datasource.init-sql当连接创建时,执行的sql
  41. ###spring.datasource.initial-size指定启动连接池时,初始建立的连接数量
  42. ###spring.datasource.initialization-fail-fast当创建连接池时,没法创建指定最小连接数量是否抛异常
  43. ###spring.datasource.initialize指定初始化数据源,是否用data.sql来初始化,默认: true
  44. ###spring.datasource.isolate-internal-queries指定内部查询是否要被隔离,默认为false
  45. ###spring.datasource.jdbc-interceptors使用Tomcat connection pool时,指定jdbc拦截器,分号分隔
  46. ###spring.datasource.jdbc-url指定JDBC URL.
  47. ###spring.datasource.jmx-enabled是否开启JMX,默认为: false
  48. ###spring.datasource.jndi-name指定jndi的名称.
  49. ###spring.datasource.leak-detection-threshold使用Hikari connection pool时,多少毫秒检测一次连接泄露.
  50. ###spring.datasource.log-abandoned使用DBCP connection pool,是否追踪废弃statement或连接,默认为: false
  51. ###spring.datasource.log-validation-errors当使用Tomcat connection pool是否打印校验错误.
  52. ###spring.datasource.login-timeout指定连接数据库的超时时间.
  53. ###spring.datasource.max-age指定连接池中连接的最大年龄
  54. ###spring.datasource.max-lifetime指定连接池中连接的最大生存时间,毫秒单位.
  55. ###spring.datasource.max-open-prepared-statements指定最大的打开的prepared statements数量.
  56. ###spring.datasource.max-wait指定连接池等待连接返回的最大等待时间,毫秒单位.
  57. ###spring.datasource.maximum-pool-size指定连接池最大的连接数,包括使用中的和空闲的连接.
  58. ###spring.datasource.min-evictable-idle-time-millis指定一个空闲连接最少空闲多久后可被清除.
  59. ###spring.datasource.min-idle指定必须保持连接的最小值(For DBCP and Tomcat connection pools)
  60. ###spring.datasource.minimum-idle指定连接维护的最小空闲连接数,当使用HikariCP时指定.
  61. ###spring.datasource.name指定数据源名.
  62. ###spring.datasource.num-tests-per-eviction-run指定运行每个idle object evictor线程时的对象数量
  63. ###spring.datasource.password指定数据库密码.
  64. ###spring.datasource.platform指定schema要使用的Platform(schema-${platform}.sql),默认为: all
  65. ###spring.datasource.pool-name指定连接池名字.
  66. ###spring.datasource.pool-prepared-statements指定是否池化statements.
  67. ###spring.datasource.propagate-interrupt-state在等待连接时,如果线程被中断,是否传播中断状态.
  68. ###spring.datasource.read-only当使用Hikari connection pool时,是否标记数据源只读
  69. ###spring.datasource.register-mbeans指定Hikari connection pool是否注册JMX MBeans.
  70. ###spring.datasource.remove-abandoned指定当连接超过废弃超时时间时,是否立刻删除该连接.
  71. ###spring.datasource.remove-abandoned-timeout指定连接应该被废弃的时间.
  72. ###spring.datasource.rollback-on-return在归还连接时,是否回滚等待中的事务.
  73. ###spring.datasource.schema指定Schema (DDL)脚本.
  74. ###spring.datasource.separator指定初始化脚本的语句分隔符,默认: ;
  75. ###spring.datasource.sql-script-encoding指定SQL scripts编码.
  76. ###spring.datasource.suspect-timeout指定打印废弃连接前的超时时间.
  77. ###spring.datasource.test-on-borrow当从连接池借用连接时,是否测试该连接.
  78. ###spring.datasource.test-on-connect创建时,是否测试连接
  79. ###spring.datasource.test-on-return在连接归还到连接池时是否测试该连接.
  80. ###spring.datasource.test-while-idle当连接空闲时,是否执行连接测试.
  81. ###spring.datasource.time-between-eviction-runs-millis指定空闲连接检查、废弃连接清理、空闲连接池大小调整之间的操作时间间隔
  82. ###spring.datasource.transaction-isolation指定事务隔离级别,使用Hikari connection pool时指定
  83. ###spring.datasource.url指定JDBC URL.
  84. ###spring.datasource.use-disposable-connection-facade是否对连接进行包装,防止连接关闭之后被使用.
  85. ###spring.datasource.use-equals比较方法名时是否使用String.equals()替换==.
  86. ###spring.datasource.use-lock是否对连接操作加锁
  87. ###spring.datasource.username指定数据库名.
  88. ###spring.datasource.validation-interval指定多少ms执行一次连接校验.
  89. ###spring.datasource.validation-query指定获取连接时连接校验的sql查询语句.
  90. ###spring.datasource.validation-query-timeout指定连接校验查询的超时时间.
  91. ###spring.datasource.validation-timeout设定连接校验的超时时间,当使用Hikari connection pool时指定
  92. ###spring.datasource.validator-class-name用来测试查询的validator全限定名.
  93. ###spring.datasource.xa.data-source-class-name指定数据源的全限定名.
  94. ###spring.datasource.xa.properties指定传递给XA data source的属性
  95. ###spring.datasource.url=jdbc:mysql://localhost:3306/test?user=root&password=root&useUnicode=true&characterEncoding=UTF8
  96. ##########################################
  97. spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
  98. spring.datasource.username=root
  99. spring.datasource.password=root
  100. spring.datasource.driverClassName=com.mysql.jdbc.Driver
  101. spring.datasource.max-active=20
  102. spring.datasource.max-idle=8
  103. spring.datasource.min-idle=8
  104. spring.datasource.initial-size=10
  105. ##########################################
  106. ##SPring JPA配置信息
  107. ###spring.jpa.database指定目标数据库.
  108. ###spring.jps.show-sq:是否显示sql语句
  109. ###spring.jpa.hibernate.ddl-auto指定DDL mode (none, validate, update, create, create-drop). 当使用内嵌数据库时,默认是create-drop,否则为none.
  110. ###spring.jpa.hibernate.naming-strategy指定命名策略.
  111. ###其他:
  112. ###spring.jpa.database-platform指定目标数据库的类型.
  113. ###spring.jpa.generate-ddl是否在启动时初始化schema,默认为false
  114. ###spring.jpa.hibernate.ddl-auto指定DDL mode (none, validate, update, create, create-drop). 当使用内嵌数据库时,默认是create-drop,否则为none.
  115. ###spring.jpa.hibernate.naming-strategy指定命名策略.
  116. ###spring.jpa.open-in-view是否注册OpenEntityManagerInViewInterceptor,绑定JPA EntityManager到请求线程中,默认为: true
  117. ###spring.jpa.properties添加额外的属性到JPA provider.
  118. ###spring.jpa.show-sql是否开启sql的log,默认为: false
  119. ##########################################
  120. spring.jpa.database = MYSQL
  121. spring.jpa.show-sql = true
  122. spring.jpa.hibernate.ddl-auto = update
  123. spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
  124. spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
  125. spring.freemarker.charset=UTF-8
  1. 编写测试案例;

(1). 创建实体类Demo

  1. package com.zhaolixiang.spring_boot1.demo.bean;
  2. import javax.persistence.Entity;
  3. import javax.persistence.GeneratedValue;
  4. import javax.persistence.GenerationType;
  5. import javax.persistence.Id;
  6. import javax.persistence.Table;
  7. /**
  8. * 创建了一个实体类。
  9. *
  10. * 如何持久化呢?
  11. *
  12. * 1、使用@Entity进行实体类的持久化操作,当JPA检测到我们的实体类当中有
  13. *
  14. * @Entity 注解的时候,会在数据库中生成对应的表结构信息。
  15. *
  16. *
  17. * 如何指定主键以及主键的生成策略?
  18. *
  19. * 2、使用@Id指定主键.
  20. *
  21. *
  22. *
  23. * @author Angel -- 守护天使
  24. * @version v.0.1
  25. * @date 2016年12月17日
  26. */
  27. @Entity
  28. @Table(name="cat")
  29. public class Cat {
  30. /**
  31. * 使用@Id指定主键.
  32. *
  33. * 使用代码@GeneratedValue(strategy=GenerationType.AUTO)
  34. * 指定主键的生成策略,mysql默认的是自增长。
  35. *
  36. */
  37. @Id @GeneratedValue(strategy=GenerationType.AUTO)
  38. private int id;//主键.
  39. private String catName;//姓名. cat_name
  40. private int catAge;//年龄. cat_age;
  41. public int getId() {
  42. return id;
  43. }
  44. public void setId(int id) {
  45. this.id = id;
  46. }
  47. public String getCatName() {
  48. return catName;
  49. }
  50. public void setCatName(String catName) {
  51. this.catName = catName;
  52. }
  53. public int getCatAge() {
  54. return catAge;
  55. }
  56. public void setCatAge(int catAge) {
  57. this.catAge = catAge;
  58. }
  59. }

(2). 创建jpa repository接口操作持久化(CrudREpository)

  1. package com.zhaolixiang.spring_boot1.demo.repository;
  2. import org.springframework.data.repository.CrudRepository;
  3. import com.zhaolixiang.spring_boot1.demo.bean.Cat;
  4. public interface CatRepository extends CrudRepository<Cat, Integer>{
  5. }

(3). 创建service类

  1. package com.zhaolixiang.spring_boot1.demo.service;
  2. import javax.annotation.Resource;
  3. import javax.transaction.Transactional;
  4. import org.springframework.stereotype.Service;
  5. import com.zhaolixiang.spring_boot1.demo.bean.Cat;
  6. import com.zhaolixiang.spring_boot1.demo.repository.CatRepository;
  7. @Service
  8. public class CatService {
  9. @Resource
  10. private CatRepository catRepository;
  11. /**
  12. * save,update,delete方法需要绑定事物
  13. * 使用@Transactional进行事物绑定
  14. */
  15. //保存数据
  16. @Transactional
  17. public void save(Cat cat) {
  18. catRepository.save(cat);
  19. }
  20. //删除数据
  21. @Transactional
  22. public void delete(int id) {
  23. catRepository.delete(id);
  24. }
  25. //查询数据
  26. @Transactional
  27. public Iterable<Cat> getAll() {
  28. return catRepository.findAll();
  29. }
  30. }

(4). 创建restfil请求类

  1. package com.zhaolixiang.spring_boot1.demo.controller;
  2. import javax.annotation.Resource;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RestController;
  5. import com.zhaolixiang.spring_boot1.demo.bean.Cat;
  6. import com.zhaolixiang.spring_boot1.demo.service.CatService;
  7. @RestController
  8. @RequestMapping("/cat")
  9. public class CatController {
  10. @Resource
  11. private CatService catService;
  12. @RequestMapping("/save")
  13. public String save(){
  14. Cat cat = new Cat();
  15. cat.setCatName("jack");
  16. cat.setCatAge(3);
  17. catService.save(cat);
  18. return "save ok.";
  19. }
  20. @RequestMapping("/delete")
  21. public String delete(){
  22. catService.delete(1);
  23. return "delete ok";
  24. }
  25. @RequestMapping("/getAll")
  26. public Iterable<Cat> getAll(){
  27. return catService.getAll();
  28. }
  29. }

(5). 测试

  1. 总结;

个人在按照上面步骤操作时,demo并没有在数据库中定义表结构,最后发现,Demo类文件不在App.class最在的文件目录中!!!

个人在按照上面步骤操作时,突然读取不到数据库的信息,也不报错,到后来才发现数据库调用错了,本来调用服务器来测试的,不知道什么时候调用本地数据库了,本地数据库对应表里没有信息,所有一直调用不到,大一呀!!!

数据库test不会自动生成,需要首先自己创建。

  1.  
  2. 作者:AiPuff
    链接:http://www.jianshu.com/p/4d1844a5680c
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

springboot:使用JPA-Hibernate的更多相关文章

  1. springboot 集成 jpa/hibernate

    pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  2. Springboot对JPA的支持及使用

    目的: 1.springboot之jpa支持 2.Springboot+bootstrap界面版之增删改查及图片上传 springboot之jpa支持 导入相关pom依赖 <dependency ...

  3. SpringBoot之使用jpa/hibernate

    Springboot版本是2.1.3.RELEASE 1.依赖 List-1.1 <dependency> <groupId>org.springframework.boot& ...

  4. SpringBoot + Jpa(Hibernate) 架构基本配置

    1.基于springboot-1.4.0.RELEASE版本测试 2.springBoot + Hibernate + Druid + Mysql + servlet(jsp) 一.maven的pom ...

  5. Springboot+Atomikos+Jpa+Mysql实现JTA分布式事务

    1 前言 之前整理了一个spring+jotm实现的分布式事务实现,但是听说spring3.X后不再支持jotm了,jotm也有好几年没更新了,所以今天整理springboot+Atomikos+jp ...

  6. 带你搭一个SpringBoot+SpringData JPA的环境

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 不知道大家对SpringBoot和Spring Da ...

  7. 二、springboot使用jpa

    花了几天时间,好好看了看springboot的jpa部分,总结了常用的形式. 1.通过STS工具添加jpa的依赖项 要连mysql,测试的时候需要web,顺便添加了lombok不写set和get方法了 ...

  8. SpringBoot 中 JPA 的使用

    详细连接 简书https://www.jianshu.com/p/c14640b63653 新建项目,增加依赖 在 Intellij IDEA 里面新建一个空的 SpringBoot 项目.具体步骤参 ...

  9. Spring Boot + Jpa(Hibernate) 架构基本配置

    本文转载自:https://blog.csdn.net/javahighness/article/details/53055149 1.基于springboot-1.4.0.RELEASE版本测试 2 ...

  10. 第11章—使用对象关系映射持久化数据—SpringBoot+SpringData+Jpa进行查询修改数据库

    SpringBoot+SpringData+Jpa进行查询修改数据库 JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分.但它又不限于EJB 3.0,你可以在Web应用.甚至桌面应用 ...

随机推荐

  1. HTML基础二-DOM操作

    http://www.imdsx.cn/index.php/2017/07/27/html2/ DOM(Document Object Model 文档对象模型) 一个web页面的展示,是由html标 ...

  2. JOI2013-2019

    代码自己去LOJ看 JOI2013 彩灯 把序列划分成若干极长交替列,那么最优的方案一定是将一个极长交替列翻转使得连续的三个极长交替列合成一个.计算相邻三个极长交替列长度的最大值即可. 搭乘IOI火车 ...

  3. 11-散列3 QQ帐户的申请与登陆 (25 分)

    实现QQ新帐户申请和老帐户登陆的简化版功能.最大挑战是:据说现在的QQ号码已经有10位数了. 输入格式: 输入首先给出一个正整数N(≤10^​5​​),随后给出N行指令.每行指令的格式为:“命令符(空 ...

  4. RedHat linux服务器安装elasticsearch且设置公网访问

    0. 首先需要安装jdk,因为elasticsearch是Java写的,默认需要Java环境,且安装elasticsearch 7.x需要使用jdk 1.8或更高版本 1. 执行以下命令,创建elas ...

  5. kaggle house price

    kaggle 竞赛入门 导入常用的数据分析以及模型的库 数据处理 Data fields 去除异常值 处理缺失值 分析 Utilities Exploratory Data Analysis Corr ...

  6. 以前写的canvas 小游戏 贪吃蛇代码

    效果如图,完成了贪吃蛇的基本的功能 代码地址 :https://github.com/my-new-git-hub/canvasSnake.git 预览地址:https://www.kzc275.to ...

  7. Python【每日一问】32

    问: [基础题]:手机品牌存放在一个列表中 brandlist = ['华为','苹果','一加','OPPO','小米'],请实现以下功能:随机选择一个手机品牌屏幕输出 [提高题]:编写一个函数,输 ...

  8. [WeChat-Bot-Go] 记录帖

    本来是想写一个微信机器人出来,用go语言. Github   目标是想做一个自动发送消息和抢红包的bot. 一开始跟着 这篇 文章写.写着写着发现文章久远,而且用的是第一版网页微信api,所以就自己去 ...

  9. 洛谷P5017:摆渡车——题解

    https://www.luogu.org/problem/P5017 参考:https://www.luogu.org/blog/ztyluogucpp/solution-p5017 我想我大概是废 ...

  10. Prometheus 安装部署

    Prometheus 安装部署 安装版本:prometheus-2.6.1 百度云下载:https://pan.baidu.com/s/1w16lQZKw8PCHqlRuSK2i7A 提取码:lw1q ...