zoukankan      html  css  js  c++  java
  • hibernate(结合springboot)入门

    本文参考   springboot整合hibernate:https://blog.csdn.net/u014745069/article/details/79940540

         hibernate命名策略: https://www.cnblogs.com/sxdcgaq8080/p/7910474.html

    • maven依赖引用
    <!--        hibernate核心-->
    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>6.0.0.Alpha3</version>
    <type>pom</type>
    </dependency>
    <!-- mysql 驱动-->
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.18</version>
    </dependency>

    <!-- Springboot 提供的 orm-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
    <version>2.2.2.RELEASE</version>
    </dependency>
    • application.properties中对hibernate的配置

    #hibernate
    spring.datasource.url=jdbc:mysql://192.168.3.244:3306/BaseManage?useUnicode=true&characterEncoding=utf-8&noAccessToProcedureBodies=true&allowMultiQueries=true&useAffectedRows=true
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.max-idle=10
    spring.datasource.max-wait=10000
    spring.datasource.min-idle=5
    spring.datasource.initial-size=5
    # Specify the DBMS
    spring.jpa.database = MYSQL
    # Show or not log for each sql query 是否显示运行的sql 调试使用
    spring.jpa.show-sql = true



    # Hibernate ddl auto (create, create-drop, update)
    #ddl-auto:create----每次运行该程序,没有表格会新建表格,表内有数据会清空
    #ddl-auto:create-drop----每次程序结束的时候会清空表
    #ddl-auto:update----每次运行程序,没有表格会新建表格,表内有数据不会清空,只会更新
    #ddl-auto:validate----运行程序会校验数据与数据库的字段类型是否相同,不同会报错
    spring.jpa.hibernate.ddl-auto =validate




    #hibernate4实体映射到数据表时候的命名策略
    #使用 spring.jpa.hibernate.naming-strategy属性
    #两个可选的配置:
    #org.hibernate.cfg.DefaultNamingStrategy 直接映射,不会做过多的处理(前提没有设置@Table,@Column等属性的时候)。如果有@Column则以@Column为准
    #org.hibernate.cfg.ImprovedNamingStrategy 表名,字段为小写,当有大写字母的时候会转换为分隔符号“_”。
    #hibernate5之后,上面的作废。而是采用下面两个属性:
    #spring.jpa.hibernate.naming.implicit-strategy= # Hibernate 5 implicit naming strategy fully qualified name.
    #spring.jpa.hibernate.naming.physical-strategy= # Hibernate 5 physical naming strategy fully qualified name.
    #spring.jpa.hibernate.naming.implicit-strategy= 这里使用默认


    #physical-strategy属性
    #org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl 直接映射,不会做过多的处理(前提没有设置@Table,@Column等属性的时候)。如果有@Column则以@Column为准
    #org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy 表名,字段为小写,当有大写字母的时候会转换为分隔符号“_”。


    #implicit-strategy属性
    #org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl 默认的命名策略,兼容JPA 2.0的规范;
    #org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl 兼容Hibernate老版本中的命名规范;
    #org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl 兼容JPA 1.0规范中的命名规范

    spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
    spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
    • Repository
    @Repository
    public interface UserRepository extends JpaRepository<BsUser,Integer> {
    
        public BsUser save(BsUser user);
    
        @Query(value = "SELECT u FROM BsUser u  where  uLoginName=:loginName")
        public BsUser findloginName(@Param("loginName") String loginName);
    
    }
    • 实体类

    @Entity
    @Table(name = "bs_user")
    @Data
    public class BsUser implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int uUserId;
    @Column(name = "u_name")
    private String uName;
    @Column(name = "u_loginName")
    private String uLoginName;
    @Column(name = "u_passWord")
    private String uPassWord;
    @Column(name = "u_salt")
    private String uSalt;

    }
    • 主函数
    @SpringBootApplication
    @EnableJpaRepositories
    public class StudyApplication {
        public static void main(String[] args) {
            ApplicationContext context =   SpringApplication.run(StudyApplication.class, args);
            UserRepository userRpy = context.getBean(UserRepository.class);
            BsUser user= userRpy.findloginName("cyh");
            System.out.println("加密密码:"+user.getUPassWord());
        }
    
    }
  • 相关阅读:
    Jenkins+Ansible+Gitlab自动化部署三剑客(四)--Jenkins Linux shell集成
    Jenkins+Ansible+Gitlab自动化部署三剑客(三)--Jenkins
    腾讯云从业者线上课程(一)--云计算技术架构
    腾讯云从业者线上课程(一)--云计算发展历史
    nmcli 静态方式添加IP地址
    nmcli
    systemctl 控制单元
    ansible组件 Ad-Hoc
    ansible 定义主机用户和密码
    ansible 主机清单 /etc/ansible/hosts
  • 原文地址:https://www.cnblogs.com/cyh1282656849/p/12005399.html
Copyright © 2011-2022 走看看