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();
}
}
Hibernate Annotation _List/Map的更多相关文章
- Hibernate Annotation笔记
(1)简介:在过去几年里,Hibernate不断发展,几乎成为Java数据库持久性的事实标准.它非常强大.灵活,而且具备了优异的性能.在本文中,我们将了解如何使用Java 5 注释来简化Hiberna ...
- hibernate annotation注解方式来处理映射关系
在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式 ...
- 使用hibernate annotation 为非空列加上默认值
在网上查了很多资料都没找到如何为非空列加上默认值 以前的做法是给字段一个初始值,加上dynamic-insert属性 换了annotation了以后没有找到如何设置dynamic-insert属性 但 ...
- Hibernate Annotation (Hibernate 注解)
简介: 传统上,Hibernate的配置依赖于外部 XML 文件:数据库映射被定义为一组 XML 映射文件,并且在启动时进行加载. 然而现在借助新的 Hibernate Annotation 库, ...
- hello world of hibernate Annotation
1:建立所需要的类,如: package com.hibernate.model; import javax.persistence.Entity; import javax.persistence. ...
- hibernate annotation多对多中间表添加其他字段的第三种方法
本示例主要以学生(T_Student)和课程(T_Course)之间的多对多关系,中间表Score(分数),学生表和课程表是多对多关系,另外为他们的关系添加额外的字段---分数: T_Student类 ...
- hibernate annotation 生成uuid主键
JPA标准方式下,不可以生成uuid类型的主键,但是hibernate提供了一些方式生成uuid主键,具体如下: 1.主键生成器 @GeneratedValue(generator=" ...
- 第二个hibernate Annotation版本的helloworld
经过第一次的 hibernate 我发现每一个数据库表都对应了一个类,并且每一个类都要新建一个文件进行配置 很麻烦! 于是便出现了Annotation版本的hibernate. 具体如下: 1.同 ...
- hibernate annotation配置经验
1.将annotation写在entity类文件的get方法上面
随机推荐
- CKEditor5 + ckfinder3(php)
CKEditor5资源下载,这里我们选择ckeditor5-build-classic下载: https://ckeditor.com/ckeditor-5-builds/download/ ckfi ...
- django-debug-toolbar的配置以及使用
django-debug-toolbar django,web开中,用django-debug-toolbar来调试请求的接口,无疑是完美至极. 可能本人,见识博浅,才说完美至极, 大神,表喷,抱 ...
- List,Set,Map三种接口的区别
set --其中的值不允许重复,无序的数据结构 list --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构,健值必须具有唯一性(键不能同,否则值替换) List按对象进 ...
- javaScript(8)---对象和数组
javaScript(8)---对象和数组 学习要点: 1.Object类型 2.Array类型 3.对象中的方法 什么是对象,其实就是一种类型,即引用类型.而对象的值就是引用类型的实例.在ECMAS ...
- java设计模式--观察者模式(Observer)
java设计模式--观察者模式(Observer) java设计模式--观察者模式(Observer) 观察者模式的定义: 定义对象间的一种一对多的依赖关系.当一个对象的状态发生改变时,所有依赖于它的 ...
- 如何实现Zabbix的主动注册功能
主动注册(Active Agent Auto-Registration),顾名思义,无需在Zabbix Web上手动添加host信息,即可实现主机的监控. 它是由Agent主动向Server注册. 相 ...
- Vector 特性
1.Vector是一个连续内存占用的容器 2.每次Insert,都会将插入的对象先析构,然后复制一个副本添加到容器内 3.容器的大小先是1,然后是2,然后是4,也可以使用reserve来重新制定队列的 ...
- Learn flask in the hard way:配置环境的安装
开发用的是win10的环境. 首先确保安装了python环境,个人比较适应python2.x的代码方式,所以安装的是python2.7.10. 另外IDE还是我最喜欢的pycharm. 然后开始安装F ...
- Kafka安装之 Zookeeper
一 . Zookeeper 概述 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它 ...
- MySQL中的外键约束