文档章节

Hibernaate Set集合的使用

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

import java.util.Set;

public class Student {

	private int id;
	private String name;
	private int age;
	private Set<String> hobby;
	
	public Student(){
		
	}

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

	public void setHobby(Set<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.Student" 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表示的是实体类中集合的属性名称 -->
        <set name="hobby" table="stu_hobby" lazy="false">
        	<!-- key子元素指明当前表的外键列 -->
        	<key column="stu_id" foreign-key="stu_hobby_fk"></key>
        	<!-- element元素是用来保存集合属性中的值 -->
        	<element column="hobby_name" type="string"></element>
        </set>
    </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"/>
	</session-factory>
</hibernate-configuration>
package test;

import java.util.HashSet;
import java.util.Set;

import model.Student;

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 StudentTest {

	@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();
		
		Student stu=new Student();
		
		stu.setName("zhangsan");
		stu.setAge(20);
		
		Set<String>set=new HashSet<>();
		set.add("eat");
		set.add("sleep");
		set.add("play");
		
		stu.setHobby(set);
		session.save(stu);
		tx.commit();
		HibernateUtils.close(session);
	}
	
	@Test
	public void get(){
		Session session=HibernateUtils.getSession();
		Transaction tx=session.beginTransaction();
		
		Student stu=(Student)session.get(Student.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);
	}
}


© 著作权归作者所有

共有 人打赏支持
萧小蚁

萧小蚁

粉丝 98
博文 279
码字总数 192339
作品 0
海淀
程序员
Objective-C 语法之集合对象

集合对象的关键字是NSSet与NSMutableSet。前者是不可变集合,后者是可变集合,Objective-C语言中大部分数据结构都存在可变与不可变两种数据。这里的集合很像Java语言与C语言中的Set,用法基本...

鉴客
2011/10/04
1K
0
python学习笔记(七)之集合2

python学习笔记(七)之集合2 不变的集合 在”python学习笔记(六)之集合1“中以set()来建立集合,这种方式所创建的集合都是可原地修改的集合,或者说是可变的,也就是说是unhashable。 还有...

品鉴初心
01/11
0
0
Objective-C语法之集合对象的那些事儿(九)

Objective-C语法之集合对象的那些事儿 集合对象的关键字是NSSet与NSMutableSet。前者是不可变集合,后者是可变集合,Objective-C语言中大部分数据结构都存在可变与不可变两种数据。这里的集合...

彭博
2012/03/09
150
0
python基础:集合-set()

一、定义: 集合是一个无序的,没有重复元素的序列。可以用来去重。 使用{},和set()定义 空集必须使用set()来定义 可以set任何可迭代的对象 string = 'this is string!'num = range(1, 11)...

yishijing
2017/11/20
0
0
集合——Set集合

Set集合 Set集合中元素是无序的,不可以重复,在Set集合中存储的对象,不存在两个对象equals比较为true的情况。 1)HashSet和TreeSet是Set集合中的两个实现类,分别用hash表和二叉树的方式实...

Bug-Killer
2016/04/13
49
0
Java学习lesson 15

*Set集合 一个包含重复的元素collection,并且最多包含一个null元素,此类实现Set接口,有哈希表支持,Java中的预定义类型如String、Integer都可以在集合内使用;但对于自己创建的类型是,要...

一白菜
2017/11/16
0
0
第十章 Scala 容器基础(二十二):合并有序集合

Problem 你想要把两个集合合并为一个集合,要么包含两集合所有的元素,要么包含两个集合的相同元素,要么包含两个集合的不同元素。 Solution 对于这个问题有很多解决方案,用哪种取决于你的需...

阿拉德大陆的魔法师
2016/04/18
538
0
Java中的Set、List、Map的区别

数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引...

Mbeck
2016/09/06
33
0
JAVA中的集合类Map、Set、List

JAVA中的集合类Map、Set、List (2013-05-05 18:51:27) 转载▼ 1、JAVA集合类都放在java.util包中 2、JAVA集合类不能存放基本数据类型,只能存放对象的引用。 3、Set:集合中对象不按特定的方式...

小和尚敲代码
2016/02/02
227
0
集合(四)Map

Collection集合和Map集合的区别: a: Map集合属于双列集合 , Collection属于单列集合 b: Map集合键是唯一性的, 而Collection集合中的Set集合可以保证元素的唯一性 c: Map集合的数据结构只和键...

centrald
2016/01/29
119
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

HTML5和CSS3新特性一览

HTML5和CSS3新特性一览 HTML5 1.HTML5 新元素 HTML5提供了新的元素来创建更好的页面结构: 标签 描述 <article> 定义页面独立的内容区域。 <aside> 定义页面的侧边栏内容。 <bdi> 允许您设置...

全部原谅
5分钟前
0
0
编程开发进阶更重要的是掌握的核心设计思维[图]

编程开发进阶更重要的是掌握的核心设计思维[图]: “单独写一个琐碎的代码块就等同于弹奏音阶一样,不幸的是,弹奏音阶并不能教会你任何关于音乐的东西,并且非常枯燥” 这是 Eric S. Raymon...

原创小博客
7分钟前
0
0
怎样确保java代码在抛出异常时都回滚,而不只是运行时异常

/** TransactionAspectSupport手动回滚事务:*/ @Transactional(rollbackFor = { Exception.class }) public boolean test() { try { ......

gulf
8分钟前
0
0
TCP-Keepalive作用

TCP交互在三次握手确定连接之后,后续可能不会一直有数据在通讯,但此时双方的连接是保持的,如果在这段时间内没有数据,客户端(或服务端)突然关掉了,或者客户端到服务端之间的网络突然断...

sensy
8分钟前
0
0
Hive学习之Hive CLI

Hive命令行接口(CLI)提供了执行Hive QL、设置参数等功能,要启用CLI只需要在命令行下执行$HIVE_HOME/bin/hive命令。在命令下执行hive –H可以查看CLI选项,如下表所示: -d,--define <key...

舒运
11分钟前
0
0
hadoop新手学习笔记之hadoop产品大全

大数据这个词也许几年前你听着还会觉得陌生,但我相信你现在听到hadoop这个词的时候你应该都会觉得“熟悉”!越来越发现身边从事hadoop开发或者是正在学习hadoop的人变多了。作为一个hadoop入...

左手的倒影
12分钟前
0
0
MySQL5.7之开启远程连接

参考这个https://blog.csdn.net/qiyueqinglian/article/details/52778230

汉斯-冯-拉特
13分钟前
0
0
FileUtils API

一、概述 这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开...

如风达
13分钟前
0
0
详解机器学习中的梯度消失、爆炸原因及其解决方法

前言 本文主要深入介绍深度学习中的梯度消失和梯度爆炸的问题以及解决方案。本文分为三部分,第一部分主要直观的介绍深度学习中为什么使用梯度更新,第二部分主要介绍深度学习中梯度消失及爆...

tantexian
18分钟前
0
0
JavaMail 发送邮件

参考 https://www.cnblogs.com/xdp-gacl/p/4216311.html 发送html格式邮件 package com.example.stumgr;import java.util.Properties;import javax.mail.Message;import javax.mail......

阿豪boy
19分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部