数据库是mysql
1.建表
DROP TABLE person ;
CREATE TABLE person
(
id varchar(32) not null primary key ,
name varchar(20) not null ,
password varchar(20) not null ,
sex varchar(2) ,
email varchar(30)
) ;
-- 事务提交:
commit ;
2.引入包
3.写POJO类
package com.test.model;
public class Person {
private String id;
private String name;
private String password;
private String sex;
private String email;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
4.写POJO类的配置文件Person.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 package="com.test.model">
<class name="Person" table="person">
<id name="id" column="id" type="string">
<generator class="assigned"></generator>
</id>
<property name="name"></property>
<property name="password"></property>
<property name="sex"></property>
<property name="email"></property>
</class>
</hibernate-mapping>
5.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="show_sql">
true
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.driver_class">
org.gjt.mm.mysql.Driver
</property>
<property name="connection.url">
jdbc:mysql://localhost/test
</property>
<property name="connection.username">
root
</property>
<property name="connection.password">
system
</property>
<mapping resource="com/test/model/Person.hbm.xml"/>
</session-factory>
</hibernate-configuration>
6.操作文件 PersonOperate .java
package com.test.model;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class PersonOperate {
// 在Hibernate中,所有的操作都是通过Session完成
// 此Session不同于JSP的Session
private Session session = null ;
// 在构造方法之中实例化session对象
public PersonOperate()
{
// 找到Hibernate配置
Configuration config = new Configuration().configure() ;
// 从配置中取出SessionFactory
SessionFactory factory = config.buildSessionFactory() ;
// 从SessionFactory中取出一个Session
this.session = factory.openSession() ;
}
// 所有的操作都是通过session进行的
// 向数据库中增加数据
public void insert(Person p)
{
// 开始事务
Transaction tran = this.session.beginTransaction() ;
// 执行语句
this.session.save(p) ;
// 提交事务
tran.commit() ;
// 关闭Session
this.session.close() ;
}
//修改
public void update(Person p){
// 开始事务
Transaction tran = this.session.beginTransaction() ;
// 执行语句
this.session.update(p) ;
// 提交事务
tran.commit() ;
// 关闭Session
this.session.close() ;
}
//按Id查询,推荐使用HQL
public Person queryById(String id){
Person p=null;
//使用Hibernate查询语句,特别注意Person是对应的类名,而不是表名
String hql="From Person as p where p.id=?";
//通过Query接口查询
Query q=(Query) this.session.createQuery(hql);
q.setString(0,id);
List l=q.list();
Iterator iter=l.iterator();
if(iter.hasNext()){
p=(Person) iter.next();
}
return p;
}
//删除数据方法一,性能不好
public void delete(Person p){
// 开始事务
Transaction tran = this.session.beginTransaction() ;
// 执行语句
this.session.delete(p) ;
// 提交事务
tran.commit() ;
// 关闭Session
this.session.close() ;
}
//删除方法二
public void delete(String id){
String hql="Delete Person where id=?";
Query q=this.session.createQuery(hql);
q.setString(0, id);
q.executeUpdate();
this.session.beginTransaction().commit();
}
//查询全部数据
public List queryAll(){
List l=null;
String hql="From Person as p";
Query q=this.session.createQuery(hql);
l=q.list();
return l;
}
//模糊查询
public List queryByLike(String cond){
List l=null;
String hql="From Person as p where p.name like ?";
Query q=this.session.createQuery(hql);
q.setString(0, "%"+cond+"%");
l=q.list();
return l;
}
}
7.测试
package com.test.model;
import java.util.Iterator;
import java.util.List;
public class Test {
public static void main(String args[]) throws Exception{
//插入数据
/*Person p=new Person();
p.setId("3");
p.setName("yzh");
p.setPassword("123");
// String str = "男";
//p.setSex( new String(str.getBytes("iso-8859-1"),"utf-8"));
p.setSex("a");
p.setEmail("[email protected]");
PersonOperate po=new PersonOperate();
po.insert(p);*/
//修改数据
/*Person p=new Person();
p.setId("2");
p.setName("yzh");
p.setPassword("123");
p.setSex("男");
p.setEmail("[email protected]");
PersonOperate po=new PersonOperate();
po.update(p);*/
//查询数据
/*PersonOperate po=new PersonOperate();
Person p=po.queryById("2");
System.out.println(p.getId()+"|"+p.getName()+"|"+p.getPassword()+"|"+p.getSex()+"|"+p.getEmail());
*/
//删除数据一
/*PersonOperate po=new PersonOperate();
Person p=po.queryById("2");
po.delete(p);*/
//删除数据方法二
/*PersonOperate po=new PersonOperate();
po.delete("1");*/
//查询全部数据
/*PersonOperate po=new PersonOperate();
List l=po.queryAll();
Iterator iter=l.iterator();
while(iter.hasNext()){
Person p=(Person) iter.next();
System.out.println(p.getId()+"||"+p.getName());
}*/
//模糊查询
PersonOperate po=new PersonOperate();
List l=po.queryByLike("y");
Iterator iter=l.iterator();
while(iter.hasNext()){
Person p=(Person) iter.next();
System.out.println(p.getId()+"||"+p.getName());
}
}
}