技术背景:
在IntelJIdea 19.3中使用hibernate框架
数据库:mysql 5.1
hibernate:4.0
过程:
首先建表:t_user,联合主键,id自增
打开idea,创建一个支持hibernate 的javaEE项目
安装支持hibernate的控件:
完成创建后在idea中配置下数据库
填写完相应信息后,测试一下链接,注意此时mysql版本修改成自己数据库一致的,否则连接可能不成功
创建hibernate配置文件,选择File-》ProStructure
接下来创建数据库实体映射文件,点击idea左下方的Persistence,右键点击下方自己创建的项目名
下一步
添加支持mysql的jar包,选择
搜索mysql,并选择对应的5.1版本
一路ok
接下来编辑配置文件,
注意此时方框内的参数用户名密码是必须要配置的,然后椭圆部分是这次我遇到坑,因为我创建的这个表采用了复合主键,导致使用hibernateTool自动生成实体类文件的时候是采用注解方式,所以和在编译器编译时反向生成的mapping resource 项冲突了,出现了id class mapping的错误。这里提供2种解决方案。
方式1:像图上那样,将idea自动生成的mapping resource项注释掉
方式2:打开resource 项对应的实体类映射文件,将
方框中的内容删掉,然后打开实体类文件,集成Serializable接口
================================================================
好了,最后我们创建测试类test.java,代码如下
public class test {
public static void main(String[] args) {
//声明Configuration对象
Configuration cfg = new Configuration();
//打开配置
cfg.configure();
//构建SessionFactory对象
SessionFactory sessionFactory = cfg.buildSessionFactory();
//打开session
Session session = sessionFactory.openSession();
//开启事务提交
Transaction tran = session.beginTransaction();
TUserEntity user = new TUserEntity();
user.setSex("男");
user.setAge(19);
user.setUsername("admin");
session.save(user);
tran.commit();
session.close();
}
}