码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • springboot simple (9) springboot jpa(Hibernate)


    1 JPA Hibernate

    Hibernate是一个全自动的ORM框架(Object Relational Mapping ,对象关系映射)。
    Spring Data JPA:
    是Spring Data的子模块,JPA默认使用hibernate作为ORM实现。

    2 springboot集成Hibernate

    第1步:引入pom文件:

    		
    		<dependency>
    			<groupId>mysqlgroupId>
    			<artifactId>mysql-connector-javaartifactId>
    			<version>${mysql-connector}version>
    		dependency>
    		
    		<dependency>
    			<groupId>org.springframework.bootgroupId>
    			<artifactId>spring-boot-starter-data-jpaartifactId>
    		dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    第2步:定义配置文件:

    @Order(Ordered.HIGHEST_PRECEDENCE)
    @Configuration
    @EnableTransactionManagement(proxyTargetClass = true)
    @EnableJpaRepositories(basePackages = "org.feidao.chapter42.repository")
    @EntityScan(basePackages = "org.feidao.chapter42.entity")
    public class JpaConfiguration {
        @Bean
        PersistenceExceptionTranslationPostProcessor persistenceExceptionTranslationPostProcessor() {
            return new PersistenceExceptionTranslationPostProcessor();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    第3步:定义entity实体bean;

    @Getter@Setter
    @Entity
    @Table(name="tb_heroic")
    public class Heroic{
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        public Long id;
        @Column(name="name")
        public String name = "";
        @Column(name="remarks")
        public String remarks = "";
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    第4步:定义dao的interface;

     @Repository
    public interface HeroicRepository  extends JpaRepository <Heroic, Long>{
    }
    
    • 1
    • 2
    • 3

    然后就可以直接调用HeroicRepository 的接口了。

    3 测试验证

    3.1 新增英雄(heroic)验证

    在这里插入图片描述
    可以数据库中多了一条记录:在这里插入图片描述

    3.2 查询英雄(heroic)验证

    在这里插入图片描述

    3.3 修改英雄(heroic)验证

    在这里插入图片描述
    可以数据库记录已经修改
    在这里插入图片描述

    3.4 删除英雄(heroic)验证

    在这里插入图片描述
    可见数据库中的记录已经清空了。
    在这里插入图片描述

    4 问题汇总

    报错1:org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘entityManagerFactory’
    解决: import org.springframework.data.annotation.Id; 改为improt javax.persistence.Id;

    报错2::Caused by: java.lang.NullPointerException
    at com.mysql.jdbc.ConnectionImpl.getServerCharset(ConnectionImpl.java:2997)
    解决:

    <dependency>
       <groupId>mysqlgroupId>
       <artifactId>mysql-connector-javaartifactId>
       <version>5.1.39version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    修改为:

    <dependency>
       <groupId>mysqlgroupId>
       <artifactId>mysql-connector-javaartifactId>
       <version>8.0.30version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    报错3:
    com.mysql.cj.exceptions.ConnectionIsClosedException: No operations allowed after connection closed.
    at sun.reflect.GeneratedConstructorAccessor50.newInstance(Unknown Source) ~[na:na]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_25]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:408) ~[na:1.8.0_25]
    解决:
    配置文件增加:

    spring.datasource.hikari.max-lifetime=30000
    
    • 1

    代码详见:
    https://gitee.com/linghufeixia/springboot-simple
    chapter4-2


    教程列表:
    springboot simple(0) springboot简介

    springboot simple(1) springboot Helloworld

    springboot simple(2) springboot Starter

    springboot simple(3 )springboot Web开发

    springboot simple(4)springboot 数据持久化

    springboot simple (5) springboot Nosql

    springboot simple (6) springboot mqtt

    springboot simple (7) springboot thrift

    springboot simple (8) springboot kafka

    springboot simple (9) springboot jpa(Hibernate)

    springboot simple (10) springboot protobuf

    springboot simple (11) springboot protostuff

  • 相关阅读:
    CLR的GC工作模式介绍(Workstation和Server)
    中英文说明书丨艾美捷1,2-二硬脂酰-sn-甘油-3-PC(DSPC)
    计算机毕业设计(附源码)python在线答题系统
    公共方法~~
    一个中东外贸业务员分享的干货
    边缘计算:云计算的延伸
    VoLTE基础自学系列 | VoLTE呼叫流程之PSTN打VoLTE
    OpenHarmony3.1 Release版本特性解析——硬件资源池化架构介绍
    Apache ShenYu 学习笔记一
    web期末大作业:基于html+css+js制作 学校班级网页制作----校园运动会 4页
  • 原文地址:https://blog.csdn.net/afei8080/article/details/128001389
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号