【JavaEE学习笔记】Hibernate_05_数据类型转换和大对象处理,QBC(junit),DAO接口

这篇博客详细介绍了Hibernate中数据类型转换和大对象处理的方法,包括UserType接口和不同类型的转换。接着讲解了QBC(Query by Criteria)查询方式,强调其面向对象的特性,并通过junit测试进行实践。QBE(Query By Example)部分解释了如何使用Example进行样例查询。最后,文章探讨了DAO层的设计,包括接口、实现类和工厂模式的应用。
摘要由CSDN通过智能技术生成

Hibernate_05

A.数据类型转换和大对象处理

1.数据类型转换

Hibernate提供了UserType等接口,允许用户自定义数据类型

但是一般开发中不建议自定义类型

<property name="属性的名字" type="类型名">
	<column name=“字段的名字” length=“长度 " />
</property>

2.类型转换图


3.变量关系表

类型 Java mysql 长度
integer/int java.lang.Integer int INTEGER 4B
long java.lang.Long long BIGINT 8B
short java.lang.Short.short SMALLINT 2B
byte java.lang.Byte byte TINYINT 1B
float java.lang.Float float FOLAT 4B
double java.lang.Double double DOUBLE 8B
character java.lang.Characet/STring/char CHAR(1) 定长字串
string java.lang.String VARCHAR 变长字串
boolean java.lang.Boolean boolean BIT 布尔类型
date jva.util.Date/ jvaa.sql.Date DATE 日期
calendar java.util.Calendar TIMESTAMP 日期
calendar_date java.util.Calendar 日期 日期
binary byte[] BLOB BLOB
text java.sql.String TEXT CLOB
clob java.sq.Clob CLOB CLOB
blob java.sql.Blob BLOB BLOB
Oracle

数值型:number(n)  number(p,s)

字符型:char(n) varchar2(n) long 允许有单位 char(10 char)默认byte

日期型:date timestamp

二进制型:raw long raw

大对象:4G CLOB BLOB Bfile

4.大对象处理

		InputStream in = new FileInputStream("D:/a.jsp");
		byte[] b = new byte[in.available()];
		BlobTest blobTest = new BlobTest();
		blobTest.setMyblob(b);
		session.save(blobTest);
		tx.commit();

B.QBC

1.概述

Query by Criteria是一种比HQL更加面向对象的查询方式

Hibernate提供了一组工具类用于生成对应的查询

Criteria本身只是一个查询容器

具体的查询条件需要通过Criteria.add方法添加到实例中

Hibernate3+中引入了Restrictions作为Expression的替代

两者的使用方法一致

eq对应sql的field=value

gt对应sql的field>value    gtProperty则是属性之间比较

ge对应sql的field>=value   同上

lt对应sql的field<value      同上

le对应sql的field<=value   同上

其余方法代码中演示

2.准备工作

oracler数据库:scott

创建web工程,导入jar包


配置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">
<hibernate-configuration>
	<session-factory name="">
		<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
		<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
		<property name="connection.username">scott</property>
		<property name="connection.password">123456</property>
		<property name="connection.driver_class">oracle.jdbc.OracleDriver</property>
		<property name="show_sql">true</property>
		<property name="format_sql">true</property>
		<mapping resource="org/wpf/entity/EmpBean.hbm.xml" />
	</session-factory>
</hibernate-configuration>

配置EmpBean.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>
	<class name="org.wpf.entity.EmpBean" table="EMP"
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值