Hibernate创建过程
Hibernate创建过程
1.首先了解hibernate的结构如图
2.hibernate所需要的jar包
3.下面要在项目下创建hibernate.cfg.xml的文件夹
4.下面就开始主题,首先创建user实体类
5.创建好实体类之后,就要开始配置user实体类所对应的映射文件,文件名的规范是:实体类名.hbm.xml,映射文件最后生成的就是数据库所对应的表。详细代码如图:
代码:下面有详细的注解
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!-- name="user实体类的路径,"连接实体类 table连接表名称 -->
<class name="com.hp.bean.User" table="tb_hibernate">
<!-- 实体类中的id -->
<id name="id">
<!--generator class="native"native!!! -->
<!-- id的自增方式 -->
<generator class="native"></generator>
</id>
<!--所对应的实体内的数据 -->
<property name="pwd"></property>
<property name="age"></property>
<property name="name"></property>
<property name="sex"></property>
</class>
</hibernate-mapping>
6.下面开始配置hibernate.cfg.xml的配置文件,注意文件名是有规范的,只能是hibernate.cfg.xml,代码图片如***意代码中的数据库名密码用户名要和自己数据库中的对应,下面代码有详细的注解:
代码:
<hibernate-configuration>
<session-factory>
<!-- 配置驱动 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 配置数据库 test是数据库名 -->
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test?create database daycode default charset=utf8;</property>
<!-- 配置数据库名称 -->
<property name="hibernate.connection.username">root</property>
<!-- 配置数据库密码 -->
<property name="hibernate.connection.password">root</property>
<!-- 配置方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 配置格式化文件 -->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<!-- 自动创建表 -->
<property name="hibernate.hbm2ddl.auto">create</property>
<property name="hibernate.connection.characterEncoding">utf-8</property>
<!-- 配置映射文件 -->
<mapping resource="com/hp/bean/User.hbm.xml"/>
<mapping resource="com/hp/bean/Department.hbm.xml"/>
<mapping resource="com/hp/bean/Employee.hbm.xml"/>
<mapping resource="com/hp/bean/Student.hbm.xml"/>
<mapping resource="com/hp/bean/Classes.hbm.xml"/>
</session-factory>
</hibernate-configuration>
7.接下来是写工具类:
代码:
package com.hp.hbtest;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
//������
public class Hibernatetest {
public static final Configuration cfg;
public static final SessionFactory sf;
public static Session getCurrentSession;
static {
cfg = new Configuration().configure();
sf = cfg.buildSessionFactory();
}
public static Session openSesson(){
return sf.openSession();
}
}
8.最后一步就是编写测试类,包括增删改查的简单操作,代码中有详细的注释;如图:
package com.hp.Test;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import com.hp.bean.User;
import com.hp.hbtest.Hibernatetest;
public class UserDemo2 {
@Test
public void dome1() {
/**
* 添加数据
*/
//打开session
Session openSesson = Hibernatetest.openSesson();
//编写创建事务
Transaction ts = openSesson.beginTransaction();
//添加用户数据
User user = new User();
user.setName("hhj");
user.setAge(15);
user.setPwd("123");
user.setSex('s');
User user2 = new User();
user2.setName("hhj");
user2.setAge(15);
user2.setPwd("123");
user2.setSex('s');
//保存用户数据
openSesson.save(user);
openSesson.save(user2);
//在控制台输出数据
System.out.println(user);
System.out.println(user2);
//提交事务
ts.commit();
}
@Test//查询
public void dome2() {
//打开session
Session session = Hibernatetest.openSesson();
//编写创建事务
Transaction tx = session.beginTransaction();
//查询
User user = (User) session.get(User.class, 1);
System.out.println(user);
//提交事务
tx.commit();
//关闭session
session.close();
}
@Test//改
public void dome3() {
Session session = Hibernatetest.openSesson();
Transaction tx = session.beginTransaction();
User user = (User) session.get(User.class, 1);
//修改的名称
user.setName("ls");
//保存所修改的内容
session.update(user);
tx.commit();
session.close();
}
@Test//删
public void dome4() {
Session session = Hibernatetest.openSesson();
Transaction tx = session.beginTransaction();
User user =(User) session.get(User.class, 1);
session.delete(user);
tx.commit();
session.close();
}
}
最后希望可以帮到大家,共同学习,如果代码有错误也请见谅,可以留言指出,谢谢!