您的位置:首页 > 产品设计 > UI/UE

小白记录~hibernate旧石器时代方法buildSessionFactory();连接MySQL方法

2017-03-13 18:08 459 查看
菜鸟第一次写   多多见谅
Save方法的执行流程:

    1. 新建一个Configuration对象

    2. 利用方法Configuration.configure()加载`hibernate.cfg.xml`文件

    3. 根据hibernate.cfg.xml中的配置连接数据库,并配置相关的property属性

    4. 加载解析映射文件, 把映射文件中的信息保存在Configuration对象中

    5. 根据config创建SessionFactory对象,
并创建session对象

    6. 调用session中的save(),delete(),update(),get();createQuery()进行增删改查
所需要JAR包



废话不多说  上代码

获取Session
package com.gxxy.student.util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

@SuppressWarnings("deprecation")
public class HibernateUitl {
static SessionFactory sessionFactory;
static{
//将buildSessionFactory();放入静态代码块
sessionFactory = new Configuration().configure().buildSessionFactory();
//ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(configure.getProperties()).buildServiceRegistry();
//Session session=configure.buildSessionFactory(sr).openSession();
}
//取得Session对象
public sta
4000
tic Session getSession(){
return sessionFactory.openSession();
}
}


Student类
package com.gxxy.student.domain;

public class Student {
private int id;
private String name;
private int age;
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(int id) {
this.id = id;
}
public Student() {}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}


StudentDao接口
package com.gxxy.student.dao;

import java.util.List;

import com.gxxy.student.domain.Student;

public interface StudentDao {
/**
* 增加数据
*/
public void save(Student s);
/**
* 删除数据
*/
public void delete(Student s);
/**
* 修改数据
*/
public void update(Student s);
/**
* 查询一条数据
*/
public Student get(Student s);
/**
* 查询所有数据
*/
public List<Student> list();
}


StudentDaoIMPL实现类
package com.gxxy.student.daoimpl;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import com.gxxy.student.dao.StudentDao;
import com.gxxy.student.domain.Student;
import com.gxxy.student.util.HibernateUitl;

public class StudentDaoIMPL implements StudentDao{
//具体的调用Sisson中的方法
@Override
public void save(Student s) {
Session session = HibernateUitl.getSession();
//改变数据库内容时必须调用事务
session.beginTransaction();
session.save(s);
session.getTransaction().commit();
session.close();
}

@Override
public void delete(Student s) {
Session session = HibernateUitl.getSession();
session.beginTransaction();
session.delete(s);
session.getTransaction().commit();
session.close();
}

@Override
public void update(Student s) {
Session session = HibernateUitl.getSession();
session.beginTransaction();
session.update(s);
session.getTransaction().commit();
session.close();
}

@Override
public Student get(Student s) {
Session session = HibernateUitl.getSession();
Student student= (Student) session.get(s.getClass(), s.getId());
session.close();
return student;
}

@Override
public List<Student> list() {
Session session = HibernateUitl.getSession();
Query query = session.createQuery("SELECT stu FROM Student stu");
@SuppressWarnings("unchecked")
List<Student> list = query.list();
return list;
}

}


Student.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<!-- 链接Student类与表的名字 -->
<class name="com.gxxy.student.domain.Student" table="Student">
<id name="id" column="s_id"><!-- 设置id为主键,根据它去取得数据 -->
<generator class="native"></generator>
</id><!-- 设置Student对象与表中字段一一对应 -->
<property name="name" column="s_name"/>
<property name="age" column="s_age"/>
</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><!-- 在控制台打印Hibernate自动生成的SQL语句 -->
<property name="show_sql">true</property>
<!-- 设置连接数据库的四大参数 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<!-- 导入映射文件 -->
<mapping resource="com/gxxy/student/domain/Student.hbm.xml"/>
</session-factory>
</hibernate-configuration>




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐