首页 > 代码库 > hibernate 环境搭建测试

hibernate 环境搭建测试

对于hibernate的介绍,网络上一搜一堆,恐怕我写的也没前辈总结的好。

这个博主总结的十分好,方便大家欣赏  http://blog.csdn.net/liujiahan629629/article/details/21442607


真正要掌握,还得需要自己动手,才能丰衣足食。

  1. 所需jar包

    jar包版本不同,找的地址也不同。这里用到的是 hibernate-release-5.2.10 版本的jar包


    技术分享

除了这些jar包,还需要数据库驱动jar,根据自己用的数据库自定,这里用到的是oracle

技术分享  


2.jar包导入好,看看配置,在配置之前,看下实体和表结构。

实体 Users

package com.hib.entity;

public class Users {
	private Integer id;
	private String name;
	private String pass;
	private String address;
	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 getPass() {
		return pass;
	}
	public void setPass(String pass) {
		this.pass = pass;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public Users(Integer id, String name, String pass, String address) {
		super();
		this.id = id;
		this.name = name;
		this.pass = pass;
		this.address = address;
	}
	public Users() {
		super();
	}
	@Override
	public String toString() {
		return "Users [id=" + id + ", name=" + name + ", pass=" + pass + ", address=" + address + "]";
	}
	
}

表结构

技术分享

在src下 hibernate.cfg.xml配置,如果不知道里面的配置怎么写。可以通过在下载的jar包中搜索hibernate.cfg.xml,里面有配置信息。

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>
        <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
        <property name="hibernate.connection.username">ssh</property>
        <property name="hibernate.connection.password">ssh</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@127.0.0.1:1521:xe</property>
        
        <!-- 方言 -->
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <!-- 可视化sql -->
        <property name="hibernate.show_sql">true</property>
        <!-- 格式化sql,自动对可视化sql换行,对齐 -->
        <property name="hibernate.format_sql">true</property>
        
        <!-- 映射文件配置 -->
        <mapping resource="User.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

3. User.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>
	
	<!-- name:是实体   table是表名称 -->
	<class name="com.hib.entity.Users" table="TEST_USER">
		<id name="id">
			<!-- 主键自增策略,hibernate提供了几种,这里测试,先写一个,后面会补充 -->
			<generator class="increment"></generator>
		</id>

		<!-- name:是实体中属性的名称,column:是表中字段的名称,type是数据类型 
			在这里发现后面的 pass和 address 没有写column和type
			如果表字段和实体属性名称一致,可以省略不写
		-->
		<property name="name" column="name" type="java.lang.String"/>
		<property name="pass"/>
		<property name="address"/>
	</class>

</hibernate-mapping>

4.测试数据连接是否配置成功

package com.hib.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

import com.hib.entity.Users;

public class TestConn {
	
	// 获取session
	public static Session getSession(){
		// 加载配置
		Configuration cfg = new Configuration().configure();
		// 获取sessionFactory
		SessionFactory factory = cfg.buildSessionFactory();
		// 获取session
		Session session = factory.openSession();
		return session;
	}
	
	// 查询
	@Test
	public void query(){
		Session session = getSession();
		// 查询
		Users users = session.get(Users.class, 1);
		System.out.println(users);
		//关闭资源
		session.close();
	}
	// 在进行增删改时 ,好控制事务    ---- 插入
	@Test
	public void insert(){
		Session session = getSession();
		// 开启事务
		Transaction tx = session.beginTransaction();
		Users users = new Users(null, "xyz", "xyz", "china");
		// 插入
		session.save(users);
		// 事务提交
		tx.commit();
		// 事务回滚
		//tx.rollback();
		session.close();
	}
	// 更新数据前   需要先查询出修改的数据
	@Test
	public void update(){
		Session session = getSession();
		Transaction tx = session.beginTransaction();
		Users users = session.get(Users.class, 1);
		users.setAddress("郑州");
		users.setName("小李飞刀");
		session.update(users);
		tx.commit();
		session.close();
	}
	// 删除  需要先出现出删除的数据
	@Test
	public void delete(){
		Session session = getSession();
		Transaction tx = session.beginTransaction();
		Users users = session.get(Users.class, 1);
		session.delete(users);
		tx.commit();
		session.close();
	}
	
}

这里仅仅是个测试,后面的会继续更新,不足希望多多指教。

本文出自 “永恒之光” 博客,请务必保留此出处http://zhuws.blog.51cto.com/11134439/1932652

hibernate 环境搭建测试