使用SpringMVC进行数据的传送,数据来自mysql数据库 (2)使用hibernate

来源:互联网 发布:俄罗斯军粮淘宝 编辑:程序博客网 时间:2024/06/09 18:38

在上一篇的基础上做一些改动

一:导入包:


二:生成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是自增型的,否则会报错的!

运行的时候有可能有点慢


阅读全文
0 0