Hibernate 单向一对多配置以及增删改查
来源:互联网 发布:网络劫持原理 编辑:程序博客网 时间:2024/04/28 14:57
Hibernate 单向一对多配置以及增删改查
先定义一个班级类:
public class Grade {private int gid;private String gname;private String gdesc;private Set<Students> set = new HashSet<Students>();public Grade() {}public Grade(int gid, String gname, String gdesc) {super();this.gid = gid;this.gname = gname;this.gdesc = gdesc;}public Grade(String gname, String gdesc) {super();this.gname = gname;this.gdesc = gdesc;}public int getGid() {return gid;}public void setGid(int gid) {this.gid = gid;}public String getGname() {return gname;}public void setGname(String gname) {this.gname = gname;}public String getGdesc() {return gdesc;}public void setGdesc(String gdesc) {this.gdesc = gdesc;}@Overridepublic String toString() {return "Grade [gid=" + gid + ", gname=" + gname + ", gdesc=" + gdesc+ "]";}public Set<Students> getSet() {return set;}public void setSet(Set<Students> set) {this.set = set;}}
定义Grade.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- Generated May 24, 2016 4:29:13 PM by Hibernate Tools 3.4.0.CR1 --><hibernate-mapping> <class name="Grade" table="GRADE"> <id name="gid" type="int"> <column name="GID" /> <generator class="increment" /> </id> <property name="gname" type="java.lang.String"> <column name="GNAME" /> </property> <property name="gdesc" type="java.lang.String"> <column name="GDESC" /> </property> <set name="set" table="STUDENTS" inverse="false" lazy="true"> <key> <column name="GID" /> </key> <one-to-many class="Students" /> </set> </class></hibernate-mapping>
定义学生类:
public class Students {private int sid;private String Sname;private String gender;public Students() {}public Students(int sid, String sname, String gender) {super();this.sid = sid;Sname = sname;this.gender = gender;}public Students(String sname, String gender) {super();Sname = sname;this.gender = gender;}public int getSid() {return sid;}public void setSid(int sid) {this.sid = sid;}public String getSname() {return Sname;}public void setSname(String sname) {Sname = sname;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}@Overridepublic String toString() {return "Students [sid=" + sid + ", Sname=" + Sname + ", gender="+ gender + "]";}}定义:Students.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><!-- Generated May 24, 2016 4:29:13 PM by Hibernate Tools 3.4.0.CR1 --><hibernate-mapping> <class name="Students" table="STUDENTS"> <id name="sid" type="int"> <column name="SID" /> <generator class="increment" /> </id> <property name="Sname" type="java.lang.String"> <column name="SNAME" /> </property> <property name="gender" type="java.lang.String"> <column name="GENDER" /> </property> </class></hibernate-mapping>
测试类:
import static org.junit.Assert.*;import java.sql.Connection;import java.sql.SQLException;import java.util.Date;import java.util.Iterator;import java.util.Set;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.jdbc.Work;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;import org.junit.After;import org.junit.Before;import org.junit.Test;import com.yonyou.hibernateentity.Grade;import com.yonyou.hibernateentity.Students;import com.yonyou.hibernateutil.HibernateUtil;public class TestStudents {@Testpublic void testAdd() {Grade grade = new Grade("java一班", "java软件一班");Students stu = new Students("张三", "男");Students stu2 = new Students("李四", "女");grade.getSet().add(stu);grade.getSet().add(stu2);Session session = HibernateUtil.getSession();Transaction transaction = session.beginTransaction();session.save(grade);session.save(stu);session.save(stu2);transaction.commit();HibernateUtil.closeSession(session);}/** * 获取gid=1的班级和班级所有学生。 */@Testpublic void testget() {Session session = HibernateUtil.getSession();Grade grade = (Grade) session.get(Grade.class, 1);System.out.println(grade);Set<Students> set = grade.getSet();for (Iterator iterator = set.iterator(); iterator.hasNext();) {Students students = (Students) iterator.next();System.out.println(students);}}/** * 添加一个软件二班,更新sid=1的学生到软件二班 */@Testpublic void testupdate() {Session session = HibernateUtil.getSession();Transaction tr = session.beginTransaction();Students stu = (Students) session.get(Students.class, 1);Grade grade = new Grade("java二班", "java软件二班");grade.getSet().add(stu);session.save(grade);tr.commit();HibernateUtil.closeSession(session);}/** * 添加一个软件二班,更新sid=1的学生到软件二班 */@Testpublic void testdelete() {Session session = HibernateUtil.getSession();Transaction tr = session.beginTransaction();//Students stu = (Students) session.get(Students.class, 2);//session.delete(stu);Grade stu = (Grade) session.get(Grade.class, 2);session.delete(stu);tr.commit();HibernateUtil.closeSession(session);}}hibernateUtil:
import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;public class HibernateUtil { private static SessionFactory sessionFactory; private static Session session; static { // 创建配置对象 Configuration config = new Configuration().configure(); // 创建服务注册对象 ServiceRegistry registry = new ServiceRegistryBuilder().applySettings( config.getProperties()).buildServiceRegistry(); // 创建会话工厂对象 sessionFactory = config.buildSessionFactory(registry); // 创建会话对象 session = sessionFactory.openSession(); } public static SessionFactory getSessionFactory() { return sessionFactory; } public static Session getSession() { session = sessionFactory.openSession(); return session; } public static void closeSession(Session session) { if (session != null) { session.close(); } }}
主配置文件hibernate.cfg.xml:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><property name="connection.username">root</property><property name="connection.password">123456</property><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="connection.url">jdbc:mysql://10.115.0.223:3306/hibernate?useUnicode=true&characterEncoding=UTF-8</property><property name="dialect">org.hibernate.dialect.MySQLDialect</property><property name="show_sql">true</property><property name="format_sql">false</property><property name="hbm2ddl.auto">update</property><!-- <property name="default_schema">hibernate</property> --><mapping resource="Students.hbm.xml" /><mapping resource="Grade.hbm.xml" /></session-factory></hibernate-configuration>
以上配置,是由一端控制多端的增加,更改,删除的。
0 0
- Hibernate 单向一对多配置以及增删改查
- Hibernate一对多增删改查
- Hibernate一对多增删改查
- hibernate一对多增删改查
- Hibernate关系映射---单向一对多curd(增删查改)操作实例
- Hibernate配置以及增删改查实现
- Hibernate关系映射---双向一对多增删查改实例
- hibernate多对多关系配置--增删改查
- hibernate 一对多 多对一 关系表 增删改查大礼包ps二级查也有
- hibernate 一对多 一对一 ,多方与一方增删改查测试结果
- Hibernate 一对多关联映射对象 级联增删改查示例
- Hibernate关系映射---单向多对多增删查改实例
- Hibernate(四)单向多对一映射下的增删改查
- Hibernate单向多对一映射下的增删改查
- Hibernate(四)单向多对一映射下的增删改查
- Hibernate关系映射---单向多对一增删查改实例
- django数据库操作-增删改查-多对多关系以及一对多(外键)关系
- django数据库操作-增删改查-多对多关系以及一对多(外键)关系
- Java小程序:辗除法求两个正整数最大公约数和最小公倍数
- AngularJs学习笔记(二) 指令directive
- 【IE Cache】IE浏览器造成的请求Cache问题 的解决方案
- 安卓动态调试七种武器之长生剑 - Smali Instrumentation
- Android 判断SD卡是否存在及容量查询
- Hibernate 单向一对多配置以及增删改查
- 剑指Offer——把二叉树打印成多行
- 韩顺平Spring框架学习,学习笔记(八)
- 内存中常见异常值的解释(比如0xcccccccc、0xcdcdcdcd和 0xfeeefeee 异常值 )
- Android 属性系统分析
- hihoCoder 1061 Beautiful String
- Ignatius and the Princess IV
- 自定义ViewGroup---点击控件时水波纹效果
- hdu 1754(i hate it)