ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

hibernate(结合springboot)入门

2019-12-08 12:50:41  阅读:238  来源: 互联网

标签:hibernate String jpa 入门 org naming public 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 = update




#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.
#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.implicit-strategy= 这里使用默认
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")
public class BsUser implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private String 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;


    public String getUUserId() {
        return uUserId;
    }

    public void setUUserId(String uUserId) {
        this.uUserId = uUserId;
    }


    public String getUName() {
        return uName;
    }

    public void setUName(String uName) {
        this.uName = uName;
    }


    public String getULoginName() {
        return uLoginName;
    }

    public void setULoginName(String uLoginName) {
        this.uLoginName = uLoginName;
    }


    public String getUPassWord() {
        return uPassWord;
    }

    public void setUPassWord(String uPassWord) {
        this.uPassWord = uPassWord;
    }


    public String getUSalt() {
        return uSalt;
    }

    public void setUSalt(String uSalt) {
        this.uSalt = 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());
    }

}

 

标签:hibernate,String,jpa,入门,org,naming,public,springboot
来源: https://www.cnblogs.com/cyh1282656849/p/12005399.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有