在上一篇的基础上做一些改动
一:导入包:
二:生成Studnet相应的Student.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"> <!-- Generated 2017-6-30 8:28:03 by Hibernate Tools 3.5.0.Final --> <hibernate-mapping> <class name="com.springmvc.domain.Student" table="student1"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="native" /> </id> <property name="name" type="java.lang.String"> <column name="name" /> </property> <property name="sex" type="java.lang.String"> <column name="sex" /> </property> <property name="age" type="java.lang.Integer"> <column name="age" /> </property> <property name="address" type="java.lang.String"> <column name="address" /> </property> </class> </hibernate-mapping>
三:新建一个hibernate配置文件
在配置文件中要加入student.hbm.xml 的路径
<?xml version="1.0" encoding="UTF-8"?> <!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="connection.url"> jdbc:mysql://localhost:3306/test </property> <property name="connection.driver_class"> com.mysql.jdbc.Driver </property> <property name="connection.username"> root </property> <property name="connection.password"> 123456 </property> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <property name="hibernate.show_sql">true</property> <mapping resource="com/springmvc/domain/Student.hbm.xml"/>//一定要加否则会报错 </session-factory> </hibernate-configuration>
四:新建一个在domain目录下StudentDao类
操作的源代码如下:
package com.springmvc.domain; import java.util.Iterator; import java.util.List; import java.util.Scanner; import javax.management.Query; import javax.persistence.Entity; import javax.persistence.Table; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.loader.GeneratedCollectionAliases; import org.hibernate.tool.hbm2ddl.SchemaExport; @Entity @Table(name="student1") public class StudentDao { public StudentDao(){ } //添加信息操作 public boolean insert(Student student){ boolean ti = false; Configuration cfg = new Configuration(); SessionFactory sf = cfg.configure().buildSessionFactory(); Session session = sf .openSession(); session.beginTransaction(); try{ session.save(student); session.getTransaction().commit(); session.close(); sf.close(); ti = true; }catch(Exception e){ e.printStackTrace(); }finally{ return ti; } } //获取一个人的信息 public Student getStudent(String name){ Configuration cfg = new Configuration(); SessionFactory sf = cfg.configure().buildSessionFactory(); Session session = sf .openSession(); session.beginTransaction(); List<Student> students = getAllStudents(); for(Student stu : students){ if(stu.getName().equals(name)){ return stu; } } session.getTransaction().commit(); session.close(); sf.close(); return null; } //修改信息操作 public boolean update(Student student){ boolean ti = false; Configuration cfg = new Configuration(); SessionFactory sf = cfg.configure().buildSessionFactory(); Session session = sf .openSession(); session.beginTransaction(); List<Student> students = getAllStudents(); try{ for(Student stu : students){ if(stu.getName().equals(student.getName())){ session.update(student); break; } } session.getTransaction().commit(); session.close(); sf.close(); ti = true; }catch(Exception e){ e.printStackTrace(); }finally{ return ti; } } //获取全部信息操作 public List<Student> getAllStudents(){ Configuration cfg = new Configuration(); SessionFactory sf = cfg.configure().buildSessionFactory(); Session session = sf .openSession(); session.beginTransaction(); List<Student> students = session.createSQLQuery("select * from student1").addEntity(Student.class).list(); session.getTransaction().commit(); session.close(); sf.close(); return students; } //删除操作 public boolean deleteStudent(String name){ boolean ti = false; Configuration cfg = new Configuration(); SessionFactory sf = cfg.configure().buildSessionFactory(); Session session = sf .openSession(); session.beginTransaction(); List<Student> students = session.createSQLQuery("select * from student1").addEntity(Student.class).list(); try{ for(Student stu : students){ if(stu.getName().equals(name)){ session.delete(stu); break; } } session.getTransaction().commit(); session.close(); sf.close(); ti = true; }catch(Exception e){ e.printStackTrace(); }finally{ return ti; } } }
五:把上一次在studentImpl.java调用Jdbc类的代码换成调用StudentDao类
把 Jdbc a = new Jdbc();
换成StudentDao a = new StudentDao();
六:就这样完成了springmvc集成hibernate的小程序了
对了数据库中id是自增型的,否则会报错的!
运行的时候有可能有点慢