- 浏览: 1222952 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (706)
- 全部博客(10000) (0)
- java基础 (123)
- 算法及数据结构 (64)
- SSH框架整合与平台系统分析 (11)
- j2ee (46)
- Oracle (95)
- SQL Server (11)
- javaScript (73)
- Ajax (22)
- jQuery (39)
- ExtJs (4)
- jsp (13)
- Servlet (6)
- struts1 (2)
- struts2 (33)
- Ibatis (2)
- hibernate (24)
- Spring (11)
- 设计模式 (8)
- 正则表达式 (9)
- UML (0)
- XML (9)
- linux (19)
- CSS (11)
- FreeMarker (4)
- nginx 与 memcached (6)
- SEO (5)
- Web 服务器 (11)
- junit 与 selenium2 (4)
- MyEclipse 有关的问题 (24)
- 生活杂感 (37)
- 看过的书 (2)
- 技术牛人 (2)
- 需要优化的例子 (3)
- English 学习 (7)
- bug修改的解决方法 (2)
- 数据库实战经验总结 (1)
- 期待解决的问题 (20)
- 等待自己学习的东西 (15)
- 自己公司代码结构总结 (15)
- 企业经营之道 (23)
- 工具管理 (1)
- 世范水晶 (2)
最新评论
-
hustkeai:
第一个方法是不对的
求一个Map中最大的value值,同时列出键,值 -
qq591920734:
java List 排序 Collections.sort() 对 List 排序(首先年龄排序,如果年龄相同,则按名字排序) -
qq591920734:
[color=orange][/color]包女包女不女
java List 排序 Collections.sort() 对 List 排序(首先年龄排序,如果年龄相同,则按名字排序) -
timer_yin:
seagrave 写道这个算法想法不错,但太耗时,我用1、2、 ...
用1、2、2、3、4、5这六个数字,数字排序经典算法 -
hellostory:
日常生活中,我们都不按你上面的那个方法算的!!!
JAVA小函数-计算日期差
//下面的代码完全可以运行。
1、数据库脚本的创建
-- 创建表
CREATE TABLE person
(
id INT PRIMARY KEY ,
name VARCHAR(20)
) ;
create sequence seq_personn;
commit;
CREATE TABLE emails
(
id INT ,
address VARCHAR(50) ,
foreign key (id) references person(id) on delete cascade
) ;
2、pojo类的创建
public class Person {
private Integer id ;
private String name ;
// 一个人拥有多个不同的email地址
private Set emails ;
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 Set getEmails() {
return emails;
}
public void setEmails(Set emails) {
this.emails = emails;
}
}
3、操作方法类的创建
public class PersonOperate {
private Session session;
public PersonOperate(){
this.session=new Configuration().configure().buildSessionFactory().openSession();
}
//添加操作
public void insert(Person per) {
this.session.save(per);
this.session.beginTransaction().commit();
}
//根据id删除操作
public void delete(int id){
String hql="delete from Person where id=?";
Query q=this.session.createQuery(hql);
q.setInteger(0, id);
q.executeUpdate();
this.session.beginTransaction().commit();
}
//根据id查询操作
public Person queryById(int id){
Person p=null;
String hql="from Person as p where p.id=?";
Query q=this.session.createQuery(hql);
q.setInteger(0, id);
// List list=q.list();
// if(list.size()>0){
// p=(Person)list.get(0);
// }
//下面的方法和上面的方法的作用是一样的。上面的方法效率应该高一些。
List list=q.list();
Iterator ite=list.iterator();
if(ite.hasNext()){
p=(Person)ite.next();
}
return p;
}
//更新操作
public void update(Person p){
this.session.update(p);
this.session.beginTransaction().commit();
}
}
4、测试类的创建
public class TestPersonOperate {
public static void main(String[] args)throws Exception{
PersonOperate po=new PersonOperate();
Person p=new Person();
p.setName("jack");
p.setEmails(new TreeSet());
p.getEmails().add("www.jack.com");
p.getEmails().add("www.jack.com");
p.getEmails().add("www.jack.com");
p.getEmails().add("www.123.com");
// 下面是插入数据的操作
// po.insert(p);
// System.out.println("可以成功的插入数据!");
// 下面是删除操作
// po.delete(14);
// System.out.println("可以成功的删除数据!");
// 下面是根据Id查询操作
// Person per=po.queryById(19);
// System.out.println(per.getName());
// 下面是更新操作
Person per=po.queryById(19);
per.getEmails().add("www.janice.com");
per.getEmails().add("www.jack.com");
per.getEmails().add("www.jack.com");
per.getEmails().add("www.123.com");
po.update(per);
}
}
5、配置文件的创建
<?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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="org.hibernate5.com.Person" table="PERSON" schema="SCOTT">
<id name="id" type="java.lang.Integer">
<column name="ID" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">seq_personn</param>
</generator>
</id>
<property name="name" type="java.lang.String">
<column name="NAME" length="20" />
</property>
<set name="emails" table="emails" lazy="false">
<key column="ID"></key>
<element type="java.lang.String" column="address"></element>
</set>
</class>
</hibernate-mapping>
完毕!
总结:Hibernate容器映射技术 还有list ,map等,一些用法。
发表评论
-
JAVA中 RETURN与break有何区别
2013-07-08 11:05 1013想看一个例子: public class G { ... -
WebRoot和WEB-INF下存放JSP页面的区别
2013-06-28 17:10 1121WebRoot和WEB-INF下存放JSP页面的区别 ... -
对session和cookie的一些理解
2012-12-12 16:43 781对session和cookie的一些理解 ... -
log4j配置祥解
2012-08-16 17:22 1119http://topic.csdn.net/u/201 ... -
java ftp 上传下载,代码。
2012-06-03 16:00 1081import java.io.BufferedReader ... -
cmd 命令行下复制、粘贴的快捷键,方便快速的在cmd操作复制粘贴。
2012-05-17 15:33 19361、cmd 命令行下复制、粘贴的快捷键,方便快速的在cmd操作 ... -
El表达式截取字符串的长度,大于12个字的后面用 ... 表示。
2012-04-20 16:14 3184El表达式截取字符串的长度,大于12个字的后面用 ... 表示 ... -
增删改查 讲解代码
2012-04-16 16:28 1105Dao接口如下: public void insert(Ob ... -
EL表达式 (详解) .
2012-04-15 15:21 1445来源: http://blog.csdn.net/qwera ... -
屏蔽左右键
2012-04-14 16:00 10511.在html的body区最后加入: <SCRIPT ... -
Eclipse 3.6.2 反编译插件jad的配置说明
2012-03-01 16:32 1662重复说明: ... -
新建项目,上传到svn上。
2012-02-28 20:28 3885上传svn新项目。 1、先把项目从svn上取出来,然后把 ... -
关于EL表达式中requestScope和param区别
2012-02-17 09:38 2572要是打不开连接请看下面的内容: 关于EL表达式中r ... -
图片标签img中alt与title的区别
2012-02-02 14:59 1011图片标签img中alt与title的区别 -
给input文本框添加灰色提示文字
2012-01-04 22:05 5708灰色提示功能 大家都见到很多网站的文本框都有灰色提文字,一点 ... -
同一个页面将js的值传回给java
2011-12-30 17:10 1536<%@ page language="ja ... -
JSP传参乱码
2011-12-13 14:49 1062JSP之间 转中文 乱码 解决方法如下: http://hi ... -
如何获得客户端的IP及MAC地址
2011-10-17 18:14 1154如何获得客户端的IP及MAC地址 1、获得真 ... -
jsp 之间传值
2011-10-17 13:41 867在index.jsp 1.url传参数数 <a ... -
SVN中冲突的解决
2011-10-10 17:07 9881,http://www.blogjava.net/shrod ...
相关推荐
在Java持久化框架Hibernate中,容器映射技术是将Java集合类(如Set、Map、List等)与数据库中的关联关系进行映射的一种方法。这种技术使得对象之间的复杂关系能够被有效地存储和检索,增强了数据操作的灵活性。下面...
一对多关系是常见的映射类型,例如,一个部门有多个员工。在实体类中,我们使用`@OneToMany`注解,并通过`mappedBy`属性指定关联的父类字段。同时,父类需要在对应字段上添加`@ManyToOne`注解。 5. **多对一(Many...
在Java的持久化框架Hibernate中,一对多关系是常见的实体关联类型,表示一个实体可以与多个其他实体相关联。在处理这种关系时,我们通常会使用`Set`或`List`作为关联集合的容器。本篇文章将深入探讨`Hibernate`中一...
对象关联映射是Hibernate的核心特性,它支持一对一、一对多、多对一和多对多等多种关联关系。通过配置映射文件,可以定义实体之间的关联,如外键、集合等。 ### 继承映射和容器映射 - **继承映射**:Hibernate支持...
06 06Hibernate_Collection : Hibernate的容器映射技术,包括list、set和map等。用法大体一致,数据库中的两张表,在实体层设计和配置文件都只有一个 其中数据库用到级联删除。配置文件分别用list、set和map元素...
15.3.4 把多对多关联分解为两个一对多关联 15.4 小结 15.5 思考题 第16章 Hibernate的检索策略 16.1 Hibernate的检索策略简介 16.2 类级别的检索策略 16.2.1 立即检索 16.2.2 延迟检索 16.3 一对多...
18. 示例:不同的映射:除了父子关系映射,还可能有其他类型的映射,如多对多关系映射、一对一关系映射等。这里应该会介绍如何处理这些复杂的映射场景。 19. 最佳实践:最后,文档将总结Hibernate开发中的一些最佳...
在本篇中,我们将深入探讨Hibernate的配置,特别是涉及一对一、一对多和多对多关系的配置。 首先,配置过程始于`Configuration`接口。这个接口用于设置Hibernate所需的配置信息,如数据源、连接参数等,并根据配置...
- 映射具有关联关系的对象,如一对多、多对多等。 - **单向Set-based的关联** - 设置单向的一对多关系,如一个Person可以有多个Phone。 - **使关联工作** - 通过适当的映射配置,确保关联关系正确建立。 - **值...
15.3.4 把多对多关联分解为两个一对多关联 15.4 小结 15.5 思考题 第16章 Hibernate的检索策略 16.1 Hibernate的检索策略简介 16.2 类级别的检索策略 16.2.1 立即检索 16.2.2 延迟检索 16.3 一对多...
15.3.4 把多对多关联分解为两个一对多关联 15.4 小结 15.5 思考题 第16章 Hibernate的检索策略 16.1 Hibernate的检索策略简介 16.2 类级别的检索策略 16.2.1 立即检索 16.2.2 延迟检索 16.3 一对多...
15.3.4 把多对多关联分解为两个一对多关联 15.4 小结 15.5 思考题 第16章 Hibernate的检索策略 16.1 Hibernate的检索策略简介 16.2 类级别的检索策略 16.2.1 立即检索 16.2.2 延迟检索 16.3 一对多...
5. 一对多集合使用Bag,多对多集合使用Set。 6. 继承类使用显式多态。 7. 减少表字段数量,增加表关联,利用二级缓存优化。 【Struts工作原理】 Struts是一个MVC(Model-View-Controller)框架,它的核心是Action...
### Hibernate 3.2 实用技术手册概览 #### 一、引言 Hibernate作为一款优秀的开源ORM(Object Relational Mapping)框架,在Java开发领域内占据着举足轻重的地位。它通过提供一种轻量级的数据访问方式,使得Java...
- **关系映射(Association)**: 包括`@OneToOne`, `@OneToMany`, `@ManyToOne`, 和 `@ManyToMany`,它们分别对应一对一、一对多、多对一和多对多的关系映射。 - **集合映射(Collection)**: `@ElementCollection...
- `<set>`、`<list>`、`<map>`:用于处理一对多或多对多的关联关系。 #### 三、核心功能 ##### 3.1 数据持久化 Hibernate 支持多种方式将 Java 对象持久化到数据库中: - **显式保存**:使用 `session.save...
10. **集合映射**:包括Set、List、Map的映射,用于处理一对多、多对多的关系。Hibernate支持有序集合,如SortedSet和TreeMap,可以指定排序规则。 11. **对象状态与识别**:Hibernate定义了四种对象状态:瞬时态、...
本教程主要讲解如何使用Hibernate来处理多对多的关联映射,尤其是基于HashMap的实现方式。 首先,让我们理解多对多关系的基本概念。在数据库中,多对多关系意味着一个实体可以与多个其他实体相关联,反之亦然。为了...