1.myeclipse创建标准java工程,myeclipse添加hibernate支持。
2.选用hibernate3.1,只选核心,并生成hibernate.cfg.xml
3.更加数据表结构,按照javabean标准生成user类
public class user {
private int id;
private String uid;
private String pw;
private String email;
public user(){}
public user( int id,
String uid,
String pw,
String email)
{
this.id=id;
this.uid=uid;
this.pw=pw;
this.email=email;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
4.编写对应user类的生成hibernate-mapping配置xml文件,命名为user.hbm.xml内容如下
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="user" table="user"> <!-- 类和表对应 -->
<id name="id" column="id"> <!-- 主键 -->
<generator class="assigned"/> <!-- 主键生成策略,assigned表示由用户赋值 -->
</id>
<property name="uid" column="uid"/>
<property name="pw" column="pw"/>
<property name="email" column="email"/>
</class>
</hibernate-mapping>
5.将上面编写的user.hbm.xml文件在hibernate.cfg.xml中注册,内容如下
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="hbm2ddl.auto">update</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">jdbc:odbc:mysqltest</property>
<property name="connection.username">root</property>
<property name="connection.driver_class">
sun.jdbc.odbc.JdbcOdbcDriver
</property>
<mapping resource="user.hbm.xml" />
</session-factory>
</hibernate-configuration>
编写主函数测试用例,内容如下
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class htest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Configuration conf=new Configuration().configure();
SessionFactory sf = conf.buildSessionFactory();
Session session = sf.openSession();
///插入数据///
user u0=new user(98,"123", "78","2@qq.com");
Transaction bt = session.beginTransaction();
//session.save(u);//添加新的记录,存在则报错。
session.saveOrUpdate(u0);//如果存在即更新,没有则新加
bt.commit();//hbm不能自动提交事务
System.out.println("插入信数据完毕");
session.close();//用完关闭session,否则查询也会报错。
/更新
session = sf.openSession();
u0.setUid("测试");
bt = session.beginTransaction();
session.update(u0);
bt.commit();//hbm不能自动提交事务
session.close();//用完关闭session,否则查询也会报错。
System.out.println("更新数据完毕");
查询一条数据,如果有多条数据也会报错/
session = sf.openSession();
user u1=new user();
session.load(u1, 98);
System.out.println(u1.getId());
System.out.println(u1.getEmail());
System.out.println(u1.getUid());
session.close();//用完关闭session,否则查询也会报错。
//删除
session = sf.openSession();
bt = session.beginTransaction();
session.delete(u0);
bt.commit();//hbm不能自动提交事务
session.close();//用完关闭session,否则查询也会报错。
System.out.println("删除数据完毕");
}
}