Hibernate的Set,List,Map集合映射,数组映射
2017-11-19 09:54
411 查看
在数据库操作中,我们通常会用到多张项关联的表,一个用户通常有多个地址。由此我们便需要用到集合映射。
首先看一下整体结构
Set集合映射
步骤一:创建实体对象类,需要单独建表的属性address用Set<String>集合类型封装。
(此处省略了get() set()方法)
步骤二:配置User.hbm.xml映射表
步骤三:配置hibernate.cfg.xml
步骤四:测试类 App1
List集合映射
步骤一:同上,实体类对象中address用List集合存储
步骤二:配置User.hbm.xml映射表 list集合有序,所以这里比set集合多了个<list-index>
步骤三:配置hibernate.cfg.xml,同上。(此处省略)
步骤四:测试
map集合映射
步骤一:同上,实体类对象中address用Map集合存储
步骤二:配置User.hbm.xml映射表
步骤三:配置hibernate.cfg.xml,同上。(此处省略)
步骤四:测试
数组映射
步骤一:
步骤二:配置User.hbm.xml映射表
步骤三:配置hibernate.cfg.xml,同上。(此处省略)
步骤四:测试
最后我们查看一下数据库中的表结构~
hibernate自动建表 table_user
set集合映射的 table_address
List集合映射的 table_addresslist
Map集合映射的table_addressmap
数组映射的table_array
首先看一下整体结构
Set集合映射
步骤一:创建实体对象类,需要单独建表的属性address用Set<String>集合类型封装。
(此处省略了get() set()方法)
步骤二:配置User.hbm.xml映射表
<hibernate-mapping package="cn.itcast.collection" auto-import="true"> <class name="User" table="table_user"> <id name="id" column="user_id"> <!--配置主键--> <generator class="native"></generator> <!-- 主键自增长方式(根据数据库自动匹配)--> </id> <property name="userName"></property> <!-- Set集合 元素无放入顺序,元素不可重复 (注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的) --> <set name="address" table="table_address"> <!--单独映射的table_address表--> <key column="uid"></key> <!-- 外键--> <element column="address" type="string"></element> <!-- 映射表中所存放的address数据--> </set> </class> </hibernate-mapping>
步骤三:配置hibernate.cfg.xml
<hibernate-configuration> <session-factory> <!-- 数据库连接配置 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql:///user</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.show_sql">true</property> <!-- 控制台打印输出数据库sql语句 --> <property name="hibernate.format_sql">true</property> <property name="hibernate.hbm2ddl.auto">update</property> <!-- <mapping resource="cn/itcast/collection/User.hbm.xml"/> --> <!--加载映射文件(这里我们尝试通过类加载,所有这里暂时先注释) --> </session-factory> </hibernate-configuration>
步骤四:测试类 App1
public class App1 { private static SessionFactory sf=null; static { sf = new Configuration() .configure() .addClass(User.class) // 测试时候使用(自动加载映射文件User.hbm.xml) .buildSessionFactory(); } @Test//test set集合映射 public void test1(){ Session session=sf.openSession(); session.beginTransaction(); //---保存 Set<String> addressSet=new HashSet<String>(); addressSet.add("广州"); addressSet.add("深圳"); //用户对象 User user=new User(); user.setUserName("张三"); user.setAddress(addressSet); //保存 session.save(user); session.getTransaction().commit(); session.close(); } }
List集合映射
步骤一:同上,实体类对象中address用List集合存储
步骤二:配置User.hbm.xml映射表 list集合有序,所以这里比set集合多了个<list-index>
<!-- list集合 元素有放入顺序,元素可重复 --> <list name="addressList" table="table_addressList"> <key column="uid"></key> <list-index column="idx"></list-index> <element column="address" type="string"></element> </list>
步骤三:配置hibernate.cfg.xml,同上。(此处省略)
步骤四:测试
map集合映射
步骤一:同上,实体类对象中address用Map集合存储
步骤二:配置User.hbm.xml映射表
步骤三:配置hibernate.cfg.xml,同上。(此处省略)
步骤四:测试
数组映射
步骤一:
步骤二:配置User.hbm.xml映射表
步骤三:配置hibernate.cfg.xml,同上。(此处省略)
步骤四:测试
最后我们查看一下数据库中的表结构~
hibernate自动建表 table_user
set集合映射的 table_address
List集合映射的 table_addresslist
Map集合映射的table_addressmap
数组映射的table_array
相关文章推荐
- Hibernate的集合映射(Set、List、Array、Map、Bag)
- Hibernate常见的集合映射主要有Set,List,Array,Map,Bag
- Hibernate的集合映射(Set、List、Array、Map、Bag)
- Hibernate在一对多映射下集合Set,List,Map的配置
- Hibernate 多表关联映射- Hibernate中使用的集合类型(set,list,array,bag,map)
- Hibernate 多表关联映射- Hibernate中使用的集合类型(set,list,array,bag,map)
- 【学习笔记】Hibernate映射List、Map、数组、Set、Bag的具体操作
- Hibernate之集合映射的使用(Set集合映射,list集合映射,Map集合映射)
- Hibernate之映射集合(值类型的set,bag,idbag,list和map)
- Hibernate之集合映射的使用(Set集合映射,list集合映射,Map集合映射)
- Hibernate映射 --- 集合映射(Set List Map )
- Hibernate常见的集合映射 Set,List,Array,Map,Bag
- Hibernate常见的集合映射主要有Set,List,Array,Map,Bag .
- 【Hibernate】Hibernate的集合映射(Set、List、Array、Map、Bag)
- Hibernate的集合映射(Set、List、Array、Map、Bag)
- Hibernate映射集合属性2__List、Map、数组、Bag等
- 【转载】Hibernate之hbm.xml集合映射的使用(Set集合映射,list集合映射,Map集合映射)
- Hibernate (四) Set List Map 集合映射 和排序
- Hibernate学习---第七节:数组&list&map&set的映射配置
- Hibernate学习---第六节:数组&list&map&set的映射配置