Hibernate甯歌鐨勯泦鍚堟槧灏勪富瑕佹湁Set,List,Array,Map,Bag绛夛紝瀹冧滑鐨勭壒鐐瑰涓嬶細
1) Set闆嗗悎鏄疕ibernate涓熀纭€鐨勯泦鍚堢被鍨嬶紝鍏冪礌鏁版嵁涓€鑸嬌鐢ㄥ閿悓涓昏〃鍏寵仈锛孲et闆嗗悎闈炲父閫傜敤浜庨泦鍚堝厓绱犱笉鑳介噸澶嶇殑鎯呭喌銆?
2) Set闆嗗悎鏄棤搴忕殑锛岄泦鍚堝厓绱犲苟涓嶆槸鎸夌収涓€瀹氱殑椤哄簭鎺掑垪鐨勶紝鑰孡ist闆嗗悎鏄湁搴忕殑锛屾瘡涓泦鍚堝厓绱犻渶瑕佹湁涓€涓〃绀洪泦鍚堝簭鍙風殑鏍囪瘑锛岃繖鏍峰彲浠ヤ嬌鐢ㄨ鏍囪瘑鏉ヨ幏寰楄闆嗗悎鍏冪礌銆?
3) 鏁扮粍Array浣跨敤鐨勬槸List鐨勬柟寮忔潵琛ㄧず鐨勩€?
4) Map闆嗗悎鐨勭壒鐐規槸浣跨敤閿€煎锛屽嵆Key-Value缁撴瀯鏉ュ瓨鏀鵑泦鍚堝厓绱狅紝杩欐牱灏遍渶瑕佸搴旂殑闆嗗悎鍏冪礌鏁版嵁搴撹〃涓寘鍚浜嶬ey鐨勫垪銆?
5) Set闆嗗悎鐭蟲棤搴忋€佷笉鑳芥湁閲嶅鍏冪礌鐨勶紝Hibernate鎻愪緵浜嗕竴涓狟ag闆嗗悎锛岀敤鏉ュ鐞嗛噸澶嶅厓绱犵殑鎯呭喌銆傚€煎緱娉ㄦ剰鐨勬槸锛孊ag骞朵笉鏄疛ava API锛岃€屾槸Hibernate鎻愪緵鐨勩€侭ag闆嗗悎鏄犲皠鍜孡ist涓嶅悓锛孡ist鐨勯泦鍚堝厓绱犳槸鏈夊簭鐨勶紝闇€瑕佹湁涓€涓泦鍚堝簭鍙鋒潵鏍囪瘑闆嗗悎鍏冪礌鐨勪綅缃紝List鍏冪礌鍙互閲嶅锛涜€孊ag闆嗗悎鍏冪礌涓嶉渶瑕佸厓绱犲簭鍙鋒爣璇嗭紝鍏冪礌涔熸槸鍙互閲嶅鐨勩€?
棣栧厛寤虹珛鏁版嵁搴撹〃,SQL璇彞濡備笅锛?
Sql浠g爜
1. CREATE TABLE 鈥榤essage鈥?
2. 'id' int(11) NOT NULL,
3. 'setValue' varchar(100) NOT NULL,
4. 'listValue_id' int(11) NOT NULL,
5. 'listValue' varchar(100) NOT NULL,
6. 'arrayValue_id' int(11) NOT NULL,
7. 'arrayValue' varchar(100) NOT NULL,
8. 'mapValue_id' int(11) NOT NULL,
9. 'mapValue' varchar(100) NOT NULL,
10. 'bagValue' varchar(100) NOT NULL
11. )ENGINE = InnoDB DEFAULT CHARSET = gbk
12.
13. CREATE TABLE 'master'(
14. 'id' int(11) NOT NULL auto_increment,
15. 'name' varchar(100) NOT NULL default '',
16. PRIMARY KEY('id')
17. )ENGINE = InnoDB DEFAULT CHARSET = gbk
寤虹珛瑙掕壊鐨勫疄浣撶被,浠g爜濡備笅:
Java浠g爜
1. import java.io.Serializable;
2. import java.util.List;
3. import java.util.Map;
4. import java.util.Set;
5.
6. @SuppressWarnings({ "unchecked", "serial" })
7. public class Master implements Serializable {
8. private Integer id; //涓婚敭ID灞炴€?
9. private String name; //濮撳悕name灞炴€?
10. private Set setValue;
11. private List listValue;
12. private String[] arrayValue;
13. private Map mapValue;
14. private List bagValue;
15.
16. public Integer getId() {
17. return id;
18. }
19. public void setId(Integer id) {
20. this.id = id;
21. }
22. public String getName() {
23. return name;
24. }
25. public void setName(String name) {
26. this.name = name;
27. }
28. public Set getSetValue() {
29. return setValue;
30. }
31. public void setSetValue(Set setValue) {
32. this.setValue = setValue;
33. }
34. public List getListValue() {
35. return listValue;
36. }
37. public void setListValue(List listValue) {
38. this.listValue = listValue;
39. }
40. public String[] getArrayValue() {
41. return arrayValue;
42. }
43. public void setArrayValue(String[] arrayValue) {
44. this.arrayValue = arrayValue;
45. }
46. public Map getMapValue() {
47. return mapValue;
48. }
49. public void setMapValue(Map mapValue) {
50. this.mapValue = mapValue;
51. }
52. public List getBagValue() {
53. return bagValue;
54. }
55. public void setBagValue(List bagValue) {
56. this.bagValue = bagValue;
57. }
58. }
绫籑essage鐨凥ibernate鏄犲皠鏂囦歡Message.hbm.xml濡備笅锛?
Xml浠g爜
1. <?xml version="1.0" encoding="utf-8"?>
2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
4. <!--
5. Mapping file autogenerated by MyEclipse Persistence Tools
6. -->
7. <hibernate-mapping>
8. <class name="com.iprai.hibernate.collectionmapping" table="master" catalog="iprai">
9. <id name="id" type="java.lang.Integer">
10. <column name="id" />
11. <generator class="native"></generator>
12. </id>
13. <property name="name" type="java.lang.String">
14. <column name="name" length="100" not-null="true" />
15. </property>
16. <!--Set绫誨瀷鏄犲皠-->
17. <set name="setValue" table="message"> //瀹氫箟瀵瑰簲鐨勮〃
18. <key column="id" />
19. <element type="java.lang.String">
20. <column name="setValue" />
21. </element>
22. </set>
23.
24. <!--List绫誨瀷鏄犲皠-->
25. <List name="listValue" table="message">
26. <key column="id" />
27. <index column="listValue_id" /> //閰嶇疆涓婚敭
28. <element type="java.lang.String" column="listValue" />
29. </List>
30.
31. <!--Array绫誨瀷鏄犲皠-->
32. <array name="arrayValue" table="message">
33. <key column="id"/>
34. <list-index column="arrayValue_id"/>
35. <element type="java.lang.String" column="arrayValue"/>
36. </array>
37.
38. <!--Map绫誨瀷鏄犲皠-->
39. <map name="mapValue" table="message">
40. <key column="id" />
41. <!--閰嶇疆閿€煎-->
42. <map-key column="mapValue_id" type="java.lang.String" />
43. <element type="java.lang.String" column="mapValue" />
44. </map>
45.
46. <!--Bag绫誨瀷鏄犲皠-->
47. <bag name="bagValue" table="message">
48. <key column="id" /> //瀹氫箟涓婚敭
49. <element type="string" column="bagValue" /> //瀹氫箟鍏冪礌绫誨瀷
50. </bag>
51. </class>
52. </hibernate-mapping>
JUnit娴嬭瘯浠g爜濡備笅锛?
Java浠g爜
1. import java.util.ArrayList;
2. import java.util.HashMap;
3. import java.util.HashSet;
4. import java.util.List;
5. import java.util.Map;
6. import java.util.Set;
7.
8. import org.hibernate.Session;
9.
10. import junit.framework.TestCase;
11.
12. public class MasterTest extends TestCase {
13.
14. public void testSave() {
15. Master master = new Master();
16. master.setName("JavaEye");
17.
18. Set setValue = new HashSet();
19. setValue.add("a");
20. setValue.add("b");
21. master.setSetValue(setValue);
22.
23. List listValue = new ArrayList();
24. listValue.add("c");
25. listValue.add("d");
26. master.setListValue(listValue);
27.
28. String[] arrayValue = new String[]{"e", "f"};
29. master.setArrayValue(arrayValue);
30.
31. Map mapValue = new HashMap();
32. mapValue.put("key_1", "value_1");
33. mapValue.put("key_2", "value_2");
34. master.setMapValue(mapValue);
35.
36. List bagValue = new ArrayList();
37. bagValue.add("h");
38. bagValue.add("i");
39. master.setBagValue(bagValue);
40.
41. Session session = null;
42. try {
43. session = HibernateUtils.getSession();
44. session.beginTransaction();
45. session.save(c);
46. session.getTransaction().commit();
47. }catch(Exception e) {
48. e.printStackTrace();
49. session.getTransaction().rollback();
50. }finally {
51. HibernateUtils.closeSession(session);
52. }
53. }
54. }