映射集合属性之⑤:Map集合属性

来源:互联网 发布:淘宝天猫历史价格 编辑:程序博客网 时间:2024/06/06 01:00

hibernate.cfg.xml :

<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools.                   --><hibernate-configuration>    <session-factory>        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>        <property name="connection.url">jdbc:mysql://localhost:3306/temp</property>        <property name="connection.username">root</property>        <property name="connection.password">mysqladmin</property>        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>        <property name="hbm2ddl.auto">update</property>        <property name="show_sql">true</property>        <property name="format_sql">true</property>        <mapping resource="db/mapping/Person.hbm.xml"/>    </session-factory></hibernate-configuration>
Person.java :

public class Person {private int id;private String name;private int age;private Map<String,Integer> scores=new HashMap<String,Integer>();public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Map<String, Integer> getScores() {return scores;}public void setScores(Map<String, Integer> scores) {this.scores = scores;}}
Person.hbm.xml :

<?xml version="1.0"?>  <!DOCTYPE hibernate-mapping PUBLIC       "-//Hibernate/Hibernate Mapping DTD 3.0//EN"      "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">        <hibernate-mapping package="db.domain">    <class name="Person" table="persons">            <id name="id">            <generator class="identity"></generator>        </id>                <property name="name" type="string"/>        <property name="age" type="integer"/>                <!-- 映射Map集合属性 -->        <map name="scores" table="scores">            <key column="person_id" not-null="true"/>            <map-key column="subject" type="string"/>            <element column="grade" type="integer"/>        </map>             </class></hibernate-mapping>
Test.java :

public class Test {public static void main(String[] args) {Session session=HibernateSessionFactory.getSession();Transaction txt=session.beginTransaction();Person p1=new Person();p1.setName("小红");p1.setAge(15);Map<String,Integer> scores1=new HashMap<String,Integer>();scores1.put("语文",92);scores1.put("数学",85);p1.setScores(scores1);Person p2=new Person();p2.setName("小明");p2.setAge(14);Map<String,Integer> scores2=new HashMap<String,Integer>();scores2.put("语文",90);scores2.put("数学",96);p2.setScores(scores2);session.save(p1);session.save(p2);txt.commit();HibernateSessionFactory.closeSession();}}



原创粉丝点击