Java Web学习笔记 Hibernate配置及数据库增删改查简单操作

来源:互联网 发布:二手房中介软件 编辑:程序博客网 时间:2024/05/08 03:54
Object.hbm.xml配置文件

<?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 package="cn.gzu.edu.hibernateExp.domain"><class name="Student" table="student"><id name="id" column="id" type="int"><generator class="native"></generator></id><property name="name" column="name" type="string" not-null="true"></property><property name="age" column="age" type="int" not-null="true"></property><property name="gender" column="gender" type="string" not-null="true"></property><property name="birthday" column="birthday" type="date" not-null="true"></property><many-to-one name="school" column="school_id"></many-to-one></class></hibernate-mapping>

 
hibernate.cfg.xml 配置文件
<!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="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///userinfo</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password"></property><property name="show_sql">true</property><mapping resource="cn/gzu/edu/hibernateExp/domain/Student.hbm.xml"/><mapping resource="cn/gzu/edu/hibernateExp/domain/School.hbm.xml"/></session-factory></hibernate-configuration>

Hibernate工具类,用于建立和初始化sessionFactory

import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public final class HibernateUtil {private static SessionFactory sessionFactory;private HibernateUtil(){}static{Configuration cfg=new Configuration();cfg.configure(); sessionFactory=cfg.buildSessionFactory();}public static SessionFactory getSessionFactory() {return sessionFactory;}public static Session getSession() {return sessionFactory.openSession();}}

hibernate 实现类,主要的增删改查操作

/*********************添加数据********************************************/@Overridepublic void saveStudent(Student student) {Session s=null;Transaction ts=null;try {s = HibernateUtil.getSession();ts=s.beginTransaction();s.save(student);ts.commit();} finally{if(s!=null){s.close();}}}/*****************************************************************//********************删除数据*********************************************/@Overridepublic void deleteStudent(Student student) {Session s=null;Transaction ts=null;try {s = HibernateUtil.getSession();ts=s.beginTransaction();s.delete(student);ts.commit();} finally{if(s!=null){s.close();}}}/*****************************************************************//*********************修改数据********************************************/@Overridepublic void updateStudent(Student student) {Session s=null;Transaction ts=null;try {s = HibernateUtil.getSession();ts=s.beginTransaction();s.save(student);ts.commit();} finally{if(s!=null){s.close();}}}/*****************************************************************//***********************查询数据(id)******************************************/public Student findStudentById(int id) {Session s=null;try {s=HibernateUtil.getSession();Student student=(Student) s.get(Student.class, id);return student;}finally{if(s!=null){s.close();}}}/***********************查询数据(条件)******************************************/public Student findStudentByName(String name) {Session s=null;try {s = HibernateUtil.getSession();Criteria criteria = s.createCriteria(Student.class);criteria.add(Restrictions.eq("name", name));Student student = (Student) criteria.uniqueResult();return student;} finally{if(s!=null){s.close();}}}/*********其他操作(多对一集合)****************************/public void getStudentSet(int id){Session s=null;Transaction ts=null;try {s = HibernateUtil.getSession();ts=s.beginTransaction();School school=(School) s.get(School.class, id);System.out.println("学校:"+school.getSchname());Set<Student> stus=school.getStudent();for(Iterator it=stus.iterator();it.hasNext();){Student stu=(Student) it.next();System.out.println("学生姓名:"+stu.getName());}ts.commit();} catch(Exception e){e.printStackTrace();ts.rollback();}finally{if(s!=null){s.close();}}}


 

 

0 0
原创粉丝点击