1.通过写hibernate映射文件。实体类型转换为数据库中的表

据实体类型而写的。

实体类型User.java

package cn.wwh.www.hibernate.dd.property;

import java.util.Arrays;
import java.util.Date; /**
*类的作用:
*
*
*@author 一叶扁舟
*@version 1.0
*@创建时间: 2014-8-17 下午08:05:30
*/
public class User {
private Integer id;
private String name; // 姓名
private boolean gender; // true表示男。false表示女
private Date birthday; // 生日
private String desc; // 一大段说明,最多为5000字
private byte[] photo; // 照片
/**
* @return the id
*/
public Integer getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the gender
*/
public boolean isGender() {
return gender;
}
/**
* @param gender the gender to set
*/
public void setGender(boolean gender) {
this.gender = gender;
}
/**
* @return the birthday
*/
public Date getBirthday() {
return birthday;
}
/**
* @param birthday the birthday to set
*/
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
/**
* @return the desc
*/
public String getDesc() {
return desc;
}
/**
* @param desc the desc to set
*/
public void setDesc(String desc) {
this.desc = desc;
}
/**
* @return the photo
*/
public byte[] getPhoto() {
return photo;
}
/**
* @param photo the photo to set
*/
public void setPhoto(byte[] photo) {
this.photo = photo;
}
@Override
public String toString() {
return "User [birthday=" + birthday + "\n desc=" + desc + "\n gender="
+ gender + "\n id=" + id + "\n name=" + name + "\n photo="
+ Arrays.toString(photo) + "]";
} }

2.映射文件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>
<!-- 类名相应于数据库中的表名 -->
<class name="cn.wwh.www.hibernate.dd.property.User" table="user">
<id name="id" type="int" column="id" >
<generator class="native"></generator>
</id>
<!--
name:对象中的属性名。必需要有
type:数据的类型。不写时会自己主动检測
column:相应的列名。不写时默觉得属性的名称
not-null:true/false。是否有非空约束,默觉得false
length:长度,默觉得255
-->
<!--
<property name="name" type="string" column="name" not-null="true" length="35"/>
<property name="name" type="string">
<column name="name_" not-null="true" length="55"></column>
</property>
-->
<property name="name" type="string" column="name" not-null="true"></property>
<property name="gender"></property>
<!-- 对于日期要指定类型 -->
<property name="birthday" type="date"></property>
<!-- 大文本数据要指定长度,因为desc是数据库中的keyword。要用反单引號 -->
<property name="desc" type="text" column="`desc`" length="5000"></property>
<!-- 对于二进制数据类型。要指定长度 -->
<property name="photo" type="binary" column="photo" length="888888"></property>
</class> </hibernate-mapping>

3.主配置文件:

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> <!-- 1、数据库信息:数据库方言(是一个类的全名)与数据库连接信息 -->
<!-- 配置连接数据库所需的驱动 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 连接数据库的数据库url -->
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<!-- 数据库的账号 -->
<property name="connection.username">root</property>
<!-- 数据库的密码 -->
<property name="connection.password">wwh</property>
<!-- 指定数据库的方言(本人用的是MySql) -->
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!-- 2.配置其他 -->
<!--
create: 先删表。再建表。 
                        create-drop: 启动时建表,退出前删表。
<span style="white-space:pre">			</span> update: 假设表结构不一致,就创建或更新。
validate: 启动时验证表结构,假设不致就抛异常。
-->
<!-- 自己主动创建数据表 -->
<property name="hbm2ddl.auto">update</property>
<!-- 显示数据操作的sql语句 -->
<property name="show_sql">true</property>
<!-- 格式化的显示sql语句 -->
<property name="format_sql">true</property>
<!-- 3.导入映射配置文件 -->
<mapping resource="cn/wwh/www/hibernate/dd/property/User.hbm.xml"/> </session-factory> </hibernate-configuration>

4.測试数据库中的数据:

package cn.wwh.www.hibernate.dd.property;

import java.io.FileInputStream;
import java.util.Date; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.junit.Test; /**
*类的作用:
*
*
*@author 一叶扁舟
*@version 1.0
*@创建时间: 2014-8-17 下午08:10:38
*/
public class TestSqlByXml { private static SessionFactory sessionFactory = new Configuration()
.configure()
.buildSessionFactory(); // 保存
@Test
public void testSave() throws Exception {
Session session = sessionFactory.openSession();
session.beginTransaction();
// --------------------------------------- // 从硬盘中读取图片。然后存储数据库中
FileInputStream in = new FileInputStream("F:/psb.jpg");
byte[] photo = new byte[in.available()];
in.read(photo);
in.close(); // 准备对象
User user = new User();
user.setName("一叶扁舟");
user.setGender(true);
user.setBirthday(new Date());
user.setDesc("一叶扁舟是一个积极向上的孩子,为梦想而努力奋斗着…………");
user.setPhoto(photo); // 保存
session.save(user); // ---------------------------------------
session.getTransaction().commit();
session.close();
} // 获取
@Test
public void testGet() throws Exception {
Session session = sessionFactory.openSession();
session.beginTransaction();
// --------------------------------------- User user = (User) session.get(User.class, 1);
System.out.println(user.getName());
System.out.println(user.isGender());
System.out.println(user.getBirthday());
System.out.println(user.getDesc());
System.out.println(user.getPhoto());
// System.out.println(user); // ---------------------------------------
session.getTransaction().commit();
session.close();
} }



版权声明:本文博客原创文章,博客,未经同意,不得转载。

hibernate实体类型映射文件的更多相关文章

  1. Java IDE 编辑器 --- IntelliJ IDEA 进阶篇 生成 hibernate 实体与映射文件

    原文:转:Java IDE 编辑器 --- IntelliJ IDEA 进阶篇 生成 hibernate 实体与映射文件 2011-04-30 12:50 很多人不知道怎么用 IntelliJ IDE ...

  2. hibernate 实体关系映射笔记

    @经常使用属性说明:     @Entity:实体类     @Table:指定相应数据表     @Id:主键,使用能够为null值的类型,假设实体类没有保存到数据库是一个暂时状态     @Col ...

  3. [hibernate]基本值类型映射之日期类型

    hibernate基本值类型映射中日期类型支持date,time,timestamp这三个选项,其中 date:对应数据库中的date类型,表示只显示日期 time:对应数据库中的time类型,表示只 ...

  4. hibernate之xml映射文件关系维护,懒加载,级联

    一:关系维护 --->inverse默认值false,表示不放弃关系的维护.   --->inverse="true"配置在那一端,表示那一端xml对应的po放弃关系的 ...

  5. 【转】hibernate中的映射文件xxx.hbm.xml详解总结

    一.Hibernate映射文件的作用: Hibernate映射文件是Hibernate与数据库进行持久化的桥梁 二,Hibernate映射文件主要内容:     (1).映射内容的定义: Hibern ...

  6. hibernate中的映射文件xxx.hbm.xml详解总结

    转自 http://blog.csdn.net/a9529lty/article/details/6454924 一.hibernate映射文件的作用: Hibernate映射文件是Hibernate ...

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

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

  8. hibernate自动生成映射文件

    映射文件是O/R Mapping的关键,相当于控制中心.当数据库表较多时,手动配置该映射文件非常耗时.为了快速开发程序,使开发人员的注意力集中到业务逻辑上来,Hibernate官方提供的MiddleG ...

  9. hibernate多对多映射文件详解(一)

    1.仓库表属性 public class WarehouseNew implements java.io.Serializable { // Fields private static final l ...

随机推荐

  1. OpenNMS在安装”我找不到jrrd.dll“错误的解决方法

    在Windows 2003 Server(虚拟机)安装OpenNMS.找不到jrrd.dll错误.尝试从学习OpenNMS官网下载jrrd-1.0.7.tar.gz,我们没有发现标dll文件,编译需要 ...

  2. 深入浅出jsonp(转)

    前言 第一次听说jsonp,其实早在2年之前.当时在做一个活动页面的抽奖模块,要从服务端get一个概率,当时什么都不懂,同事说用ajax,我就用ajax,同事说dataType改成jsonp,我就改成 ...

  3. 泛泰A820L (高通公司MSM8660 cpu) 3.4内核CM10.1(Android 4.2.2) 测试版第二版

    欢迎关注泛泰非盈利专业第三方开发团队 VegaDevTeam  (本team 由 syhost suky zhaochengw(z大) xuefy(大星星) tenfar(R大师) loogeo cr ...

  4. 怎么样sourceforge开源项目发现,centos安装-同htop安装案例

    一个.htop什么? top是linux下经常使用的监控程序.htop相当于其加强版,颜色显示不同參数.且支持鼠标操作. 详细介绍參看此说明文档. watermark/2/text/aHR0cDovL ...

  5. 【Android开发经验】来,咱们自己写一个Android的IOC框架!

    到眼下位置.afinal开发框架也是用了好几个月了,还记得第一次使用凝视完毕控件的初始化和事件绑定的时候,当时的心情是多么的兴奋- -代码居然能够这样写!然后随着不断的学习,也慢慢的对IOC框架和注解 ...

  6. [SignalR]异常信息捕获以及处理

    原文:[SignalR]异常信息捕获以及处理 异常处理,一般采用try..catch方式处理,而signalR里面有HubPipelineModule类可以捕获到Hub内发生的异常信息. 从上图中,可 ...

  7. RAC下一个Fatal NI connect error 12170.错误处理

    原创作品,离 "深蓝blog" 博客,欢迎转载,请务必注明转载的来源.否则有权追究版权责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/a ...

  8. Git客户端(Windows系统)的使用(Putty)(转)

    本文环境: 操作系统:Windows XP SP3 Git客户端:TortoiseGit-1.8.14.0-32bit 一.安装Git客户端 全部安装均采用默认! 1. 安装支撑软件 msysgit: ...

  9. TortoiseGit安装与配置(转)

    TortoiseGit 简称 tgit, 中文名海龟Git. 海龟Git只支持神器 Windows 系统, 有一个前辈海龟SVN, TortoiseSVN和TortoiseGit都是非常优秀的开源的版 ...

  10. Cocos2d-X采用CCScrollView创建滚动视图

    CCScrollView滚动视图可以让游戏有效果,并能够通过滚动视图切换游戏场景,滚动视图通常用来选择在游戏中的级别 实例1:使用CCScrollView创建一个简单的滚动视图 首先创建一个Scrol ...