- 浏览: 1573804 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
package com.crazyit.app.domain; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; public class Student { //多列 联合组件 private String first; private String last; //复合 组件 private Name names; //如果主键 为 复合组件 Name 一定要 实现 Serializable 且重写 equals() 和 hashCode() private Integer id; //主键 private String name; private int age; private List<String> schools=new ArrayList<String>(); private String[] schools1; private Set<String> schools2=new HashSet<String>(); private Collection<String> school3=new ArrayList<String>(); private Map<String,Float> scroes=new HashMap<String,Float>(); private SortedSet<String> trainings=new TreeSet<String>(); private Map<String,Name> nicks=new HashMap<String,Name>(); //如果 Map 的key 为复合组件 ,要重写 equals() 和 hashCode() private Map<Name,Integer> nicksPower=new HashMap<Name,Integer>(); //get set } package com.crazyit.app.domain; public class News { private Integer id; private String title; private String content; private String fullContent; //get set } public class Name implements Serializable{ private String first; private String last; private Student stu; private Map<String,Integer> power=new HashMap<String,Integer>(); //get set @Override public int hashCode() {} @Override public boolean equals(Object obj) }
主键映射
<id name="id" type="java.lang.Integer"> <column name="ID" /> <generator class="assigned" /> </id> <id name="id" type="java.lang.Integer" column="ID"> <generator class="assigned" /> </id> <!-- 如果组件为上面的 主键 复合组件names 不是ID 就像下面配置 --> <composite-id name="names" class="Name"> <key-property name="first" type="string"/> <key-property name="last" type="string"/> </composite-id> <!-- 如果 主键 为多列联合组件 --> <composite-id> <key-property name="first" type="string"/> <key-property name="last" type="string"/> </composite-id>
普通属性映射
<property name="name" type="java.lang.String" colunm="NAME"> </property> <property name="age" type="int"> <column name="AGE" /> </property>
根据sql表达式给属性赋值
<!--表中没有这一列,通过sql来给值--> <property name="fullContent" formula="(select concat(title,content) from news nt where nt.id=id)"/> <!-- 如果表中有这一列,而这一列是在插入的时候 通过一个触发器来自动生成一个值--> <property name="fullContent" column="full_content" type="string" generated="insert"/>
映射集合属性
<!-- 映射 list --> <list name="schools" table="SCHOOL"> <key column="personid" not-null="true" /> <list-index column="list_order" /> <element type="string" column="school_name" /> </list> <!--数组的映射 element 元素必须放在下面 注意有顺序 --> <array name="schools1" table="SCHOOL"> <key column="person_id" not-null="true" /> <list-index column="list_order" /> <element type="string" column="school_name" /> </array> <!-- set集合的映射 --> <set name="school2" table="SCHOOL"> <key column="person_id" not-null="true" /> <element type="string" column="school_name" not-null="true" /> </set> <!-- collection set arrayList bag始终是无序的 --> <bag name="school3" table="SCHOOL"> <key column="person_id" not-null="true" /> <element type="string" column="school_name" not-null="true" /> </bag> <!-- map的映射 --> <map name="scores" table="SCHOOL" lazy="true"> <key column="person_id" not-null="true" /> <map-key type="string" column="subject" /> <element column="grade" type="float" /> </map> <!-- 带排序功能的sortedSet --> <set name="tranings" table="TRAININGS" sort="natural" order-by="training_name desc"> <key column="person_id" not-null="true" /> <element type="string" column="training_name" not-null="true" /> </set>
映射数据库对象(注意放的位置,不要放在class标签里面去了)
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Generated 2013-12-2 22:01:23 by Hibernate Tools 3.4.0.CR1 --> <hibernate-mapping> <!-- 显示的声明 触发器 或 存储过程 函数 DDL语言 等 --> <database-object> <create>create trigger t_full_content_gen ....</create> <drop>create trigger t_full_content_gen...</drop> <!-- 定义触发器 或者 存储过程 函数 只使用的 数据库方言 --> <dialect-scope name="org.hibernate.dialect.MySqlDialect"/> <dialect-scope name="org.hibernate.dialect.MySqlInnoDBDialect"/> </database-object> <!-- 创建表--> <database-object> <create>create table test(t_name varchar(255));</create> <drop></drop> <dialect-scope name="org.hibernate.dialect.MySqlDialect"/> <dialect-scope name="org.hibernate.dialect.MySqlInnoDBDialect"/> </database-object> </hibernate-mapping>
使用SchemaExport 工具.单独根据映射文件生成数据库对象
@Test public void test6(){ //如果这是想用 hibernate 根据 映射文件来生成 数据对象 ,比如 表 ,存储过程,触发器, 函数 等 .. //SchemaExport 提供了一个 main方法,可以使用 java命令还执行, //java -cp hiberante_classpaths org.hibernate.tool.hbm2ddl.SchemaExport opetions mapping_files Configuration con=new Configuration().configure(); SchemaExport se=new SchemaExport(con); se.setFormat(true) .setOutputFile("c:\\new.sql") .create(true, true); }
映射组件属性(即,包含的属性不是数据库中持久化对象,没有table)
<!-- 映射组件属性 以及 组件属性中含有 集合 --> <component name="names" class="Name" unique="true"> <parent name="stu"/> <property name="first" type="string"/> <property name="last" type="string"/> <map name="power" table="name_power"> <key column="person_name_id" not-null="true"/> <map-key type="string" column="name_aspect"/> <element column="name_power" type="int"/> </map> </component> <!-- 集合中含有 组件属性 --> <map name="nicks" table="nick_inf"> <key column="person_id" not-null="true"/> <map-key type="string" column="phase"/> <composite-element class="Name"> <parent name="stu"/> <property name="first"/> <property name="last"/> </composite-element> </map> <!-- 组件属性 作为 Map的key --> <map name="nicksPower" table="nick_power"> <key column="person_id" not-null="true"/> <composite-map-key class="Name"> <key-property name="first" type="string"/> <key-property name="last" type="string"/> </composite-map-key> <element column="nick_power" type="int"/> </map>
发表评论
-
Hibernate 的初始化
2014-01-08 22:43 3505public static void main(Strin ... -
Hibernate 的关系与配置
2014-01-05 21:57 27601.单向 N:1 例如:一个地方有多个人住. (在1 的一端 ... -
Spring配置Hibernate事务
2013-11-10 13:45 1182为了保证数据的一致性,在编程的时候往往需要引入事务这个概念。事 ... -
Hibernate 关系映射(一)基于外键关联的N:1
2013-05-14 23:45 9791.单向 N:1 无中间表 例如:一个地方有多个人住. ... -
Hibernate 关系映射(二)基于中间表的N:1
2013-05-13 21:11 7851.单向 N:1 有中间表 例如:一个地方有多个人住. ... -
Hibernate 关系映射(三) 基于外键关联的单向 1:1
2013-05-03 23:42 9321.单向 1:1 基于外键的 想象下 小康社会: 每家都有钱, ... -
Hibernate 关系映射(四) 基于中间表关联的单向1:1
2013-05-02 20:07 10871.单向 1:1 基于中间表 想象下 小康社会: 每家都有钱, ... -
Hibernate 关系映射(五) 基于主键关联的单向1:1
2013-03-26 00:23 9081.单向 1:1 基于主键关联 想象下 小康社会: 每家都有钱 ... -
Hibernate 关系映射(6) 基于中间表关联的单向1:N
2013-03-21 17:55 940基于中间表关联的单向1:N 单向 1 对 N 关联,注意 和 ... -
Hibernate 关系映射(7) 基于外键关联的单向1:N
2013-03-21 00:31 828基于中间表关联的单向1:N 单向 1 对 N 关联,注意 和 ... -
Hibernate 缓存
2012-11-12 00:46 32861数据缓存:(date caching) ... -
Hibernate 的HQL,QBC 查询语言
2012-11-11 17:25 187091.HQL:(Hibernate Query Language ... -
HIbernate 关系映射配置
2012-11-11 02:10 21281.主键关联one-to-one 释义:两个表使用相同的主键 ... -
HIbernate 基础
2012-11-10 22:30 12201.标识符 表示符号生成器描述increment适用于代理主建 ... -
SSH2整合完整案例(四十三)
2012-09-14 09:34 20589注解配置:Struts2+Spring2.5+Hibernat ...
相关推荐
Hibernate映射配置详解
hibernate 映射文件 配置分析及要点,你还在为配置hibernate 映射文件而发愁吗?这里总结了它的常用元素及属性。session,SessionFactory的应用
1)根元素映射<hibernate-mapping/> 2)类映射 3)属性映射 4)主键的配置 5)主键生成策略 复合主键策略 史上最详细
Hibernate开发过程(单一映射体) 1创建持久类XXXX.java(要有oid字段:唯一且不具有业务含义;所有属性都有getter/setter方法;空的构造方法;不含oid的构造方法) 2创建映射文件XXXX.hbm.xml(包,类,id,字段) 3...
mappedBy属性用法: ...也正因为放弃了维护权,与DB无关了,所以设置了mappedBy属性的注解,再设置cascade也就无意义了。 一个是使被注解者与DB相关,一个是使被注解者放弃与DB的关系,它们是相互矛盾的。
(一)实验目的 1、 掌握 Hibernate 开发环境搭建的基本步骤; 2、 观察持久化类与数据库表的映射关系,观察相应的 ...3、 观察 Hibernate 配置文件(hibernate.cfg.xml)中的主要元素及属性配置,并能够做简单应用。
对于一对多的双向映射,如果要一对多这一端维护关联关系,你需要删除mappedBy元素并将多对一这端的@JoinColoumn的insertable和updatabel设置为false。这种方案不会得到什么明显的优化,而且还会增加一些附加的UPDATE...
Hibernate的配置文件,包含了连接持久层与映射文件所需的基本信息,其配置文件有两种格式,具 体如下: ● 一种是properties 属性文件格式的配置文件,它使用键值对的形式存放信息,默认文件名称 为 hibernate....
7.4 属性/字段映射配置 第8章 Hibernate工具 8.1 准备工作 8.2 根据数据库定义生成映射文件——MiddleGen 8.3 Hibernate官方工具 8.4 XDoclet-同步Hibernate基础代码 8.5 工具的使用周期 第9章 Hibernate ...
图14-11ClassD与ClassA为多对一多态关联关系ClassA、ClassB和ClassC构成了一棵继承关系树,如果继承关系树的根类对应一个表,或者每个类对应一个表,那么可以按以下方式映射ClassD的a属性:<many-to-onename="a...
声明基本的属性映射 2.2.2.2. 声明列属性 2.2.2.3. 嵌入式对象(又名组件) 2.2.2.4. 无注解之属性的默认值 2.2.. 映射主键属性 2.2.4. 映射继承关系 2.2.4.1. 每个类一张表 2.2.4.2. 每个类层次结构一张表 ...
2.4.3 Hibernate映射类型接口 2.4.4 可供扩展的接口 2.5 小结 2.6 思考题 第3章 第一个Hibernate应用 3.1 创建Hibernate的配置文件 3.2 创建持久化类 3.3 创建数据库Schema 3.4 创建对象-关系映射...
声明基本的属性映射 2.2.2.2. 声明列属性 2.2.2.3. 嵌入式对象(又名组件) 2.2.2.4. 无注解之属性的默认值 2.2.. 映射主键属性 2.2.4. 映射继承关系 2.2.4.1. 每个类一张表 2.2.4.2. 每个类层次结构一张表 2.2.4.3. ...
3.3. Hibernate配置属性 3.4. Hibernate JDBC和连接(connection)属性 3.5. Hibernate缓存属性 3.6. Hibernate事务属性 3.7. 其他属性 3.8. Hibernate SQL方言 (hibernate.dialect) 3.9. Hibernate日志类别 ...
第9课 Hibernate的重点学习:Hibernate的对象关系映射 12 一、对象---关系映射模式 12 二、常用的O/R映射框架: 13 第10课 模拟Hibernate原理(OR模拟) 13 一、 项目名称 13 二、 原代码 13 第11课 Hibernate基础配置...
2,建立表的hibernate支持,生成tb_user类和对应的配置文件 3,修改配置文件使之和相应的类对应, 4,修改tb_user类,创建一个set类型的字段emailes,生成它的set和get方法 5,写测试类,对以上内容进行测试。 二、...
7.4 属性/字段映射配置 第8章 Hibernate工具 8.1 准备工作 8.2 根据数据库定义生成映射文件——MiddleGen 8.3 Hibernate官方工具 8.4 XDoclet-同步Hibernate基础代码 8.5 工具的使用周期 第9章 Hibernate ...
Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. 映射Person类 1.3.2. 单向Set-based的关联 1.3.3. 使关联工作 1.3.4. 值类型的集合 1.3.5...
Hibernate框架介绍以及入门 【二】 ...二、关于hibernate映射的配置 映射 1、【class标签的配置】 这个标签是来建立类与表(数据库)的映射关系 属性: name:类的一个全路径 table: 表名(类名如果和表名一致那么table可
3.3. Hibernate配置属性 3.4. Hibernate JDBC和连接(connection)属性 3.5. Hibernate缓存属性 3.6. Hibernate事务属性 3.7. 其他属性 3.8. Hibernate SQL方言 (hibernate.dialect) 3.9. Hibernate日志类别 ...