package javamxj.hibernate;
public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
第二步:增加和该polo相对应的hibernate映射文件User.hbm.xml
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="javamxj.hibernate.User" table="UserTable">
<id name="id">
<generator class="assigned" />
</id>
<property name="username" />
<property name="password" />
</class>
</hibernate-mapping>
第三步:编写测试类:
package javamxj.hibernate;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.Session;
import org.hibernate.Transaction;
import java.util.List;
import java.util.ArrayList;
import org.hibernate.Query;
public class Test {
public static final SessionFactory sf;
static {
try {
sf = new Configuration().configure().buildSessionFactory();
}
catch (Throwable ex) {
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
/**
* 增加一个对象
* @param obj Object(增加的对象)
*/
public static void save(Object obj) {
try {
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
session.save(obj);
tx.commit();
session.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
/**
* 删除一个对象
* @param primaryKey int (主键)
*/
public static void del(int primaryKey) {
try {
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
String hql = "delete User where id = :primaryKey";
Query query = session.createQuery(hql);
query.setShort("primaryKey", (short) primaryKey).executeUpdate();
tx.commit();
session.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
/**
* 修改一个对象
* @param primaryKey int(根据主键修改)
* @param newValue String(修改后的值)
*/
public static void update(int primaryKey, String newValue) {
try {
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
String hql = "update User set userName=:newValue where id = :primaryKey";
Query query = session.createQuery(hql);
query.setShort("primaryKey", (short) primaryKey).setString("newValue",
newValue).executeUpdate();
tx.commit();
session.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
/**
* 根据hql语句,查找对象集合
* @param hql String
* @return List
*/
public static List query(String hql) {
List l = new ArrayList();
try {
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
l = session.createQuery(hql).list();
tx.commit();
session.close();
}
catch (Exception e) {
e.printStackTrace();
}
return l;
}
public static void main(String[] args) {
update(3, new String("wsyrnm"));
}
}
第四步:配置数据库mysql。
先增加数据库hibernatetest,然后运行脚本:
CREATE TABLE `usertable` (
`ID` int(6) NOT NULL auto_increment,
`username` varchar(24) NOT NULL default '',
`password` varchar(24) NOT NULL default '',
PRIMARY KEY (`ID`)
) TYPE=MyISAM;
终于配置完毕,运行测试类相应的方法就可以得到你想要的结果。