我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SSH系列:(3)Hibernate

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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.jar

commons-collections-3.1.jar

dom4j-1.6.1.jar

hibernate3.jar

hibernate-jpa-2.0-api-1.0.0.Final.jar

javassist-3.12.0.GA.jar

jta-1.1.jar

slf4j-api-1.6.1.jar



2、配置


2.1、添加实体类:Person.java

package com.rk.test.entity;

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();
		
	}
}




免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SSH系列:(3)Hibernate

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Leviathan系列0-3

level0:warming up 管理员的坏习惯  ls -a                   #发现隐藏目录 .backup    ls .backup/        #发现bookmarks.html     #下载bookma
2023-01-31

krypton系列0-3

level 0:base64解码    echo S1JZUFRPTklTR1JFQVQ= | base64 -dlevel 1:ROT13加密    百度一个ROT13的解密网站,或者使用前面bandit系列level 11提到的解密命令
2023-01-31

MySQL系列:(3)MySQL加强

DDL数据定义语言:create / drop / alterDML数据操作语句:insert / delete /update / truncateDQL数据查询语言:select / show2.1、什么是数据约束对表中的列值数据进行约
2023-01-31

JDBC系列:(3)使用Prepared

执行sql语句的接口接口作用Statement接口用于执行静态的sql语句PreparedStatement接口用于执行预编译sql语句CallableStatement接口用于执行存储过程的sql语句(call xxx)PreparedS
2023-01-31

MyBatis系列:(3)基于MyBat

Emp.javapackage com.rk.entity;public class Emp {    private Integer id;    private String name;    private Double sal;  
2023-01-31

SCCM 2007系列3 配置

每天一篇SCCM 2007的系列文章,希望大家喜欢我这样的分享哈~一定要多来捧场哦,当然欢迎大家提问,我尽力把知道的给大家解答哈!上一篇给大家分享了安装SCCM 2007,今天给大家主要分享下配置,我的分享还是老风格,手把手的教,详细的您都
2023-01-31

awk系列3--比较全面

在各大网站看到的 自己整理的awk学习实例 [root@localhost opt]# cat grade.txt  M.Tansley  05/99   48311   Green   8  40  44 J.Lulu     06/99
2023-01-31

Kafka系列3-python版本pro

直接上代码了:# -*- coding: utf-8 -*-''' 使用kafka-Python 1.3.3模块'''import sysimport timeimport jsonfrom kafka import KafkaPro
2023-01-31

DVWA系列之3 medium级别SQL

将“DVWA Security”设置为medium中等级别,首先点击右下角的“View Source”查看此时的网页源码,主要观察与low级别的区别。可以发现,这里对用户输入的id参数进行了过滤,主要方法是使用了mysql_real_esc
2023-01-31

[9-13]Shell系列3——分支结构

本文旨在复习shell实现分支结构的3种if语句和case多分支结构语句,以及补充if和case的执行效率知识储备Shell脚本中语言结构还是那3种:顺序结构、选择结构、循环结构分支结构与选择结构是同一概念,依据一定的条件选择执行路径,而不
2023-01-31

WCF系列-WCF基础(3) 宿主方式

WCF开发框架的宿主方式http://www.cnblogs.com/wuhuacong/archive/2013/02/22/2922195.html http://www.cnblogs.com/Gyoung/p/3651076.htm
2023-01-31

mysql系列之多实例3----基于my

上一篇博文mysql系列之多实例2----基于多配置文件介绍了,如何部署基于多配置文件的mysql多实例,本篇博文将介绍基于mysql自带的mysqld_multi工具来如何实现mysql多实例的部署和管理!环境:CentOS 6.5 x8
2023-01-31

python 学习系列(3) 读取并显示

python 读取并显示图片的两种方法在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片。本人偏爱 matpoltlib,因为它的语法更像 matlab。1. 显示图片import mat
2023-01-31

Wireshark系列之3 路由过程抓包

首先收集每台设备的MAC地址以备分析:服务器A:00-0c-29-bb-bb-7f服务器B:00-0C-29-8C-BF-6D默认网关:00-50-56-fe-c8-98在服务器B上启动Wireshark,然后执行ping命令与A通信,此时
2023-01-31

R语言数据挖掘实战系列(3)

R语言数据挖掘实战系列(3)三、数据探索        通过检验数据集的数据质量、绘制图表、计算某些特征量等手段,对样本数据集的结构和规律进行分析的过程就是数据探索。数据质量分析        数据质量分析的主要任务是检查原始数据中是否存在
2023-01-31

CCNA系列课程(3)CDP及设备基本操

第三节课     CDP及Cisco 设备常规操作杜飞2009-06-25       今天主要介绍一些Cisco设备的自动发现协议:CDP,然后再介绍一下设备的基本操作如接口类型,常见命令等。首先咱们先来看第一个知识点Cisco Disc
2023-01-31

Citrix实施问题及解决方法系列-3

7、通过GPRS访问XenApp时,会出现连接慢、打开页面慢、下载ICA文件慢、打开界面后无法界面无响应无法操作的现象,但通过有线方式访问或外省GPRS访问则没有问题,不知是什么原因造成的?答:怀疑本地服务器到本地GPRS网关的连接配置有问
2023-01-31

编程热搜

目录