package com.lesson1; public class User { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
package com.lesson1; public interface UserDao { void insert(User user); }
package com.lesson1; import java.io.File; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; public class UserDaoImpl implements UserDao { private SessionFactory sessionFactory; public UserDaoImpl() { this.sessionFactory = new Configuration().configure("lesson1.cfg.xml").buildSessionFactory(); } @Override public void insert(User user) { // TODO Auto-generated method stub Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); try { session.save(user); tx.commit(); } catch (Exception e) { // TODO: handle exception tx.rollback(); }finally{ session.close(); } } }
配置文件
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.url">jdbc:mysql://127.0.0.2:3306/test</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="format_sql">true</property> <property name="show_sql">true</property> <property name="hbm2ddl.auto">update</property> <mapping resource="com/lesson1/user.hbm.xml"/> </session-factory> </hibernate-configuration>
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.lesson1.User" table="user"> <!-- 必须先定义<id>元素,后定义<property>元素 --> <id name="id" type="java.lang.Integer"> <column name="id" /> <!-- 主键的生成方式 --> <generator class="increment" /> </id> <property name="name" type="java.lang.String"> <column name="name"/> </property> </class> </hibernate-mapping>
测试代码
package test.com.lesson1; import com.lesson1.User; import com.lesson1.UserDao; import com.lesson1.UserDaoImpl; import junit.framework.TestCase; public class testUserDaoImpl extends TestCase { public void testInsert() { User user = new User(); user.setName("aaa"); UserDao userDao = new UserDaoImpl(); userDao.insert(user); } }