真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

實現(xiàn)關(guān)系映射java代碼 關(guān)系映射表

JDBC實現(xiàn)JAVA應(yīng)用關(guān)聯(lián)關(guān)系問題

Hibernate的底層就是JDBC,里面處理關(guān)系映射很方便,如果用JDBC實現(xiàn)就要寫N長的代碼,而在Hibernate中一句話就實現(xiàn)了,如果使用數(shù)據(jù)庫,關(guān)聯(lián)關(guān)系是必不可少的,無論是一對一,一對多還是多對多的

為洪湖等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及洪湖網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計制作、網(wǎng)站建設(shè)、洪湖網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

jaVa中多對多關(guān)系的代碼問題

你在Hobby和Person之間徘徊,造成一個死循環(huán)了,我覺你不應(yīng)該是這樣映射,這樣會好麻煩的

package association;

import java.util.*;

public class Hobby {

/* Hobby類的屬性hobbyname,一個vector型的persons */

private String hobbyname;

private Vector persons = new Vector();

/* 構(gòu)造函數(shù) */

public Hobby(String hobbyname, Person person) {

this.hobbyname = hobbyname;

persons.add(person);

/**

* 一個業(yè)余愛好可以對應(yīng)多個人,但只對應(yīng)一次

*/

if (!persons.contains(person))

person.addHobby(hobbyname);

}

/* 得到hobbyname */

public String getHobbyname() {

return hobbyname;

}

/* 一個hobby可以有多個person,添加person的方法 */

public void addPerson(String personname, int age) {

persons.add(new Person(personname, age));

}

/* 輸出hobbyname,并將有hobbyname的人名全部輸出 */

public String toString() {

String s = "hobbyname:" + hobbyname + "\n";

s += " persons:";

Object[] o = persons.toArray();

Person[] p = new Person[o.length];

for (int i = 0; i p.length; i++) {

p[i] = (Person) o[i];

s += p[i].getPersonname() + " " + p[i].getAge() + "; ";

}

return s;

}

/* 用于測試的主函數(shù) */

public static void main(String arg[]) throws Exception {

Person p1 = new Person("mary", 20);

p1.addHobby("Biking");

Hobby h2 = new Hobby("Swimming", p1);

String s = p1.toString() + "\n";

s += h2.toString() + "\n";

System.out.print(s);

}

}

class Person {

/* person類的屬性personname,age和一個vector型的hobbies */

private String personname;

private int age;

private Vector hobbies = new Vector();

/* 構(gòu)造函數(shù) */

public Person(String personname, int age) {

this.age = age;

this.personname = personname;

}

/* 得到personname */

public String getPersonname() {

return personname;

}

/* 得到age */

public int getAge() {

return age;

}

/* 添加hobby的方法 */

public void addHobby(String hobbyname) {

hobbies.add(new Hobby(hobbyname, this));

}

/* 輸出person,并將其愛好全部輸出 */

public String toString() {

String s = "personname:" + personname + "\n";

s += " hobbies:";

Object[] o = hobbies.toArray();

Hobby[] h = new Hobby[o.length];

for (int i = 0; i h.length; i++) {

h[i] = (Hobby) o[i];

s += h[i].getHobbyname() + " ";

}

return s;

}

}

java兩個實體對象有映射關(guān)系,則怎么用反射把一個對象的數(shù)據(jù)拿到,賦給另一個對象?

這個沒什么復(fù)雜的,你的核心意思是需要對二個對象的實例進行copy動作,做法如下:

1、對第一個類進行反射獲取屬性的值

2、對第二個類進行反射設(shè)置屬性的值(將1中的值設(shè)入,采用配置文件進行關(guān)系映射)

建議你看下java反射機制,不用太理解他的含義,了解怎么用就可以,百度一下“java反射代碼”。

下面2個網(wǎng)站可以看看:

請問java高手,mybatis的父子關(guān)系是如何映射的?

mybatis有兩種關(guān)聯(lián)映射方式,一種是結(jié)果集映射,一種是子查詢映射。

子查詢映射

!-- 一對一映射,upersign便是getBySingleSign方法的入?yún)?--

association property="parentmenu" column="upersign" select="sys.mapper.FuncMapper.getBySingleSign"/

!-- 一對多映射 --

collection property="menus" ofType="java.util.List" select="sys.mapper.RoleMapper.searchMenu" column="SR_FUNCURL"/

結(jié)果集映射

!-- 一對一映射,property="roleDTO"是對象中的屬性為"roleDTO", javaType="roleDTO"是對象的別名叫"roleDTO"與前面同名的沒有任何關(guān)系,resultMap="roleDTOMap.roleResultMap"是對象RoleDTO的結(jié)果集映射規(guī)則

--

association property="roleDTO" column="sr_id" javaType="roleDTO" resultMap="roleDTOMap.roleResultMap" /


分享文章:實現(xiàn)關(guān)系映射java代碼 關(guān)系映射表
瀏覽地址:http://weahome.cn/article/ddsojoo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部