读书人

用Hibernate框架编撰一个实例

发布时间: 2012-12-31 11:57:52 作者: rapoo

用Hibernate框架编写一个实例
domain中的Student类

package com.hbsi.domain;import java.util.Date;public class Student {private int id;private String name;private Date birthday;private String likes;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;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getLikes() {return likes;}public void setLikes(String likes) {this.likes = likes;}}
 

dao包中的接口
package com.hbsi.dao;import java.util.List;import com.hbsi.domain.Student;public interface StudentDao {public void saveUser(Student stu);public Student findUserById(int id);public List<Student> findALL();public void updateUser(Student stu);public void remove(Student stu);}

实现类
package com.hbsi.dao;import java.text.DateFormat;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.junit.Test;import com.hbsi.domain.Student;import com.hbsi.utils.HibernateSessionFactory;public class StudentDaoImp implements StudentDao {@Overridepublic List<Student> findALL() {Session session=HibernateSessionFactory.getSession();Query query=session.createQuery("from Student");List<Student> students=query.list();return students;}@Overridepublic Student findUserById(int id) {Session session=HibernateSessionFactory.getSession();Student stu=(Student) session.get(Student.class,id);session.close();return stu;}@Overridepublic void remove(Student stu) {Session session=HibernateSessionFactory.getSession();session.beginTransaction();session.delete(stu);session.getTransaction().commit();session.close();}@Overridepublic void saveUser(Student stu) {Session session=HibernateSessionFactory.getSession();session.beginTransaction();session.save(stu);session.getTransaction().commit();session.close();}@Overridepublic void updateUser(Student stu) {Session session=HibernateSessionFactory.getSession();session.beginTransaction();session.update(stu);session.getTransaction().commit();session.close();}}

测试类
package com.hbsi.test;import java.text.DateFormat;import java.text.ParseException;import java.util.Date;import java.util.List;import org.junit.Test;import com.hbsi.dao.StudentDao;import com.hbsi.dao.StudentDaoImp;import com.hbsi.domain.Student;public class StudentTest {private StudentDao sd=new StudentDaoImp();@Testpublic void insert() throws ParseException{Student stu=new Student();stu.setName("aa");stu.setBirthday(DateFormat.getDateInstance().parse("1992-09-08"));stu.setLikes("唱歌");sd.saveUser(stu);}@Testpublic void findAll(){List<Student> students=sd.findALL();for(Student stu:students){System.out.println(stu.getId()+"..."+stu.getName()+"..."+stu.getBirthday()+"..."+stu.getLikes());}}@Testpublic void findUserById(){Student stu=sd.findUserById(2);System.out.println(stu.getId()+"..."+stu.getName()+"..."+stu.getBirthday()+"..."+stu.getLikes());}@Testpublic void updateUser(){Student stu=new Student();stu.setId(2);stu.setName("ss");stu.setBirthday(new Date());stu.setLikes("kkl");sd.updateUser(stu);}@Testpublic void remove(){Student stu=new Student();stu.setId(2);sd.remove(stu);}}

ORM
<?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.hbsi.domain">    <class name="Student" >        <id name="id">            <generator class="increment" />        </id>        <property name="name" />        <property name="birthday" type="date"/>        <property name="likes"/>    </class></hibernate-mapping>


注释:本次是通过Myeclipse工具添加的Hibernate


读书人网 >软件架构设计

热点推荐