技術背景:
在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();
}
}