一、常用的Hibernat映射类型有如下几种:

  • string
  • integer
  • double
  • date    日期,只表示年月日
  • datetime 日期,只表示年月日
  • timestamp  时间戳,存放年月日时分秒
  • yes_no  将在数据库中存放一个字符“Y"或“N”
  • true_false  将在数据库中存放一个字符“T"或者"F".
二、案例
1、新建数据库表
DROP TABLE IF EXISTS t_emp;
CREATE TABLE t_emp (
t_id
int(11) NOT NULL AUTO_INCREMENT,
t_name
varchar(50) NOT NULL,
t_salary
double(9,2) NOT NULL,
t_hire_date date
NOT NULL,
t_last_login timestamp
NOT NULL,
t_register char(1)
NOT NULL,
PRIMARY KEY (t_id)
) ENGINE=InnoDB;
varchar对应String
date对应年月日
timestamp对应年月日时分秒
通常情况下,使用char(1),值为true/false,来表示Boolean类型。
2、新建POJO类Emp
package com.xsyu.tts.po;

import java.util.Date;

public class Emp {
private Integer id;
private String name;
private double salary;
private Date hireDate;
// 入职时间
private Date lastLogin;
// 最后登录日期
private boolean register; // 是否注册
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 double getSalary() {
return salary;
} public void setSalary(double salary) {
this.salary = salary;
} public Date getHireDate() {
return hireDate;
} public void setHireDate(Date hireDate) {
this.hireDate = hireDate;
} public Date getLastLogin() {
return lastLogin;
} public void setLastLogin(Date lastLogin) {
this.lastLogin = lastLogin;
} public boolean isRegister() {
return register;
} public void setRegister(boolean register) {
this.register = register;
}
}
3、新建Emp.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 package="com.tarena.tts.po">
<class name="Emp" table="t_emp">
<id name="id" type="integer" column="t_id">
<!-- 用来指明主键的生成方式 -->
<generator class="identity">
</generator>
</id>
<property name="name" type="string" column="t_name" />
<property name="salary" type="double" column="t_salary" />
<property name="hireDate" type="date" column="t_hire_date" />
<property name="lastLogin" type="timestamp" column="t_last_login" />
<property name="register" type="yes_no" column="t_register" />
</class>
</hibernate-mapping>
4、修改配置文件
<?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>
<!-- 数据库连接信息 -->
<property name="connection.url">
jdbc:mysql://localhost:3306/test
</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<!-- Hibernate配置信息 -->
<!-- dialect方言,用亍配置生成针对哪个数据库的SQL语句 -->
<property name="dialect">
<!--方言类,Hibernate提供的,用亍封装某种特定数据库的方言 -->
org.hibernate.dialect.MySQLDialect
</property>
<property name="hibernate.show_sql">true</property>
<!-- 在配置文件中关联映射文件 -->
<mapping resource="com/xsyu/tts/po/User.hbm.xml" />
<mapping resource="com/xsyu/tts/po/Foo.hbm.xml" />
<mapping resource="com/xsyu/tts/po/Emp.hbm.xml" />
</session-factory>
</hibernate-configuration>
5、修改TestPersistence
	/**
* 用于测试Hibernate映射类型 string interger double date timestamp yes_no true_false
*/
@Test
public void testType() {
Session session = HibernateUtils.openSession();
Transaction tx = session.beginTransaction();
Emp emp = new Emp();
emp.setName("BigYellow");
emp.setSalary(15000.90);
emp.setHireDate(new Date());
emp.setLastLogin(new Date());
emp.setRegister(true);
session.save(emp);
tx.commit();
session.close();
}

Hibernate——(4)Hibernate映射类型的更多相关文章

  1. Hibernate配置文件和映射元素解释

    象关系的映射是用一个XML文档来说明的.映射文档可以使用工具来生成,如XDoclet,Middlegen和AndroMDA等.下面从一个映射的例子开始讲解映射元素. AD:干货来了,不要等!WOT20 ...

  2. Hibernate配置文件中映射元素详解

    对象标识符号 在关系数据库表中,主键(Primary Key)用来识别记录,并保证每条记录的唯一性.在Java语言中,通过比较两个变量所引用对象的内存地址是否相同,或者比较两个变量引用的对象值是否相同 ...

  3. hibernate的映射类型

    hibernate的映射类型 hibernate MySQL映射类型 1.Hibernate的映射类型 hibernate mysql映射类型 Hibernate 映射类型 Java 类型 标准 SQ ...

  4. 攻城狮在路上(壹) Hibernate(九)--- Hibernate的映射类型

    Hibernate采用映射类型作为Java类型和SQL类型的桥梁,对应type属性.分为两种:内置映射类型和客户化映射类型.一.内置映射类型: 1.Java基本类型的Hibernate映射类型: Ja ...

  5. Hibernate映射类型对照表

    Hibernate映射类型对照表 java类型  Hibernate映射类型  SQL类型 java.math.BigDecimal big_decimal numeric byte[] binary ...

  6. Hibernate学习6—Hibernate 映射类型

    第一节:基本类型映射 com.cy.model.Book.java: package com.cy.model; import java.sql.Blob; import java.util.Date ...

  7. Hibernate 配置文件与映射文件 总结

    hibernate是一个彻底的ORM(Object Relational Mapping,对象关系映射)开源框架. 一.Hibernate配置文件详解 Hibernate配置文件有两种形式:XML与p ...

  8. Hibernate的关联映射——单向1-N关联

    Hibernate的关联映射--单向1-N关联 单向1-N关联的持久化类里需要使用集合属性.因为1的一端需要访问N的一端,而N的一端将以集合(Set)形式表现.从这个意义上来看,1-N(实际上还包括N ...

  9. Hibernate的关联映射——单向N-1关联

    Hibernate的关联映射--单向N-1关联 N-1是非常常见的关联关系,最常见的父子关系也是N-1关联,单向的N-1关联只需从N的一端可以访问1的一端. 为了让两个持久化类能够支持这种关联映射,程 ...

随机推荐

  1. opencv cvtColor dtype issue(error: (-215) )

    opencv cvtColor dtype issue(error: (-215) ) 更详细的错误信息如下,color.cpp:9710: error: (-215) depth == CV_8U ...

  2. Android JavaMail介绍及发送一封简单邮件

    本文来自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/17839983,转载请注明.       JavaMail是SUN提供给开 ...

  3. eclipse 更换国内镜像

    大家在用eclipse下载插件,或更新插件的时候,有木有觉得速度贼慢,蜗牛似的速度简直让习惯了4G时代的我们抓狂到底,废话不说,先给大家奉献解决办法 网上找到的国内镜像总结: 1.企业贡献: 搜狐开源 ...

  4. bootstrap课程1 bootstrap为什么这么火

    bootstrap课程1 bootstrap为什么这么火 一.总结 一句话总结:响应式,样式多,功能多. 1.bootstrap通过什么药实现响应式? 响应式web布局是让用户通过不同尺寸的浏览器都可 ...

  5. [Angular2Fire] Firebase auth (Google, Github)

    To do auth, first you need to go firebase.console.com to enable the auth methods, for example, enabl ...

  6. Android 实现最新版QQ图像裁剪功能

    这是依据翔神那篇高仿微信图像截取改的  能够先去看  Android 高仿微信头像截取 打造不一样的自己定义控件 这篇文章. 眼下还有个小问题.就是截取成圆形图片之后 会有黑色的边框填充.不知道怎么解 ...

  7. 小白学开发(iOS)OC_ 使用继承来扩充类(2015-08-07)

    // //  main.m //  使用继承来扩充类 // //  Created by admin on 15/8/12. //  Copyright (c) 2015年 admin. All ri ...

  8. pstack.sh 改进版

    pstack.sh 改进版本 #!/bin/bash if (( $# < 1 )) ; then echo "usage: `basename $0` pid" 1> ...

  9. libevent源码分析-介绍、安装、使用

    Libevent介绍 安装 样例 Libevent介绍 在include\event2\event.h中有关于Libevent的介绍,这里简单翻译介绍一下: Libevent是以事件为驱动的开发可扩展 ...

  10. jquery修改获取radio的选中项

    <input id="txtBeginDate" onclick="$('#divDate').css({'top':$('#txtBeginDate').offs ...