专栏首页python3SSH系列:(3)Hibernate

SSH系列:(3)Hibernate

(1)引入jar包

(2)配置

(3)测试

1、引入jar包

引入mysql jar包mysql-connector-java-5.1.38-bin.jar

引入c3p0 jar包c3p0-0.9.1.2.jar

引入hibernate相关jar包 (hibernate-distribution-3.6.0.Final)antlr-2.7.6.jarcommons-collections-3.1.jardom4j-1.6.1.jarhibernate3.jarhibernate-jpa-2.0-api-1.0.0.Final.jarjavassist-3.12.0.GA.jarjta-1.1.jarslf4j-api-1.6.1.jar

2、配置

2.1、添加实体类:Person.java

package com.rk.test.entity;
/**
 * 实体层Person类 DTO
 * 
 *
 */
public class Person {
	private String pId;
	private String pName;
	private int pVersion;
	public String getpId() {
		return pId;
	}
	public void setpId(String pId) {
		this.pId = pId;
	}
	public String getpName() {
		return pName;
	}
	public void setpName(String pName) {
		this.pName = pName;
	}
	public int getpVersion() {
		return pVersion;
	}
	public void setpVersion(int pVersion) {
		this.pVersion = pVersion;
	}
	@Override
	public String toString() {
		return "Person [pId=" + pId + ", pName=" + pName + ", pVersion="
				+ pVersion + "]";
	}
	
}

2.2、添加映射文件:Person.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 package="com.rk.test.entity" auto-import="true">
	<class name="Person" table="T_Person">
		<id name="pId" column="id" type="string" length="32">
			<generator class="uuid.hex"></generator>
		</id>
		<version name="pVersion" column="version" type="integer"></version>
		<property name="pName" column="name" type="string"></property>
	</class>

</hibernate-mapping>

2.3、添加Hibernate配置文件:hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!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节点代表一个数据库 -->
    <session-factory>
        <!-- 1. 数据库连接配置 -->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql:///tax_sys</property>	
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property>
		<!-- 
			数据库方言配置, hibernate在运行的时候,会根据不同的方言生成符合当前数据库语法的sql
		 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
        
        <!-- 2. 其他相关配置 -->
		<!-- 2.1 显示hibernate在运行时候执行的sql语句 -->
		<property name="hibernate.show_sql">true</property>
		<!-- 2.2 格式化sql -->
		<property name="hibernate.format_sql">false</property>
		<!-- 2.3 自动建表  -->
		<property name="hibernate.hbm2ddl.auto">update</property>
		
		<!-- 配置session的创建方式:线程方式创建session对象 -->
		<property name="hibernate.current_session_context_class">thread</property>


		<!-- 3. 加载所有映射-->
		<mapping resource="com/rk/test/entity/Person.hbm.xml"/>		

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

3、测试

测试两方面:第一是能从数据库读取一条数据,第二是能向数据库保存一条数据

package com.rk.test;

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

import com.rk.test.entity.Person;

public class TestHibernate {
	private SessionFactory sf;
	
	@Before
	public void init()
	{
		sf = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
	}
	
	@Test
	public void test()
	{
		Session session = sf.getCurrentSession();
		session.beginTransaction();
		
		Person p = (Person) session.get(Person.class, "4028d081564a762001564a76221e0000");
		System.out.println(p);
		
		Person p2 = new Person();
		p2.setpName("Tomcat");
		session.save(p2);
		session.getTransaction().commit();
		
	}
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • API文档管理平台

    在公司中,有很多开发,每个人维护的api接口是不一样的。如果有一个统一的api文档管理平台,每个开发,把自己维护的接口录入进去。

    py3study
  • c3p0的3种配置方式

    1.通过setters方法一个个地设置各个配置项 2.类路径下提供一个c3p0.properties文件 3.类路径下提供一个c3p0-config.xml文件

    py3study
  • Spring2 Hibernate3 J

    <beans xmlns="http://www.springframework.org/schema/beans"

    py3study
  • Hibernate入门

    Hibernate是什么     Hibernate是一个轻量级的ORMapping框架     ORMapping原理(Object Relational M...

    xiangzhihong
  • IDEA 下新建 Hibernate 项目

    bgZyy
  • 【SSH框架】系列之 Spring 整合 Hibernate

    微信公众号:compassblog 欢迎关注、转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1、SSH 三大框架整合原理 ? Spring 与 St...

    compassblog
  • 网络爬虫之Windows环境Heritrix3.0配置指南

      最近在忙某个商业银行的项目,需要引入外部互联网数据作为参考,作为技术选型阶段的工作,之前已经确定了中文分词工具,下一个话题就是网络爬虫的选择,目标很明确,需...

    数据饕餮
  • 【初学者指南】在ASP.NET MVC 5中创建GridView

    介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样。服...

    葡萄城控件
  • 浅析 JS 事件循环之 Microtask 和 Macrotask

    我们在上一篇 《浅析 JS 中的EventLoop 事件循环》 中提到一个 Event Queue,其实在事件循环中 queue 一共有两种,还有一种叫 Job...

    savokiss
  • 【php设计模式】桥接模式

    定义: 将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。

    码缘

扫码关注云+社区

领取腾讯云代金券