码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate入门:原理案例

时间:2015-08-16 21:28:54      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:hibernate

一:创建WEB项目

技术分享

二:导入Hibernate项目开发包

技术分享

三:根据数据库结构创建类

技术分享

package com.cloud.domain;

public class Users {
private Integer id;
private String name;
private String pwd;
private String email;
private String tel;
private Integer grade;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public Integer getGrade() {
return grade;
}
public void setGrade(Integer grade) {
this.grade = grade;
}
}

四:开发domain对象,和对象映射文件

Users.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="com.cloud.domain">
<!-- 配置连接数据库的表名 -->
<class name="Users" table="users">
<!-- id元素用于指定主键的属性 -->
<id name="id" column="id" type="java.lang.Integer">
<!-- 主键的生成策略 -->
<generator class="increment"/>
</id>
<!-- 配置表的其他属性 -->
<property name="name" type="java.lang.String">
<column name="name" not-null="false"/>
</property>
<property name="email" type="java.lang.String">
<column name="email" not-null="false"/>
</property>
<property name="pwd" type="java.lang.String">
<column name="pwd" not-null="false"/>
</property>
<property name="tel" type="java.lang.String">
<column name="tel" not-null="false"/>
</property>
<property name="grade" type="java.lang.Integer">
<column name="grade" not-null="false"/>
</property>
</class>
</hibernate-mapping>


五:手动配置hibernate.cfg.xml核心文件

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 配置连接数据库的基本信息 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
   <property name="connection.url">jdbc:mysql://localhost:3306/zjgm03</property>
   <property name="connection.username">root</property>
   <property name="connection.password">root</property>
   <!-- 指定hibernate使用的数据库 -->
   <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
   <property name="show_sql">true</property>
<mapping resource="com/cloud/domain/Users.hbm.xml"/>  
</session-factory>
</hibernate-configuration>


六:编写一个工具类

package com.cloud.util;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
//该类不能被继承
//使用hibernate开发项目时,保证一个数据库只有一个sessionFactory
final public class MySessionFactory {
private static SessionFactory sessionFactory=null;
private MySessionFactory(){

}
static{
sessionFactory=new Configuration().configure().buildSessionFactory(); 
}
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
}

七:编写测试代码

package com.cloud.view;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.cloud.domain.Users;
import com.cloud.util.MySessionFactory;
public class Test {
public static void main(String[] args) {
deleteUser();
}
//删除一条数据库记录方法
public static void deleteUser(){
Session session=MySessionFactory.getSessionFactory().openSession();
Transaction ts=session.beginTransaction();
Users user=(Users) session.load(Users.class, 7);
session.delete(user);
ts.commit();
session.close();
}
//修改数据库内容信息
public static void updateUser() {
Session session=MySessionFactory.getSessionFactory().openSession();
Transaction ts=session.beginTransaction();
//修改用户,前提获取该用户
Users use=(Users) session.load(Users.class, 3);
//下面的一句话会导致update的使用
use.setName("lukaikai");
ts.commit();
session.close();
}

//向数据库添加一条记录
public static void addUsers() {
//1。该对象用于读取hibernate.cfg.xml,并且初始化
//下面的括号中可以直接放入配置文件路径hibernate.cfg.xml
Configuration configuration=new Configuration().configure();
//2. 创建SessionFactory[一个会话工厂,重量级对象]
SessionFactory sessionFactory=configuration.buildSessionFactory();
//3.创建session
Session session=sessionFactory.openSession();
//4.使用数据库事物
Transaction transaction=session.beginTransaction();
//添加记录
Users users=new Users();
users.setName("zhangsan");
users.setPwd("4321");
users.setEmail("zy@qq.com");
users.setTel("12345");
users.setGrade(1);
//保存,持久化该对象
session.save(users);
transaction.commit();
session.close();
}
}

版权声明:博主原创文章,转载请说明出处。http://blog.csdn.net/dzy21

Hibernate入门:原理案例

标签:hibernate

原文地址:http://blog.csdn.net/dzy21/article/details/47703315

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!