文档章节

Hibernate List集合映射

萧小蚁
 萧小蚁
发布于 2015/06/13 20:54
字数 617
阅读 8
收藏 0
点赞 0
评论 0
package model;

import java.util.List;


public class Student1 {

	private int id;
	private String name;
	private int age;
	private List<String> hobby;
	
	public Student1(){
		
	}

	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 List<String> getHobby() {
		return hobby;
	}

	public void setHobby(List<String> hobby) {
		this.hobby = hobby;
	}
	
}
<?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>
	<!-- name属性指定类名(全限定名) table指明表名,不指明table数据默认的表名和实体名一致 -->
    <class name="model.Student1" table="stu_tab">
    	<!-- type指明当前字段的类型    name对应实体中的属性名 -->
        <id type="integer" name="id">
        	<!-- 提供ID自增的策略  native会根据数据库自行判断 -->
            <generator class="native"/>
        </id>
        <property name="name" type="string"></property>
        <property name="age" type="integer"></property>
        <!-- set 标签中name表示的是实体类中集合的属性名称 -->
        <list name="hobby" table="stu_hobby">
        	<!-- key子元素指明当前表的外键列 -->
        	<key column="stu_id" foreign-key="stu_hobby_fk"></key>
        	<!-- 索引列,指明添加数据的顺序 -->
        	<index column="position"></index>
        	<!-- element元素是用来保存集合属性中的值 -->
        	<element column="hobby_name" type="string"></element>
        </list>
    </class>
		
</hibernate-mapping>
<!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="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
		<!-- 数据库驱动 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql:///test</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">root</property>
		 <property name="hibernate.show_sql">true</property>
		 <!-- 其它属性配置 -->
		<!-- 指明C3P0的提供者 -->
		<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
		<!-- 连接池参数的配置 -->
		<property name="hibernate.c3p0.min_size">5</property> 
	    <property name="hibernate.c3p0.max_size">30</property> 
	    <property name="hibernate.c3p0.timeout">1800</property> 
	    <property name="hibernate.c3p0.max_statements">50</property>
	    
	    <!-- 打印SQL语句到控制台 -->
		<property name="hibernate.show_sql">true</property>
		<property name="hibernate.format_sql">true</property>
		<property name="hibernate.hbm2ddl.auto">update</property> 
		<!-- 注册实体的对象关系映射文件 -->
		
		<mapping resource="model/Student.hbm.xml"/>
		<mapping resource="model/Student1.hbm.xml"/>
	</session-factory>
</hibernate-configuration>
package test;

import java.util.ArrayList;
import java.util.List;
import model.Student1;

import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.Test;

import util.HibernateUtils;

public class Student1Test {

	@Test
	public void createTable(){
		Configuration cfg=new Configuration().configure();
		SchemaExport se=new SchemaExport(cfg);
		se.create(true, true);
	}
	@Test
	public void save(){
		Session session=HibernateUtils.getSession();
		Transaction tx=session.beginTransaction();
		
		Student1 stu=new Student1();
		
		stu.setName("zhangsan");
		stu.setAge(20);
		
		List<String>list=new ArrayList<>();
		list.add("eat");
		list.add("sleep");
		list.add("play");
		
		stu.setHobby(list);
		session.save(stu);
		tx.commit();
		HibernateUtils.close(session);
	}
	
	@Test
	public void get(){
		Session session=HibernateUtils.getSession();
		Transaction tx=session.beginTransaction();
		
		Student1 stu=(Student1)session.get(Student1.class, 1);
		System.out.println(stu.getId()+"--->"+stu.getName()+"--->"+stu.getAge());
	//	for(String str:stu.getHobby()){
	//		System.out.println(str);
	//	}
		tx.commit();
		HibernateUtils.close(session);
	}
}


© 著作权归作者所有

共有 人打赏支持
萧小蚁

萧小蚁

粉丝 96
博文 278
码字总数 192339
作品 0
海淀
程序员
hibernate集合映射(转载)

POJOs如下: Customer类---->customer表 Order类对应---->orders表 customer(1)<----->(n)order public class Customer { private String id; private String username; private String pass......

李永china ⋅ 2016/06/12 ⋅ 0

hibernate集合映射(转载)

Hibernate集合映射 假设有一个User类,User对象的属性包括编号,姓名,爱好(假设一个人有很多爱好,这时就要用到数组或者集合),用户日志(很多篇,也会用到数组或集合)。此时的实体Bean应该是...

李永china ⋅ 2016/06/12 ⋅ 0

Hibernate框架学习之注解映射实体类

前面的相关文章中,我们已经介绍了使用XML配置文件映射实体类及其各种类型的属性的相关知识。然而不论是时代的潮流还是臃肿繁杂的配置代码告诉我们,注解配置才是更人性化的设计,于是学习了...

Single_YAM ⋅ 2017/11/13 ⋅ 0

hibernate 级联(cascade和inverse)

级联(Cascade) : 二个以上的设备通过某种方式连接起来,能起到扩容的效果就是级联。Hibernate级联(Cascade)是用来说明数据库中两个表之间相互关系(一对一,一对多,多对多)中,当对主对象...

唏嘘猪肉佬 ⋅ 2013/06/13 ⋅ 0

Hibernate如何自动维护list-index列的值?

Hibernate中可以使用集合属性表示一对多的关联,其中List属性表示有序的集合关联。List的list-index元素指定了表示顺序的列,这个列的值需要是连续的从0到n的整数。Hibernate中如何能实现自动...

redraiment ⋅ 2014/04/02 ⋅ 5

Hibernate缓存与集合性能分析

Hibernate作为一个应用级的数据访问层封装,只能在其作用范围内保持cache中数据的有效性,如果系统与第三方系统共享数据库的情况下,Hibernate的Cache机制可能失效。 Hibernate在本地JVM中维...

疯子船长 ⋅ 2015/10/26 ⋅ 0

Hibernate学习记录

Hibernate学习记录 本次学习是在hibernate3环境下,没有结合struts2和Spring,测试是直接用java类的main方法在控制台输出。 一、准备工作 oracle数据库(其他数据库也可以,都是相似的)、h...

leilovege ⋅ 2014/02/10 ⋅ 0

史上最简单的Hibernate4视频教程(附源码和笔记)

Hibernate4是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合...

2846613430 ⋅ 2016/04/08 ⋅ 0

Java程序员从笨鸟到菜鸟之(五十七)细谈Hibernate(八)Hibernate集合Map关系映射

对于hibernate中,集合属性在Hibernate的映射文件中是非常常见的,也是非常重要的内容,理解和熟练掌握常用的集合属性则显得更为重要。在hibernate的配置文件中,例如每个人的考试成绩,就是典型...

长平狐 ⋅ 2012/11/12 ⋅ 0

hibernate集合映射

题目:设计一个用户类,基本属性有id,name,messages,messages是一个存放用户信息的集合(每条信息不重复),并通过hibernate完成保存操作。 由于第一范式(关系模式R的所有属性都是不可分的基...

rainumdo ⋅ 2017/08/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

关于“幂等”操作

一个幂等(idempotent)操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同. 开发中, 我们经常考虑幂等操作的场景有“接口调用”、“MQ消费”、“自动任务”等 接口调用, 可能出现...

零二一七 ⋅ 28分钟前 ⋅ 0

Dubbo服务服务暴露之ProxyFactory Invoker

Dubbo服务暴露过程中有涉及到调用ProxyFactory 中方法获取Invoker对象的过程,现在我们来深究下源码,来看下这个过程是在做些什么,返回的Invoker 对象是什么,我们来看一下代码的切入点: ...

哲别0 ⋅ 43分钟前 ⋅ 0

GP两种连接方式性能测试

GP两种连接方式性能测试 Pivotal import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class GPQueryStrin......

仔仔1993 ⋅ 47分钟前 ⋅ 0

jsonrpc-4j代码解析

解析文件 AutoJsonRpcServiceImplExporter JsonServiceExporter AutoJsonRpcServiceImplExporter 路径:com.googlecode.jsonrpc4j.spring.AutoJsonRpcServiceImplExporter AutoJsonRpcServi......

郭恩洲_OSC博客 ⋅ 今天 ⋅ 0

百度搜索

from selenium import webdriver import time brower=webdriver.Firefox() brower.get('http://www.baidu.com') input=brower.find_element_by_id('kw') input.send_keys('中南大学') time.s......

南桥北木 ⋅ 今天 ⋅ 0

tomcat 日志记录器

1、日志记录器是记录消息的组件 日志记录器需要与某个servlet 容器相关联 2、Logger 接口 共定义了5种日志级别:FATAL、ERROR、WARNING、INFORMATION、DEBUGGER setVerbosity 设置级别 setC...

职业搬砖20年 ⋅ 今天 ⋅ 0

Thrift RPC实战(三) Thrift序列化机制

1.Thrift基础架构 Thrift是一个客户端和服务端的架构体系,数据通过socket传输; 具有自己内部定义的传输协议规范(TProtocol)和传输数据标准(TTransports); 通过IDL脚本对传输数据的数据结构...

lemonLove ⋅ 今天 ⋅ 0

网站建设就要像2018世界杯的俄罗斯队大杀四方[图]

今天心情不错,因为昨天晚上观看了世界杯比赛,尤其是对俄罗斯队的大杀四方感到十分霸气侧漏啊,因此我联想到了自己的博客网站,我的博客是去年年底上线的,一直想建设一个关于读书和读后感作...

原创小博客 ⋅ 今天 ⋅ 0

linux 信号机制

signal(SIGPIPE, SIG_IGN); TCP是全双工的信道, 可以看作两条单工信道, TCP连接两端的两个端点各负责一条. 当对端调用close时, 虽然本意是关闭整个两条信道, 但本端只是收到FIN包. 按照TCP协...

xxdd ⋅ 今天 ⋅ 0

my.cnf, my-small.cnf, my-medium.cnf, my-large.cnf

1. my-small.cnf # Example MySQL config file for small systems.## This is for a system with little memory (<= 64M) where MySQL is only used# from time to time and it's importa......

周云台 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部