MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接

    一个轻巧的hibernate连接模块,用于开发。

    其他项目发布
    数据库 hibernate
    1
    1
    215
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Moyuyanli
      Moyuyanli 摸鱼 最后由 Moyuyanli 编辑

      Hibernate-plus

      名字有点张扬了

      hibrnate强化集成,用于以最小的程度连接你的数据库,为你带来最舒服的数据持久化。
      封装了常用方法,也保留了Session的获取。

      内置3种数据库驱动:
      H2
      MySQL
      Sqlit

      使用

      在你的项目中引用
      maven:

      <dependency>
        <groupId>cn.chahuyun</groupId>
        <artifactId>hibernate-plus</artifactId>
        <version>1.0.15</version>
        <type>module</type>
      </dependency>
      

      gradle:

      implementation("cn.chahuyun:hibernate-plus:1.0.15")
      

      然后创建配置文件

      //这里是你的启动类
      Configuration configuration = HibernatePlusService.createConfiguration(Test.class);
      
      configuration.setDriveType(DriveType.MYSQL);
      configuration.setAddress("localhost:3306/test");
      configuration.setAutoReconnect(true);
      configuration.setUser("root");
      configuration.setPassword("123456");
      
      //configuration.setPackageName("cc.cb.entity");
      

      对于驱动类型DriveType,目前只提供了3种类型

      • H2
      • MYSQL
      • SQLITE

      对于java插件的实现:

      EconomyConfig config = HuYanEconomy.config;
      
              Configuration configuration = HibernatePlusService.createConfiguration(economy.getClass());
              configuration.setPackageName("cn.chahuyun.economy.entity");
      
              DriveType dataType = config.getDataType();
              configuration.setDriveType(dataType);
              Path dataFolderPath = economy.getDataFolderPath();
              switch (dataType) {
                  case MYSQL:
                      configuration.setAddress(config.getMysqlUrl());
                      configuration.setUser(config.getMysqlUser());
                      configuration.setPassword(config.getMysqlPassword());
                      break;
                  case H2:
                      configuration.setAddress(dataFolderPath.resolve("HuYanEconomy.h2").toString());
                      break;
                  case SQLITE:
                      configuration.setAddress(dataFolderPath.resolve("HuYanEconomy").toString());
                      break;
              }
      
              HibernatePlusService.loadingService(configuration);
      

      对于kotlin插件的实现:

      val configuration = HibernatePlusService.createConfiguration(plugin::class.java)
      
                  configuration.classLoader = plugin::class.java.classLoader
                  configuration.packageName = "cn.chahuyun.authorize.entity"
      
                  configuration.driveType = dataType
                  when (dataType) {
                      MYSQL -> {
                          configuration.address = mysqlUrl
                          configuration.user = mysqlUser
                          configuration.password = mysqlPassword
                      }
                      H2 -> configuration.address = HuYanAuthorize.INSTANCE.dataFolderPath.resolve("authorize.h2.mv.db").toString()
                      SQLITE -> configuration.address = HuYanAuthorize.INSTANCE.dataFolderPath.resolve("authorize.mv.db").toString()
                  }
      
                  HibernatePlusService.loadingService(configuration)
      

      对于实体映射,可以填写packageName,进行指定包扫描,模板将会自动将带有Entity的实体添加到映射目录中。

      当然你也可以不填写,那么我将会根据你的ClassLoader自动扫描"entry", "entity", "entities", "model", "models", "bean", "beans", "dto"几个包名下面的实体。

      给定参数之后就可以通过HibernatePlusService来创建hibernate服务了

      HibernatePlusService.loadingService(configuration);
      

      成功后即可使用HibernateFactory来进行数据操作,我这里封装了几个常用的简单操作

      List<MyUser> myUsers = HibernateFactory.selectList(MyUser.class);
      
      log.info("==========list=============");
      
      for (MyUser myUser : myUsers) {
      log.info(myUser.toString());
      }
      
      log.info("===========================");
      
      MyUser myUser = new MyUser();
      myUser.setName("张");
      myUser.setSex(123);
      
      Integer id = HibernateFactory.merge(myUser).getId();
      
      log.info("==========one=============");
      
      MyUser selectOne = HibernateFactory.selectOne(MyUser.class, id);
      
      log.info(selectOne.toString());
      
      log.info("===========================");
      

      更复杂的操作请自行获取SessionFactory去创建。

      SessionFactory session = HibernateFactory.getSession();
      

      自定义使用

      你也可以不使用我给你的推荐配置,只需要在resources目录下填写hibernate.properties就行,然后通过

      HibernatePlusService.loadingService(Test.class);
      

      就可以使用自定义配置进行连接

      1 条回复 最后回复 回复 引用 1
      • 1 / 1
      • First post
        Last post
      Powered by Mamoe Technologies & NodeBB | 友情链接 | 服务监控 | Contact