title: 手动配置hibernate及简单使用规范
date: 2018-3-19 08:35:24
tags: [hibernate]
categories: Hibernate
keywords: 手动配置hibernate及简单使用规范
记录一下手动配置hibernate的过程及操作
准备工作 三拷三配
1.三拷;资源在网上都可以找得到
(1) 拷jdbc驱动,放在“工程/WebRoot/WEB-INF/lib”文件夹下
(2) 拷hibernate开发包,放在“工程/WebRoot/WEB-INF/lib”文件夹下
(3) 拷log4j,放在“工程/src”文件夹下
2.三配
如:数据库有表dep(depid,depname)
(1) 配置pojo,即配置class,实现class-table一一对应;如:创建Dep类
package com.pojo;
public class Dep {
private int depid;
private String depname;
public int getDepid() {
return depid;
}
public void setDepid(int depid) {
this.depid = depid;
}
public String getDepname() {
return depname;
}
public void setDepname(String depname) {
this.depname = depname;
}
}
(2) 配置pojo的配置文件,真正实现class-table的一一对应;如:创建Dep.hbm.xml文件,该文件放在同Dep类一个包内(这里是放在pojo包中);有如下基本配置:
<?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">
<!-- 配置的是orm关系 -->
<!-- 该xml文件 .hbm.xml 前可以改名 这是最容易配置的文件-->
<hibernate-mapping>
<class name="com.pojo.Dep" table="dep"><!-- 配置的是表和类的关系 -->
<!-- 主键的配置 -->
<id column="depid" name="depid">
<generator class="assigned"></generator><!-- 自己设计主键 -->
</id>
<!-- 非主键的配置 -->
<property name="depname" column="depname" length="20"></property>
</class>
</hibernate-mapping>
(3)配置总的配置文件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">
<!-- 配置的jdbc的参数 -->
<hibernate-configuration>
<session-factory>
<!-- 设置jdbc访问数据库的4个参数 当要切换使用数据库时只需要修改这个部分就可以了 -->
<property name="connection.username">sa</property><!-- 你的数据库用户名 -->
<property name="connection.password">sasa</property><!-- 你的数据库登录密码 -->
<property name="connection.driver_class"><!-- 驱动:各种数据库的驱动不同 -->
com.microsoft.sqlserver.jdbc.SQLServerDriver
</property>
<property name="connection.url"><!-- 要使用的数据库名(s53) -->
jdbc:sqlserver://127.0.0.1:1433;DatabaseName=s53
</property>
<property name="show_sql">true</property><!-- 方便起见:必须设置 显示sql -->
<!-- 设置方言 -->
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
<!-- pojo的映射文件,必加,因为在使用过程中,第一步读取配置文件操作只会读取总的配置文件而不会单独读取pojo的配置文件 -->
<mapping resource="com/pojo/Dep.hbm.xml" />
</session-factory>
</hibernate-configuration>
测试:创建Test测试类
package com.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.pojo.Dep;
public class Test {
public static void main(String[] args) {
// 1.读取总的配置文件
Configuration configuration = new Configuration().configure();
// 2.创建session工厂
SessionFactory factory = configuration.buildSessionFactory();
// 3.得到session 就是对connection对象进行了封装
Session session = factory.openSession();
// 4.开启事务 -- 执行查询操作时可以不开事务
Transaction transaction = session.beginTransaction();
Dep dep = new Dep();
dep.setDepid(2);
dep.setDepname("李四");
// 5.持久化
session.save(dep);// 保存
// 6.提交事务
transaction.commit();
// 7.关闭session
session.close();
}
}