• Hibernate Annotation _List/Map


    //  Student.java 实体类
    
    package com.tao.pojo;
    
    import java.util.List;
    
    public class Student {
        private int id;
        private String name;
        private String gender;
        private int age;
        //list集合
        private List<String> hobby;    
        //Map 集合
        //private Map<Integer,String> hobby=new HashMap<Integer,String>();
        
        public Student() {
            super();
        }
        public Student(int id, String name, String gender, int age) {
            super();
            this.id = id;
            this.name = name;
            this.gender = gender;
            this.age = age;
        }
        public Student(String name, String gender, int age, List<String> hobby) {
            super();
            this.name = name;
            this.gender = gender;
            this.age = age;
            this.hobby = hobby;
        }
        public Student(int id, String name, String gender, int age, List<String> hobby) {
            super();
            this.id = id;
            this.name = name;
            this.gender = gender;
            this.age = age;
            this.hobby = hobby;
        }
        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 String getGender() {
            return gender;
        }
        public void setGender(String gender) {
            this.gender = gender;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public List<String> getHobby() {
            return hobby;
        }
        public void setHobby(List<String> hobby) {
            this.hobby = hobby;
        }
        @Override
        public String toString() {
            return "Student [id=" + id + ", name=" + name + ", gender=" + gender + ", age=" + age + "]";
        }    
    
    }
    
    //Student.hbm.xml 映射文件
    
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="org.hibernate.test.schemaupdate">
    
        <class name="com.tao.pojo.Student" table="student">
            <id name="id" column="id"></id>
            <property name="name" column="name" type="string"/>    
            <property name="age" column="age"/>    
            <list name="hobby" table="stu_hobby">
                <!-- 外键,自己起名 -->
                <key column="sid"></key>
                <!--索引列  -->
                <list-index column="stu_index"></list-index>
                <!--其他普通列  -->
                <element column="descx" type="string"></element>
            </list>
    <!--map集合  -->
    <!-- <map name="hobby" table="bobby">
                <key column="sid"></key>
                <index column="stu_id" type="int"></index>
                <element column="descx" type="string"></element>
            </map> -->
        </class>
        
    </hibernate-mapping>
    
    // hibernate.cfg.xml  配置文件
    
    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
    
        <session-factory>
            <!-- 数据库连接部分 -->
            <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="connection.url">jdbc:mysql://localhost:3306/test0111_list?characterEncoding=utf-8</property>
            <property name="connection.username">root</property>
            <property name="connection.password">root</property>
            <!--显示SQl语句  -->
            <property name="show_sql">true</property>
            <property name="format_sql">true</property>
            <!--MySQL数据库方言  -->
            <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
            <!-- 自动创建或生成表-->
            <property name="hbm2ddl.auto">update</property>
            <!--映射文件  -->
            <mapping resource="com/tao/pojo/Student.hbm.xml"/>        
        </session-factory>
    
    </hibernate-configuration>
    
    // Test.java 测试类
    
    package com.tao.test;
    
    import java.util.ArrayList;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.dialect.MySQL5Dialect;
    
    import com.tao.pojo.Student;
    
    public class Test {
        
        public static void main(String[] args) {
            Configuration configure = new Configuration().configure();
            SessionFactory factory = configure.buildSessionFactory();
            Session session = factory.openSession();
            session.beginTransaction();
            
            //添加数据(在添加数据之前先——生成表,把添加数据部分先注释)
            Student stu = new Student(1, "aa", "nn", 25);
            ArrayList<String> hobby = new ArrayList<String>();
            hobby.add("旅游");
            hobby.add("散步");
            hobby.add("学习");
            hobby.add("跳舞");
            stu.setHobby(hobby);
            session.save(stu);
            
            /*//Map添加数据
            Student stu1 = new Student(2, "吖吖", "男", 26);
            stu.getHobby().put(1, "读书");
          stu1.getHobby().put(2, "旅游");
          stu2.getHobby().put(3, "跳舞");
          stu2.getHobby().put(4, "唱歌");
            
          session.save(stu);
        */
    
    
            session.getTransaction().commit();;
            session.close();
            factory.close();
        }
    }
  • 相关阅读:
    【Python爬虫】:模拟登录QQ空间
    Docker
    Git
    DevOps
    DevOps
    gRPC 简介
    tcpdump的使用
    Raft
    go-micro 简介
    Node
  • 原文地址:https://www.cnblogs.com/jili6254/p/8268093.html
Copyright © 2020-2023  润新知