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

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

一:导入包:


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

运行的时候有可能有点慢


猜你喜欢

转载自blog.csdn.net/qq_26584263/article/details/73930059