- 浏览: 135152 次
文章分类
最新评论
-
wangyudong:
很有帮助的代码实例,测试Spring Boot REST AP ...
1、springboot入门案例helloworld与集成hibernate -
wangyudong:
学习了,的确是一个非常好的Spring boot实例,很快就写 ...
1、springboot入门案例helloworld与集成hibernate
pom.xml
hibernate.cfg.xml
一对一,方案一使用主从关系,从表id生成依赖主表id
一对一 方案二:从表创建一个外键
多对一
一对多
多对多 方案一
多对多 方案二:分成两个一对多
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.chen</groupId> <artifactId>hibernate_demo01</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <build/> <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>3.6.10.Final</version> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.18.1-GA</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.34</version> </dependency> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency> </dependencies> </project>
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="show_sql">true</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <property name="hibernate.connection.pool.size">20</property> <property name="connection.characterEncoding">utf8</property> <property name="current_session_context_class">thread</property> <mapping class="com.chen.pojo.Teacher"/> <mapping class="com.chen.pojo.Course"/> <mapping class="com.chen.pojo.TeacherRelCourse"/> </session-factory> </hibernate-configuration>
一对一,方案一使用主从关系,从表id生成依赖主表id
主表 package com.chen.pojo; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToOne; import javax.persistence.PrimaryKeyJoinColumn; import javax.persistence.Table; @Table(name="t_person") @Entity public class Person { private Long id ; private String name ; private Idcard idcard; @Id @GeneratedValue @Column(name="id") public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Column(name="name") public String getName() { return name; } public void setName(String name) { this.name = name; } @OneToOne @PrimaryKeyJoinColumn public Idcard getIdcard() { return idcard; } public void setIdcard(Idcard idcard) { this.idcard = idcard; } } 从表 package com.chen.pojo; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToOne; import javax.persistence.Table; import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Parameter; @Table(name="t_idcard") @Entity public class Idcard { private Long id ; private String name ; private Person person ; @Id @GenericGenerator(name="pkGenerator",strategy="foreign",parameters={@Parameter(name="property",value="person")}) @GeneratedValue(generator="pkGenerator") @Column(name="id") public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Column(name="name") public String getName() { return name; } public void setName(String name) { this.name = name; } @OneToOne(targetEntity=Person.class,mappedBy="idcard") public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } } 测试案例 package com.chen.test; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.AnnotationConfiguration; import org.junit.Test; import com.chen.pojo.Idcard; import com.chen.pojo.Person; public class One2OneDemo1 { private SessionFactory sessionFactory ; public One2OneDemo1() { if(sessionFactory==null){ sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); } } @Test public void test1(){ Session session = sessionFactory.openSession(); Transaction tr = session.beginTransaction(); Idcard idcard = new Idcard(); idcard.setName("idcard"); Person p = new Person(); p.setName("chen"); p.setIdcard(idcard); idcard.setPerson(p); session.save(p); session.save(idcard); tr.commit(); session.close(); } @Test public void test2(){ Session s = sessionFactory.openSession(); Transaction tr = s.beginTransaction(); Person p = (Person) s.get(Person.class, 4L); System.out.println(p.getName()+" "+p.getId()+" "+p.getIdcard().getName()); tr.commit(); s.close(); } }
一对一 方案二:从表创建一个外键
主表 package com.chen.pojo; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Table(name="t_husband") @Entity public class Husband { private Long id ; private String name ; @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="id") public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Column(name="name") public String getName() { return name; } public void setName(String name) { this.name = name; } } 从表 package com.chen.pojo; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToOne; import javax.persistence.Table; @Table(name="t_wife") @Entity public class Wife { private Long id ; private Husband husband ; private String name ; @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="id") public Long getId() { return id; } public void setId(Long id) { this.id = id; } @OneToOne(fetch=FetchType.LAZY) @JoinColumn(name="h_id") public Husband getHusband() { return husband; } public void setHusband(Husband husband) { this.husband = husband; } @Column(name="name") public String getName() { return name; } public void setName(String name) { this.name = name; } } 测试案例 package com.chen.test; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.AnnotationConfiguration; import org.junit.Test; import com.chen.pojo.Husband; import com.chen.pojo.Wife; public class One2OneDemo2 { private SessionFactory sessionFactory ; public One2OneDemo2() { if(sessionFactory==null){ sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); } } @Test public void test1(){ Session s = sessionFactory.openSession(); Transaction tr = s.beginTransaction(); Husband h = new Husband(); h.setName("husband"); Wife w = new Wife(); w.setName("wife"); w.setHusband(h); s.save(h); s.save(w); tr.commit(); s.close(); } @Test public void test2(){ Session s = sessionFactory.openSession(); Wife w = (Wife) s.get(Wife.class,1L); System.out.println(w.getName()+" "+w.getHusband().getName()); s.close(); } }
多对一
一 package com.chen.pojo; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Table(name="t_temp_department") @Entity public class Department { private Long id ; private String departmentName ; @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="id") public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Column(name="department_name") public String getDepartmentName() { return departmentName; } public void setDepartmentName(String departmentName) { this.departmentName = departmentName; } } 多 方表 package com.chen.pojo; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToOne; import javax.persistence.Table; @Table(name="t_employee") @Entity public class Employee { private Long id ; private String name ; private Department department; @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="id") public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Column(name="name") public String getName() { return name; } public void setName(String name) { this.name = name; } @ManyToOne(targetEntity=Department.class) public Department getDepartment() { return department; } public void setDepartment(Department department) { this.department = department; } } 测试案例 package com.chen.test; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.AnnotationConfiguration; import org.junit.Test; import com.chen.pojo.Department; import com.chen.pojo.Employee; public class Many2OneDemo1 { private SessionFactory sessionFactory ; public Many2OneDemo1() { if(sessionFactory==null){ sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); } } @Test public void test1(){ Session session = sessionFactory.openSession(); Department department = new Department(); department.setDepartmentName("department_2"); Employee emp = new Employee(); emp.setName("emp_2"); emp.setDepartment(department); Transaction tr = session.beginTransaction(); session.save(emp); session.save(department); tr.commit(); session.close(); } @Test public void test2(){ Session session = sessionFactory.openSession(); String hql = "from Employee t where t.id=1"; Query query = session.createQuery(hql); List<Employee> list =(List<Employee>)query.list(); for(Employee e : list){ System.out.println(e.getName()+" "+e.getDepartment().getDepartmentName()); } session.close(); } }
一对多
一 package com.chen.pojo; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import javax.persistence.Table; @Table(name="t_temp_department") @Entity public class Department2 { private Long id ; private String departmentName ; private Set<Employee2> emps; @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="id") public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Column(name="department_name") public String getDepartmentName() { return departmentName; } public void setDepartmentName(String departmentName) { this.departmentName = departmentName; } @OneToMany(targetEntity=Employee2.class) @JoinColumn(name="department_id") public Set<Employee2> getEmps() { return emps; } public void setEmps(Set<Employee2> emps) { this.emps = emps; } } 多 方表 package com.chen.pojo; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Table(name="t_employee") @Entity public class Employee2 { private Long id ; private String name ; @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="id") public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Column(name="name") public String getName() { return name; } public void setName(String name) { this.name = name; } } 测试案例 package com.chen.test; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.AnnotationConfiguration; import org.junit.Test; import com.chen.pojo.Department2; public class One2ManyDemo1 { private SessionFactory sessionFactory ; public One2ManyDemo1() { if(sessionFactory==null){ sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); } } @Test public void test1(){ Session session = sessionFactory.openSession(); String hql = "from Department2 t where t.id=1"; Query query = session.createQuery(hql); List<Department2> list =(List<Department2>)query.list(); for(Department2 d : list){ System.out.println(d.getDepartmentName()+" "+d.getEmps().size()); } session.close(); } }
多对多 方案一
package com.chen.pojo; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToMany; import javax.persistence.Table; @Table(name="t_admin") @Entity public class Admin { private Long id ; private String name ; private Set<Role> roles ; @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="id") public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Column(name="name") public String getName() { return name; } public void setName(String name) { this.name = name; } @ManyToMany(mappedBy="admins") public Set<Role> getRoles() { return roles; } public void setRoles(Set<Role> roles) { this.roles = roles; } } package com.chen.pojo; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.ManyToMany; import javax.persistence.Table; @Table(name="t_role") @Entity public class Role { private Long id ; private String name ; private Set<Admin> admins; @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="id") public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Column(name="name") public String getName() { return name; } public void setName(String name) { this.name = name; } @ManyToMany @JoinTable(name="t_role_admin",joinColumns={@JoinColumn(name="r_id")}, inverseJoinColumns={@JoinColumn(name="a_id")}) public Set<Admin> getAdmins() { return admins; } public void setAdmins(Set<Admin> admins) { this.admins = admins; } } 测试案例 package com.chen.test; import java.util.HashSet; import java.util.Set; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.AnnotationConfiguration; import org.junit.Test; import com.chen.pojo.Admin; import com.chen.pojo.Role; public class Many2ManyDemo1 { private SessionFactory sessionFactory ; public Many2ManyDemo1() { if(sessionFactory==null){ sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); } } @Test public void test1(){ Set<Admin> sets1 = new HashSet<Admin>(); Set<Admin> sets2 = new HashSet<Admin>(); Session s = sessionFactory.openSession(); Transaction tr = s.beginTransaction(); Admin a1 = new Admin(); a1.setName("name1"); sets1.add(a1); sets2.add(a1); Admin a2 = new Admin(); a2.setName("name2"); sets2.add(a2); Role r1 = new Role(); r1.setName("role1"); Role r2 = new Role(); r2.setName("role2"); r1.setAdmins(sets1); r2.setAdmins(sets2); s.save(a1); s.save(a2); s.save(r1); s.save(r2); tr.commit(); s.close(); } }
多对多 方案二:分成两个一对多
一表1 package com.chen.pojo; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; import org.hibernate.annotations.LazyCollection; import org.hibernate.annotations.LazyCollectionOption; @Table(name="t_teacher") @Entity public class Teacher { private Long id ; private String name ; private Set<TeacherRelCourse> coursRels; @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="id") public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Column(name="name") public String getName() { return name; } public void setName(String name) { this.name = name; } @OneToMany(mappedBy="teacher") @LazyCollection(LazyCollectionOption.EXTRA) public Set<TeacherRelCourse> getCoursRels() { return coursRels; } public void setCoursRels(Set<TeacherRelCourse> coursRels) { this.coursRels = coursRels; } } 一表2 package com.chen.pojo; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; import org.hibernate.annotations.LazyCollection; import org.hibernate.annotations.LazyCollectionOption; @Table(name="t_course") @Entity public class Course { private Long id ; private String name ; private Set<TeacherRelCourse> teacherRels; @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="id") public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Column(name="name") public String getName() { return name; } public void setName(String name) { this.name = name; } @OneToMany(mappedBy="course") @LazyCollection(LazyCollectionOption.EXTRA) public Set<TeacherRelCourse> getTeacherRels() { return teacherRels; } public void setTeacherRels(Set<TeacherRelCourse> teacherRels) { this.teacherRels = teacherRels; } } 多 方表 package com.chen.pojo; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; @Table(name="t_teacher_course") @Entity public class TeacherRelCourse { private Long id ; private Teacher teacher; private Course course; @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="id") public Long getId() { return id; } public void setId(Long id) { this.id = id; } @ManyToOne @JoinColumn(name="t_id") public Teacher getTeacher() { return teacher; } public void setTeacher(Teacher teacher) { this.teacher = teacher; } @ManyToOne @JoinColumn(name="c_id") public Course getCourse() { return course; } public void setCourse(Course course) { this.course = course; } } 测试案例 package com.chen.test; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.classic.Session; import org.junit.Test; import com.chen.pojo.Course; import com.chen.pojo.Teacher; import com.chen.pojo.TeacherRelCourse; public class Many2ManyDemo2 { private SessionFactory sessionFactory ; public Many2ManyDemo2() { if(sessionFactory==null){ sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); } } @Test public void test1(){ Session s = sessionFactory.openSession(); Transaction tr = s.beginTransaction(); TeacherRelCourse tc1 = new TeacherRelCourse(); TeacherRelCourse tc2 = new TeacherRelCourse(); TeacherRelCourse tc3 = new TeacherRelCourse(); Teacher t1 = new Teacher(); t1.setName("teacher1"); tc1.setTeacher(t1); Teacher t2 = new Teacher(); t2.setName("teacher2"); tc2.setTeacher(t2); tc3.setTeacher(t2); Course c1 = new Course(); c1.setName("course1"); tc1.setCourse(c1); tc2.setCourse(c1); Course c2 = new Course(); c2.setName("course2"); tc3.setCourse(c2); s.save(t1); s.save(t2); s.save(c1); s.save(c2); s.save(tc1); s.save(tc2); s.save(tc3); tr.commit(); s.close(); } @Test public void test2(){ Session s = sessionFactory.openSession(); Teacher t1 = (Teacher)s.get(Teacher.class,1L); System.out.println(t1.getName()+" "+t1.getCoursRels().size()); for(TeacherRelCourse obj : t1.getCoursRels()){ System.out.println(obj.getCourse().getName()); } s.close(); } @Test public void test3(){ Session s = sessionFactory.openSession(); Teacher t1 = (Teacher)s.get(Teacher.class,2L); System.out.println(t1.getName()+" "+t1.getCoursRels().size()); for(TeacherRelCourse obj : t1.getCoursRels()){ System.out.println(obj.getCourse().getName()); } s.close(); } }
发表评论
-
spring data jpa简单案例
2016-03-29 10:16 650pom.xml <project xmlns=&qu ... -
mybatis入门示例传智燕青讲解二----高级映射和二级缓存及整合spring及反向工程
2016-03-15 10:00 794二级缓存及高级映射 sqlMapConfig.xml &l ... -
mybatis入门示例传智燕青讲解一
2016-03-11 15:51 2057示例一:增删改查 sqlMap ... -
mybatis入门案例
2016-03-10 14:41 470sqlMapConfiger.xml <?xml v ... -
spring3+mybatis整合案例
2016-02-19 11:21 661pom.xml <project xmlns=&qu ... -
springmvc+hibernate4搭建案例
2016-02-17 09:58 855pom.xml <project xmlns=&qu ... -
hibernate和mybatis比较
2016-01-07 15:13 1194Hibernate简介 Hibernate对数据库结构提供了较 ... -
mybaits简述及原理概述
2016-01-07 11:40 3007Mybatis是一个基于Java的持久层框架。 MyBati ... -
hibernate基本原理
2016-01-04 17:38 2960hibernate是一个基于ORM的持久化框架。它是对jdbc ... -
springmvc与struts2比较
2015-12-30 17:31 802springmvc与struts2比较 1、springmvc ... -
Struts2简述及工作原理
2015-12-30 11:14 10262Struts2是实现MVC(Model-View-Contro ... -
springmvc学习总结01---简述及原理模型
2015-12-28 17:38 13621、用户发起request请求至控制器(Controlle ... -
Spring框架学习总结01----Spring简述
2015-12-28 10:30 1880学习Spring之前,首先要 ... -
spring3.0.7中各个jar包的作用总结
2015-12-28 09:25 900org.springframework.context-3.0 ... -
springmvc非注解方式
2015-11-05 21:36 824springmvc 模型原理 springmvc. ...
相关推荐
Hibernate关于注解的一对多,多对多,一对一案例。。。。
Hibernate 的注解学习 ExportDBAnnotation HibernateAnnotationUtils 【一对一】关系映射【一对多】关系映射 【多对多】关系映射 【composite复合主键】关系映射【component组件】关系映射
一个完成了hibernate的注解和配置的简单案例;这是一个一对多【多对一】的案例,其实一对多的案例就可以解决项目中的大部分需求。因为多对多可以一般我们转化为两个多对一的案例;
7.2.1 一对多关联 7.2.2 多对多关联 7.2.3 把列添加到联结表 7.2.4 映射map 7.3 多态关联 7.3.1 多态的多对一关联 7.3.2 多态集合 7.3.3 对联合的多态关联 7.3.4 每个具体类一张...
这个资源在去年发布了第一版,已经有很多朋友下了觉得对他们有帮助,所以我才再发了一个第二版,希望对有需要的朋友有所帮助。本版本全面更新了jar包,全部使用了当前最新版本的jar包,struct2.1.8 spring3 ...
这个资源在去年发布了第一版,已经有很多朋友下了觉得对他们有帮助,所以我才再发了一个第二版,希望对有需要的朋友有所帮助。本版本全面更新了jar包,全部使用了当前最新版本的jar包,struct2.1.8 spring3 ...
这个资源在去年发布了第一版,已经有很多朋友下了觉得对他们有帮助,所以我才再发了一个第二版,希望对有需要的朋友有所帮助。本版本全面更新了jar包,全部使用了当前最新版本的jar包,struct2.1.8 spring3 ...
这个资源在去年发布了第一版,已经有很多朋友下了觉得对他们有帮助,所以我才再发了一个第二版,希望对有需要的朋友有所帮助。本版本全面更新了jar包,全部使用了当前最新版本的jar包,struct2.1.8 spring3 ...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...
4 Mybati数据库DAO层采用的是Mapper代理开发方法,输入映射采用的是POJO包装类型实现,输出映射采用了resultMap类型,实现了数据库多对一映射。 5 spring容器内部使用拦截器,以Spring AOP的方式实现事务控制管理。
9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. 选择一...
9.9.1. 对一个特定的 DataSource 使用了错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 11.1.1. 选择一种...
{4.3}贪吃蛇案例}{82}{section.4.3} {4.4}散列表与HashMap}{83}{section.4.4} {4.4.1}java.util.HashMap}{83}{subsection.4.4.1} {4.5}\ttfamily java.util.HashSet}{84}{section.4.5} {4.6}泛型}{84}{section....