- 浏览: 143250 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
古尔丹之颅:
呵呵,现在呢?
有点沉重 -
我自闲庭信步:
大哥为什么我用你的方法想打开word进行编辑的时候,程序只是将 ...
javascript word -
eye_java:
能给一两个具体点的场景吗?
soa -
流币的人:
public interface Callable<V& ...
Callable小知识 -
511543417:
Class.forName("com.mysql.j ...
java连接mysql数据库
前段时间一直在研究hibernate的one-to-many,看了不少资料也在本论坛上求教过,但由于本人对Hibernate研究的时间不是很长,所以花了不少时间和精力.昨天终于弄出来了,现在与大家分享,希望对初学者有帮助!
1、设置数据库,本人使用的数据库是Oracle 9i
设置hibernate.properties
## Oracle
hibernate.dialect net.sf.hibernate.dialect.Oracle9Dialect
#hibernate.dialect net.sf.hibernate.dialect.OracleDialect
hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver
hibernate.connection.username sa
hibernate.connection.password sa
hibernate.connection.url jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:myoracle
2、假设一个用户可以同时有几个帐户,能通过帐户对应到用户,即为一个双向的one-to-many.这是引用我在论坛上发表的文章的回复,很谢谢geniouc给我的参考。
3、javaBean: customer & account
1. public class Customer {
2. private String cid;
3. private String custName;
4. private Set accounts= new HashSet();
5.
6. public Customer(){
7. }
8. public String getCid() {
9. return cid;
10. }
11. public void setCid(String cid) {
12. this.cid = cid;
13. }
14. public String getCustName() {
15. return custName;
16. }
17. public void setCustName(String custName) {
18. this.custName = custName;
19. }
20.
21. public Set getAccounts(){
22. return accounts;
23. }
24.
25. public void setAccounts(Set accounts){
26. this.accounts = accounts;
27. }
28.
29. }
30.
31. public class Account {
32. private long aid;
33. private String accNumber;
34. private Customer customer;
35.
36. public Account(){
37. }
38. public long getAid() {
39. return aid;
40. }
41. public void setAid(long aid) {
42. this.aid = aid;
43. }
44. public String getAccNumber() {
45. return accNumber;
46. }
47. public void setAccNumber(String accNumber) {
48. this.accNumber = accNumber;
49. }
50.
51. public Customer getCustomer(){
52. return customer;
53. }
54.
55. public void setCustomer(Customer customer){
56. this.customer = customer;
57. }
58. }
4、xml配置文件中:(关系的建立)
Account.hbm.xml
1. <?xml version="1.0"?>
2. <!DOCTYPE hibernate-mapping
3. PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
4. "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
5. <hibernate-mapping>
6. <class name="one2many.Account" table="Account">
7. <id name="aid" type="long" column="aid" unsaved-value="0">
8. <generator class="increment"/>
9. </id>
10. <property name="accNumber" type="string"/>
11. <many-to-one name="customer" column="cidForCustomer"/>
12. </class>
13. </hibernate-mapping>
Customer.hbm.xml
1. <?xml version="1.0"?>
2. <!DOCTYPE hibernate-mapping
3. PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
4. "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
5. <hibernate-mapping>
6. <class name="one2many.Customer" table="Customer">
7. <id name="cid" type="string" column="cid">
8. <generator class="assigned"/>
9. </id>
10. <property name="custName" type="string"/>
11.
12. <set name="accounts" lazy="true" inverse="true" cascade="all" >
13. <key column="cidForCustomer"/>
14. <one-to-many class="one2many/Account"/>
15. </set>
16.
17. </class>
18. </hibernate-mapping>
5、测试程序,Test.java
1. package one2many;
2.
3. import net.sf.hibernate.*;
4. import net.sf.hibernate.cfg.*;
5.
6. public class Test {
7. public static void main(String[] args) throws HibernateException {
8.
9. Configuration conf= new Configuration();
10. conf.addClass(Account.class);
11. conf.addClass(Customer.class);
12. SessionFactory sessionFactory = conf.buildSessionFactory();
13.
14. Customer cust = new Customer();
15. cust.setCid("aa");
16. cust.setCustName("Kelvin");
17.
18. Account acc = new Account();
19. acc.setAccNumber("acc");
20. acc.setCustomer(cust);
21.
22. Account acc1 = new Account();
23. acc1.setAccNumber("acc1");
24. acc1.setCustomer(cust);
25.
26. cust.getAccounts().add(acc);
27. cust.getAccounts().add(acc1);
28.
29. Session session = sessionFactory.openSession();
30. Transaction tx= session.beginTransaction();
31. session.save(cust);
32.
33. tx.commit();
34. session.close();
35.
36. sessionFactory.close();
37. }
38. }
1、设置数据库,本人使用的数据库是Oracle 9i
设置hibernate.properties
## Oracle
hibernate.dialect net.sf.hibernate.dialect.Oracle9Dialect
#hibernate.dialect net.sf.hibernate.dialect.OracleDialect
hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver
hibernate.connection.username sa
hibernate.connection.password sa
hibernate.connection.url jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:myoracle
2、假设一个用户可以同时有几个帐户,能通过帐户对应到用户,即为一个双向的one-to-many.这是引用我在论坛上发表的文章的回复,很谢谢geniouc给我的参考。
3、javaBean: customer & account
1. public class Customer {
2. private String cid;
3. private String custName;
4. private Set accounts= new HashSet();
5.
6. public Customer(){
7. }
8. public String getCid() {
9. return cid;
10. }
11. public void setCid(String cid) {
12. this.cid = cid;
13. }
14. public String getCustName() {
15. return custName;
16. }
17. public void setCustName(String custName) {
18. this.custName = custName;
19. }
20.
21. public Set getAccounts(){
22. return accounts;
23. }
24.
25. public void setAccounts(Set accounts){
26. this.accounts = accounts;
27. }
28.
29. }
30.
31. public class Account {
32. private long aid;
33. private String accNumber;
34. private Customer customer;
35.
36. public Account(){
37. }
38. public long getAid() {
39. return aid;
40. }
41. public void setAid(long aid) {
42. this.aid = aid;
43. }
44. public String getAccNumber() {
45. return accNumber;
46. }
47. public void setAccNumber(String accNumber) {
48. this.accNumber = accNumber;
49. }
50.
51. public Customer getCustomer(){
52. return customer;
53. }
54.
55. public void setCustomer(Customer customer){
56. this.customer = customer;
57. }
58. }
4、xml配置文件中:(关系的建立)
Account.hbm.xml
1. <?xml version="1.0"?>
2. <!DOCTYPE hibernate-mapping
3. PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
4. "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
5. <hibernate-mapping>
6. <class name="one2many.Account" table="Account">
7. <id name="aid" type="long" column="aid" unsaved-value="0">
8. <generator class="increment"/>
9. </id>
10. <property name="accNumber" type="string"/>
11. <many-to-one name="customer" column="cidForCustomer"/>
12. </class>
13. </hibernate-mapping>
Customer.hbm.xml
1. <?xml version="1.0"?>
2. <!DOCTYPE hibernate-mapping
3. PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
4. "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
5. <hibernate-mapping>
6. <class name="one2many.Customer" table="Customer">
7. <id name="cid" type="string" column="cid">
8. <generator class="assigned"/>
9. </id>
10. <property name="custName" type="string"/>
11.
12. <set name="accounts" lazy="true" inverse="true" cascade="all" >
13. <key column="cidForCustomer"/>
14. <one-to-many class="one2many/Account"/>
15. </set>
16.
17. </class>
18. </hibernate-mapping>
5、测试程序,Test.java
1. package one2many;
2.
3. import net.sf.hibernate.*;
4. import net.sf.hibernate.cfg.*;
5.
6. public class Test {
7. public static void main(String[] args) throws HibernateException {
8.
9. Configuration conf= new Configuration();
10. conf.addClass(Account.class);
11. conf.addClass(Customer.class);
12. SessionFactory sessionFactory = conf.buildSessionFactory();
13.
14. Customer cust = new Customer();
15. cust.setCid("aa");
16. cust.setCustName("Kelvin");
17.
18. Account acc = new Account();
19. acc.setAccNumber("acc");
20. acc.setCustomer(cust);
21.
22. Account acc1 = new Account();
23. acc1.setAccNumber("acc1");
24. acc1.setCustomer(cust);
25.
26. cust.getAccounts().add(acc);
27. cust.getAccounts().add(acc1);
28.
29. Session session = sessionFactory.openSession();
30. Transaction tx= session.beginTransaction();
31. session.save(cust);
32.
33. tx.commit();
34. session.close();
35.
36. sessionFactory.close();
37. }
38. }
发表评论
-
JEECG 了解感悟小过程
2013-05-19 14:52 1089相识: 第一次接触和了解jeecg的地方是ite ... -
长期更新开源项目
2012-09-05 23:09 10621。一款js库,用于处理xml 地址:http://code. ... -
eclipse几款必备的插件
2012-06-14 13:06 12231.Checkstyle CheckStyle是SourceF ... -
jad 工具
2012-06-14 10:48 1069jad是eclipse的插件,,,可以反编译jar文件。 h ... -
java自带小工具 jvisualvm.exe
2011-10-27 11:23 1243JDK中还藏着一个宝贝,它的名字叫做VisualVM。Visu ... -
关于aop的功能
2011-10-15 16:50 835hi, 这个是关于异常处理的一些问题。。 ... -
groovy plugin
2011-09-08 15:39 805要先安装TestNG 1)在help->soft ... -
Struts2的深入分析
2011-07-28 09:15 825struts2的重要理解 点击这个链接,你将对str ... -
Java 中的中文编码问题
2011-07-19 15:55 681一篇很透彻的关于中文编码问题的讲解 http://www.i ... -
url传递参数中有特殊字符
2011-07-08 21:34 964有些符号在URL中是不能直接传递的,如果要在URL中传递这 ... -
Jquery AJAX POST和GET区别
2011-06-24 10:33 9441:GET访问 浏览器 认为 是等幂的 就是 一个相同的UR ... -
一个有用的快捷键
2011-06-21 16:16 748alt + tab 组合 window 系统非常的有用 可以在 ... -
ava.lang.ClassNotFoundException: org.apache.catalina.loader.DevLoader
2011-05-05 10:03 8773好多基于SSH 的旧系统还有人员在辛苦维护着 厂家给的代 ... -
myeclipse 快捷键 ctrl+o
2011-04-11 11:24 968ctrl+o,是快速搜索方法名。。 快速定位方法 ... -
java有趣的代码
2011-04-08 10:27 1305package org.java.funning; /** ... -
memcached的查看说明
2011-03-03 13:21 894memcached的查询手册,查看memcached是否安装成 ... -
netty框架的学习
2011-02-09 15:13 888netty一个socket通讯框架,由jboss公司开发 h ... -
jdk,jre,jvm
2010-12-21 13:04 866http://java-mzd.iteye.com/blog/ ... -
servlet3.0
2010-12-13 10:20 1217作为 Java EE 6 体系中重要成员的 JSR 315 规 ... -
java6 下面的exe文件
2010-12-09 17:12 1451补充详细: javac.exe ...
相关推荐
"Hibernate one-to-many / many-to-one关系映射"是两个基本的关系类型,用于表示实体间的关联。在这个主题中,我们将深入探讨这两种关系映射的原理、配置和实际应用。 一、一对一(one-to-one)与一对多(one-to-...
以下是一个简单的例子,展示了一个班级(Class)与学生(Student)的one-to-many关系,以及学生对班级的many-to-one关系: ```java @Entity public class Class { @Id private Long id; @OneToMany(mappedBy =...
在Hibernate中,`one-to-many`关系是常见的实体间关系之一,表示一个实体可以与多个其他实体相关联。本文将深入探讨`Hibernate one-to-many`注解的使用和实现细节。 ### 一、`@OneToMany`注解概述 `@OneToMany`...
其中,`many-to-one`(多对一)关系是较为常见的一种,它指的是一个实体可以对应另一个实体中的多个实例。 #### 代码示例解析 在提供的代码示例中,定义了两个实体类:`User` 和 `Group`,其中 `User` 与 `Group` ...
本文将深入探讨Hibernate中一对多(One-to-Many)关系的处理方式,特别是通过外键映射和inverse属性的应用场景。 #### 一对多关系概念 一对多关系在数据库设计中非常常见,它指的是一个实体可以与多个其他实体关联...
本示例将详细讲解如何在Hibernate中实现多对多(many-to-many)的关系映射。 在数据库设计中,多对多关系是指两个实体之间存在多个关联,比如学生和课程的关系,一个学生可以选修多门课程,一门课程也可以被多个...
Many-to-One是另一个常见的关联类型,它表示多个实体可以关联到一个单一的实体。例如,员工与部门的关系,多个员工可以属于同一个部门,但每个部门只有一个实体表示。在Hibernate中,使用`@ManyToOne`注解来标记这...
本实例将详细讲解如何在Hibernate中实现Many-to-One关系映射,这是一种常见的数据库关联,表示一个实体可以与多个其他实体相关联。 在Many-to-One关系中,通常一个实体(如部门)可以有多个相关实体(如员工),而...
首先,多对多映射关系通常涉及到两个实体类之间的关联,例如在学生选课的例子中,学生(Student)和课程(Course)之间存在多对多的关系,一个学生可以选择多门课程,一门课程也可以被多个学生选择。在数据库层面,...
- **多对一(many-to-one)**:解释了如何实现多对一的关联关系。 - **一对一**:介绍了两种实现一对一关联的方式:共享主键和外键。 - **自然ID(natural-id)**:解释了如何使用自然ID(通常是指业务意义上的唯一...
在数据库设计中,Many to One是一种常见的关系,即一个实体(表)可以与多个其他实体相关联,而另一个实体则只与一个实体相关联。 首先,我们需要理解Hibernate的实体类和映射文件。实体类是Java对象,它们代表...
在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。本篇将详细阐述Hibernate中的对象三状态、一对一(OneToOne)、一对多...
在压缩包中的“hibernate_1400_one2many_many2one_uni”文件可能包含了关于单向一对多(One-to-Many)和多对一关联的例子。单向关联只在一个方向上有引用,而双向关联在两个方向上都有引用。 为了实现这些关联,...
`many-to-one`关联是另一个重要的关联类型,在Hibernate中,它通常用来表示外键存储方向。 - **定义**:`many-to-one`关联意味着多个实体可以指向同一个实体。 - **示例**:如学生与教师之间的关联。 - **注意点**...
描述中的"包含了jar包,单元测试,mysql数据库脚本"意味着这个压缩包包含了一个完整的开发环境,包括运行Hibernate所需的库文件(jar包),用于验证代码正确性的单元测试,以及与MySQL数据库交互的脚本。这对于初学...
在`Student`类中,`<set>`标签定义了一个名为`courses`的集合,`<many-to-many>`标签则指明了与`Course`类的多对多关系。同样,`Course`类中也需要有相应的多对多关系定义。 ### 总结 Hibernate通过其强大的映射...
在上面的例子中,多个学生(`User`)可以住在同一个寝室(`Room`)。在Java类中,`User`有一个`Room`属性,表示用户所属的寝室。在`User.hbm.xml`映射文件中,我们需要定义这个引用关系: ```xml <many-to-one name...
- Hibernate_1to_many_2:这是关于一对多关联的示例,一个实体可以与多个其他实体相关联,例如一个部门可以有多个员工。 - Hibernate_1to1_pk2:这可能涉及使用主键外键实现一对一关联的示例。 - Hibernate_1to_many...
在数据库设计中,一对多(One-to-Many)是一种常见的关联方式,指的是一个表中的记录可以与另一个表中的多个记录建立联系。例如,在学生与书籍的关系中,一个学生可以拥有多本书籍,但每本书籍只能属于一个学生。...