zoukankan      html  css  js  c++  java
  • Hibernate 编程

    前言

    这篇文章主要讲述如何使用Kotlin语言编写集成Hibernate框架的Spring MVC后端API。

    如何在Spring中集成Hibernate

    1. 配置数据源
      Spring提供了LocalSessionFactoryBean这个类,我们通过这个类配置Hibernate,从而可以在控制器中获得对Hibernate框架的主要接口SessionFactory的依赖注入。
      在此之前我们需要一个数据源实例,它应该实现接口javax.sql.DataSource,可以使用Tomcat DBCP,这是一种开源的数据库连接池实现,提供了BasicDataSource类。
      在Servlet配置类中注册bean:
        @Bean
        open fun initDataSource(): DataSource {
            return BasicDataSource().apply {
                with (JsonConfig("assets/config.json")) {
                    driverClassName = get("db_driver")
                    username = get("db_user")
                    password = get("db_password")
                    url = get("db_url")
                }
            }
        }
    
    1. 配置Hibernate
      向Spring应用程序上下文提供一个LocalSessionFactoryBeanbean实例:
        @Bean
        @Autowired
        open fun initSessionFactory(dataSource: DataSource): LocalSessionFactoryBean {
            return LocalSessionFactoryBean().apply {
                // 设置数据源
                setDataSource(dataSource)
                // 设置需要扫描的数据库实体类所在的包,这些类通过注解的方式表明要使用Hibernate进行持久化
                // 这些类可以使用的注解包括JPA的@Entity或@MappedSuperclass以及Hibernate的@Entity。
                setPackagesToScan("data")
                // 设置Hibernate参数
                hibernateProperties = Properties().apply {
                    setProperty("hibernate.show_sql", "true") // 将hibernate生成的sql语句打印到控制台
                    setProperty("hibernate.format_sql", "true") // 将hibernate生成的sql语句格式化(语法缩进)
                    setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect") // 数据库方言, MySQL5.0+
                    //setProperty("hibernate.hbm2ddl.auto", "update") // 自动更新实体类和数据库
                }
            }
        }
    
    1. 在控制器中使用SessionFactory依赖:
        @Autowired
        fun ctrl(factory: SessionFactory) {
            session: Session = factory.openSession()
        }
    

    Hibernate 参数

    • hbm2ddl.auto
      可选值:create、create-drop、update、validate
    create            启动时删数据库中的表,然后创建,退出时不删除数据表
    create-drop       启动时删数据库中的表,然后创建,退出时自动删除所有表 
    update            自动修改,如果表结构与实体类不一致,那么就修改表使它们一致,数据会保留 
    validate          自动校验,如果表结构与实体类不一致,那么不做任何操作,报错 
    

    依赖

    • 嵌入式Tomcat
    • Spring
    • Jackson json消息处理,MappingJackson2HttpMessageConverter依赖jackson
    • Hibernate
    • Tomcat DBCP 数据库连接池的一种开源实现
    • 具体数据库提供的JDBC驱动

    参考

    [Guide to Hibernate 4 with Spring] https://www.baeldung.com/hibernate-4-spring

  • 相关阅读:
    iis部署网站打不开
    微信小程序全选多选效果
    清除浮动
    IIS_常见问题及解决方法
    文字闪烁效果
    IIS 伪静态 脚本映射 配置方法
    批量删除QQ空间说说
    自定义input文件上传 file的提示文字及样式
    使用google api material icons在网页中插入图标
    jquery日期插件jquery.datePicker参数
  • 原文地址:https://www.cnblogs.com/develon/p/12719626.html
Copyright © 2011-2022 走看看