//  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的更多相关文章

  1. Hibernate Annotation笔记

    (1)简介:在过去几年里,Hibernate不断发展,几乎成为Java数据库持久性的事实标准.它非常强大.灵活,而且具备了优异的性能.在本文中,我们将了解如何使用Java 5 注释来简化Hiberna ...

  2. hibernate annotation注解方式来处理映射关系

    在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式 ...

  3. 使用hibernate annotation 为非空列加上默认值

    在网上查了很多资料都没找到如何为非空列加上默认值 以前的做法是给字段一个初始值,加上dynamic-insert属性 换了annotation了以后没有找到如何设置dynamic-insert属性 但 ...

  4. Hibernate Annotation (Hibernate 注解)

    简介: 传统上,Hibernate的配置依赖于外部 XML 文件:数据库映射被定义为一组 XML 映射文件,并且在启动时进行加载. 然而现在借助新的 Hibernate   Annotation 库, ...

  5. hello world of hibernate Annotation

    1:建立所需要的类,如: package com.hibernate.model; import javax.persistence.Entity; import javax.persistence. ...

  6. hibernate annotation多对多中间表添加其他字段的第三种方法

    本示例主要以学生(T_Student)和课程(T_Course)之间的多对多关系,中间表Score(分数),学生表和课程表是多对多关系,另外为他们的关系添加额外的字段---分数: T_Student类 ...

  7. hibernate annotation 生成uuid主键

    JPA标准方式下,不可以生成uuid类型的主键,但是hibernate提供了一些方式生成uuid主键,具体如下: 1.主键生成器     @GeneratedValue(generator=" ...

  8. 第二个hibernate Annotation版本的helloworld

    经过第一次的 hibernate  我发现每一个数据库表都对应了一个类,并且每一个类都要新建一个文件进行配置 很麻烦!  于是便出现了Annotation版本的hibernate. 具体如下: 1.同 ...

  9. hibernate annotation配置经验

    1.将annotation写在entity类文件的get方法上面

随机推荐

  1. Redis客户端ServiceStack.Redis的简单使用

    在nuget中下载ServiceStack.Redis,但是运行之后会出现一个问题: Exception: "Com.JinYiWei.Cache.RedisHelper"的类型初 ...

  2. 学习Spring Boot

    Spring boot 是什么 ? 简单说, spring boot 是一个构建项目的工具, 一个脚手架. Spring boot 能干什么? spring boot 做非常少的配置就可以构建生产级别 ...

  3. Spring Cloud入门教程 - Zuul实现API网关和请求过滤

    简介 Zuul是Spring Cloud提供的api网关和过滤组件,它提供如下功能: 认证 过滤 压力测试 Canary测试 动态路由 服务迁移 负载均衡 安全 静态请求处理 动态流量管理 在本教程中 ...

  4. C#程序自动更新软件版本号

    最近因为服务器程序管理多,所以在查看服务器程序的时候,只能通过EXE的编译时间来判断服务器程序版本时间,费神伤身啊 现在想了一个方式,在目录下新增一个version文件,里面写上年月日,并且只是在程序 ...

  5. MognoDB3.4.2用户访问配置管理

    说在前面,官方文档似乎略有瑕疵. 说一下大规则:把绑定IP换成127.0.0.1IP之后,把security的authorization关闭掉做用户添加操作. 添加用户的方法必须是createUser ...

  6. linux常用命令合集(未完)

    (1)新建 新建文件夹:mkdir 文件夹名 新建文件:touch 文件路径/文件名 删除: rm –f filename删除文件 rm –rf filename删除文件夹 (2)重命名 1将一个名为 ...

  7. 使用ASP.NET SignalR实现一个简单的聊天室

    前言 距离我写上一篇博客已经又过了一年半载了,时间过得很快,一眨眼,就把人变得沧桑了许多.青春是短暂的,知识是无限的.要用短暂的青春,去学无穷无尽的知识,及时当勉励,岁月不待人.今天写个随笔小结记录一 ...

  8. CVE-2017-12149 JBOOS AS 6.X 反序列化漏洞利用

    检测目录: 返回500 一般就是存在了. 下载工具: http://scan.javasec.cn/java/JavaDeserH2HC.zip 使用方法: javac -cp .:commons-c ...

  9. 多层嵌套的json数据

    很多时候我们见到的json数据都是多层嵌套的,就像下面这般: {"name":"桔子桑", "sex":"男", , & ...

  10. windows下用C++修改本机IP地址

    两种方法 第一种.使用DOS命令(即时生效) 第二种.修改注册表(重启生效) 1.打开SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards ...