開發Hibernate項目實現插入數據:
(1) 新建web項目,導入hibernate必須的jar包。
(2) 編寫數據庫表對應的實體類User實現Serializable接口,添加默認的構造方法。
publicclassUserimplements Serializable{ private Integer id; private String loginName; private String loginpwd; public User() { super(); } get/set方法 } |
(3) 添加映射文件User.hbm.xml,告知hibernate框架實體類User映射到數據庫中的那個表,以及哪個屬性對應數據庫表的哪個字段。
<hibernate-mapping> <classname="com.bean.User"table="user"catalog="hbmDB"> <idname="id"type="java.lang.Integer"> <columnname="id"/> <generatorclass="native"></generator> </id> <propertyname="loginName"type="java.lang.String"> <columnname="loginName"length="50"/> </property> <propertyname="loginpwd"type="java.lang.String"> <columnname="loginpwd"length="16"/> </property> </class> </hibernate-mapping> |
(4) 在src下添加Hibernate配置文件,默認文件名爲hibernate.cfg.xml
<hibernate-configuration> <session-factory> <propertyname="show_sql">true</property> <propertyname="myeclipse.connection.profile">hbmdb</property> <propertyname="connection.driver_class">com.mysql.jdbc.Driver</property> <propertyname="connection.url">jdbc:mysql://localhost:3306/hbmdb</property> <propertyname="connection.username">root</property> <propertyname="connection.password">123</property> <propertyname="dialect">org.hibernate.dialect.MySQLDialect</property> <mappingresource="com/bean/User.hbm.xml"/> //引入實體類User的映射信息配置 </session-factory> </hibernate-configuration> |
(5) 寫一個測試類,向數據庫表中插入數據
publicclass TestAdd { publicstaticvoid main(String[] args) { new TestAdd().addUser(); } privatevoid addUser(){ //建立持久化對象 User user = new User(); user.setLoginName("admin"); user.setLoginpwd("000"); //1.初始化,讀取配置文件hibernate.cfg.xml Configuration config = new Configuration().configure(); //2.讀取創建sessionFactory SessionFactory sessionFactory = config.buildSessionFactory(); //3.打開session Session session = sessionFactory.openSession(); // Transaction transaction = null; /** * Session的save方法必須在事務環境中完成,並需使用commit方法提交事務, * 才能成功的將記錄插入到數據庫表中。 * 事務要麼全部完成要麼全部不完成,當發生異常時,事務應該回滾到起點 */ try { //4.開始一個事務 transaction = session.beginTransaction(); //5.持久化操作 session.save(user); //6.提交事務 transaction.commit(); } catch (Exception e) { /*** 當發生異常時,事務應該回滾到起點 */ System.out.println("發生異常:"+e); if(transaction!=null){ transaction.rollback();//事務回滾 } }finally{ session.close();//7.關閉session }}} |