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);
就可以使用自定义配置进行连接