開發第一個Hibernate項目,實現插入數據功能

開發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

}}}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章