Java_Web三大框架之Hibernate配置文件(二)

下面介绍一下编写Hibernate的配置文件,使用Hibernate操作数据库。

开始部署:下载需要的jar包

下载Hibernate

Hibernate 的官方主页是www.hibernate.org

推荐下载hibernate-distribution-3.3.2.GA-dist.zip

Hibernate包目录结构

部署jar包

hibernate3.jar

required 目录下的jar 包

Oracle 数据库驱动jar包

第一步:创建实体类和实体映射文件

public class User {

    private int id;
    private String username;
    private String password;
}
省略get和set方法

配置映射文件(*.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">
<hibernate-mapping
    package="com.msit.hibernate.entity">
<!--User实体,t_user数据库表面名-->
    <class name="User" table="t_user">
                 <!--自增id-->
        <id name="id">
            <generator class="increment"/>
        </id>
        <property name="username" />
        <property name="password" />
    </class>

</hibernate-mapping>

第二步:向hibernate.cfg.xml文件中配置映射文件

<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory name="foo">
        <!-- 数据库方言 -->
        <property name="dialect">
            org.hibernate.dialect.OracleDialect
        </property>
        <!-- 连接数据库Url -->
        <property name="hibernate.connection.url">
            jdbc:oracle:thin:@localhost:1521:orcl
        </property>
        <!-- 连接驱动 -->
        <property name="hibernate.connection.driver_class">
            oracle.jdbc.driver.OracleDriver
        </property>
        <!-- 用户名 -->
        <property name="hibernate.connection.username">epet</property>
        <!-- 密码 -->
        <property name="hibernate.connection.password">123456</property>

        <!-- 自动创建数据库表格 -->
        <property name="hibernate.hbm2ddl.auto">update</property>

        <!-- 配置映射信息 -->
        <mapping resource="com/msit/hibernate/entity/User.hbm.xml" />

    </session-factory>
</hibernate-configuration>

注:
<session-factory>
    <!--省略其他配置-->
    <!--注意配置文件名必须包含其相对于classpath 的全路径-->
    <mapping resource="cn/jbit/houserent/entity/User.hbm.xml" />
</session-factory>

第三步:抽出HibernateUtil接口

package com.msit.hibernate.HibernateUtil;

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

public class HibernateUtil {

    private HibernateUtil(){

    };

    public static SessionFactory SessionFactory = null;

    static{
        //hibernate初始化
        Configuration cf = new Configuration();
        cf.configure();
        SessionFactory = cf.buildSessionFactory();//DriverManager.getconnection()
        //Session session = SessionFactory.openSession();//相当于得到Connection对象
    }

    public static Session getSession(){

        return SessionFactory.openSession();
    }

    public static void closeSession(Session session){
        if(session!=null){
            session.clear();
        }
    }

}

第四步:编写测试类:

package com.msit.hibernate.test;

import java.sql.DriverManager;

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

import com.msit.hibernate.HibernateUtil.HibernateUtil;
import com.msit.hibernate.entity.User;

public class HibernateTest {

    /**
     * @param args
     */
    public static void main(String[] args) {

        //创建用户
        User user = new User();
        user.setId(1);
        user.setUsername("master123456");
        user.setPassword("123");

        Session session = HibernateUtil.getSession();

        //进行事务处理
        Transaction Transaction = session.beginTransaction();

        try {

            //对数据做保存至数据库
            session.update(user);

            //提交事务
            Transaction.commit();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            //如果出现异常则进行事务回滚
            Transaction.rollback();
        }
    }
}
时间: 2024-10-27 13:56:47

Java_Web三大框架之Hibernate配置文件(二)的相关文章

Java_Web三大框架之Hibernate 入门(一)

一.Hibernate简介: Hibernate作者——Gavin King Hibernate创始人 < Hibernate in action >作者 EJB 3.0的Entity bean specification的实际领导人(sun任命的领导人是Linda DeMichiel) 参加了XDoclet和Middlegen的开发 2003年9月加入JBoss,全职进行Hibernate开发 二.Hibernate 1.一个开发源代码的对象关系映射框架 2.对JDBC进行了非常轻量级的对象

Java_Web三大框架之Hibernate操作数据库(三)

使用Hibernate操作数据库需要七个步骤: (1)读取并解析配置文件 Configuration conf = newConfiguration().configure(); (2)读取并解析映射信息,创建SessionFactory SessionFactory sf = conf.buildSessionFactory(); (3)打开Session Session session = sf.openSession(); (4)开始一个事务(增删改操作必须,查询操作可选) Transac

Java_Web三大框架之Hibernate+HQL语言基础

12.1 HQL语言基础Hibernate查询语言为HQL(Hibernate Query Language),可以直接使用实体类名及属性.HQL语法类似于SQL,有SQL的关键词如select.from.order by.count().where等等.不同的是HQL是一种完全面向对象的语言,能够直接查询实体类及属性.12.1.1 HQL语法HQL语法类似于SQL,是一种select...from...的结构.其中,from后跟的是实体类名,而不是表名.select后面跟的可以是实体对象,也可

Java_Web三大框架之Hibernate+jsp+selvect+HQL查询数据

俗话说:"好记性不如烂笔头".本人学习Hibernate也有一个星期了,对Hibernate也有一个初步的了解.下面对Hibernate显示数据做个笔记,使用租房系统的Hibernate+jsp+selvect. 第一步:编写房屋实体类 /* * 房屋实体类 */ public class House { private int id;//房屋id private String title;//标题 private String description;//描述 private Str

Java_Web三大框架之Hibernate+jsp+selvect+HQL注册用户

Hibernate比SQL语句简单多了,代码冗余少,切方便简洁明了.下面用Hibernate+jsp+selvect+HQL来实现注册用户. 第一步:编写用户实体类和Users2.hbm.xml映射. /* * 用户实体类 */ public class Users2 { private int id;//用户id private String name;//用户昵称 private String password;//用户密码 private String telephone;//用户号码 p

Java_Web三大框架之Hibernate+jsp+HQL分页查询

分页查询无处不在.使用Hibernate+jsp+HQL进行分页查询. 第一步:编写房屋实体类和House.hbm.xml映射. /* * 房屋实体类 */ public class House { private int id;//房屋id private HouseType type;//房屋类型 private Users2 user;//用户 private Street street;//街道 private String title;//标题 private String descr

Java_Web三大框架之Hibernate+jsp+selvect+HQL登入验证

刚开始接触Hibernate有些举手无措,觉得配置信息太多.经过一个星期的适应,Hibernate比sql简单方便多了.下面做一下Hibernate+jsp+selvect+HQL登入验证. 第一步:编写用户实体类和配置用户Users2.hbm.xml映射. /* * 用户实体类 */ public class Users2 { private int id;//用户id private String name;//用户昵称 private String password;//用户密码 priv

Java_Web三大框架之Hibernate增删改查

下面介绍一下Hibernate的增删改查. 第一步:编写用户实体类以及User.hbm.xml映射 package com.msl.entity; public class User { private int id; private String name; private String password; private String telephone; private String username; private String isadmin; public User() { } p

【SSH三大框架】Hibernate基础第十二篇:load()懒加载分析以及一对一、一对多、多对一、多对多懒加载的分析

一.懒加载的定义: 懒加载:在WEB应用程序中,经常会需要查询数据库,系统的响应速度在很大程度上是与数据库交互的响应.因此,如果能够优化与数据库的交互速度,则能够大大提高WEB应用的响应速度. 例如:当有一个Student类和一个Teacher类.当我们加载一个学生的所有信息,包括:学号,姓名等属性后,此时Student类中的Teacher类型的属性为null,当我们需要知道这个Student对应的Teacher属性的时候,我们才去加载这个Teacher对象. 如果,我们只需要知道学生信息,我们