package entity;
import java.util.HashSet;
import java.util.Set;
public class Team
{
private String id;
private String teamName;
@SuppressWarnings("unchecked")
private Set students = new HashSet();
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getTeamName()
{
return teamName;
}
public void setTeamName(String teamName)
{
this.teamName = teamName;
}
@SuppressWarnings("unchecked")
public Set getStudents()
{
return students;
}
@SuppressWarnings("unchecked")
public void setStudents(Set students)
{
this.students = students;
}
}
package entity;
import java.util.HashSet;
import java.util.Set;
public class Student
{
private String id;
private String cardId;
private int age;
private String name;
private Set<Course> courses = new HashSet<Course>();
public Student()
{
}
public Student(String name, int age)
{
this.age = age;
this.name = name;
}
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public Set<Course> getCourses()
{
return courses;
}
public void setCourses(Set<Course> courses)
{
this.courses = courses;
}
public String getCardId()
{
return cardId;
}
public void setCardId(String cardId)
{
this.cardId = cardId;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
}
package entity;
import java.util.HashSet;
import java.util.Set;
public class Course
{
private String id;
private String name;
private Set<Student> students = new HashSet<Student>();
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public Set<Student> getStudents()
{
return students;
}
public void setStudents(Set<Student> students)
{
this.students = students;
}
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="entity.Team" table="team">
<id name="id" column="id" type="string">
<generator class="uuid"></generator>
</id>
<property name="teamName" column="teamName" type="string"></property>
<set name="students" inverse="true" lazy="true" cascade="all">
<key column="team_id"></key>
<one-to-many class="entity.Student"/>
</set>
</class>
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="entity.Student" table="student">
<id name="id" column="id" type="string">
<generator class="uuid"></generator>
</id>
<property name="name" column="name" type="string"></property>
<property name="cardId" column="cardId" type="string"></property>
<property name="age" column="age" type="int"></property>
<set name="courses" table="student_course" cascade="save-update">
<key column="stu_id"></key>
<many-to-many class="entity.Course" column="course_id">
</many-to-many>
</set>
</class>
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="entity.Course" table="course">
<id name="id" column="id" type="string">
<generator class="uuid"></generator>
</id>
<property name="name" column="name" type="string"></property>
<set name="students" table="student_course" cascade="save-update" inverse="true">
<key column="course_id"></key>
<many-to-many class="entity.Student" column="stu_id">
</many-to-many>
</set>
</class>
</hibernate-mapping>
package entity;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
/**
*
*
*
create table course (id varchar(255) not null, name varchar(255), primary key (id))
create table student (id varchar(255) not null, name varchar(255), cardId varchar(255), age integer, team_id varchar(255), primary key (id))
create table student_course (stu_id varchar(255) not null, course_id varchar(255) not null, primary key (stu_id, course_id))
create table team (id varchar(255) not null, teamName varchar(255), primary key (id))
alter table student add index FK8FFE823BC2CDC4C9 (team_id), add constraint FK8FFE823BC2CDC4C9 foreign key (team_id) references team (id)
alter table student_course add index FKB0A3729F7D75AAB2 (stu_id), add constraint FKB0A3729F7D75AAB2 foreign key (stu_id) references student (id)
alter table student_course add index FKB0A3729F8BE0B449 (course_id), add constraint FKB0A3729F8BE0B449 foreign key (course_id) references course (id)
*
*/
public class CreateTable
{
public static void main(String[] args)
{
SchemaExport export = new SchemaExport(new Configuration().configure());
export.create(true, true);
}
}
package entity;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class Test {
public static void main(String[] args) {
test3();
}
static void save () {
//课程
Course math = new Course();
math.setName("math");
Course english = new Course ();
english.setName("english");
Course chinese = new Course();
chinese.setName("chinese");
Course music = new Course ();
music.setName("music");
//学生
Student zhangsan = new Student ();
zhangsan.setName("zhangsan");
zhangsan.setCardId("111");
zhangsan.setAge(20);
Student lisi = new Student ();
lisi.setName("lisi");
lisi.setCardId("222");
lisi.setAge(21);
Student wangwu = new Student ();
wangwu.setName("wangwu");
wangwu.setAge(22);
wangwu.setCardId("333");
//班级
Team team1 = new Team ();
team1.setTeamName("team1");
Team team2 = new Team ();
team2.setTeamName("team2");
//关联
zhangsan.getCourses().add(math);
zhangsan.getCourses().add(music);
lisi.getCourses().add(math);
lisi.getCourses().add(chinese);
lisi.getCourses().add(english);
team1.getStudents().add(zhangsan);
team1.getStudents().add(wangwu);
team2.getStudents().add(lisi);
Session session = HibernateUtil.getSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
session.save(team1);
session.save(team2);
tx.commit();
}catch (Exception ex) {
ex.printStackTrace();
if (null != ex) {
tx.rollback();
}
}
}
static void test () {
Session session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
try {
tx = session.beginTransaction();
/*
* 如果查询的是整个类表示一个Student(from Student s)对象,否则就是离散的值
*/
Query query = session.createQuery("select s.name ,s.age from Student s");
List list = query.list();
for (int i = 0;i < list.size();i++) {
Object[] obj = (Object[])list.get (i);
System.out.println(obj[0]+":"+obj[1]);
}
tx.commit();
}catch (Exception ex) {
ex.printStackTrace();
if (null != ex) {
tx.rollback();
}
}
}
static void test2 () {
Session session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
try {
tx = session.beginTransaction();
Query query = session.createQuery("select new Student (s.name,s.age) from Student s");
List list = query.list();
for (int i = 0;i < list.size();i++) {
Student student = (Student)list.get(i);
System.out.println(student.getName()+":"+student.getAge());
}
/*
*会发送sql语句
*
*/
Student student2 = (Student) session.get(Student.class, "8a68a9583eef4170013eef4171c60002");
System.out.println("student2="+student2);
tx.commit();
}catch (Exception ex) {
ex.printStackTrace();
if (null != ex) {
tx.rollback();
}
}
}
//内连接
/**
*
*
*
*/
static void test3() {
Session session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
try {
tx = session.beginTransaction();
Query query = session.createQuery("from Team t inner join t.students s ");
List list = query.list();
for (int i = 0;i < list.size();i++) {
Object ob[] = (Object[])list.get(i);
Team team = (Team)ob[0];
Student stu = (Student)ob[1];
System.out.println(team.getId()+":"+stu.getId());
}
不会发送sql语句
Student student2 = (Student) session.get(Student.class, "8a68a9583eef4170013eef4171c60002");
System.out.println("student2="+student2);
tx.commit();}catch (Exception ex) {ex.printStackTrace();if (null != ex) {tx.rollback();}}}}
--------------------------------------------------------------------------------------------------------------
package entity;
import java.util.HashSet;
import java.util.Set;
public class Course
{
private String id;
private String name;
private Set<Student> students = new HashSet<Student>();
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public Set<Student> getStudents()
{
return students;
}
public void setStudents(Set<Student> students)
{
this.students = students;
}
}
package entity;
import java.util.HashSet;
import java.util.Set;
public class Student
{
private String id;
private String cardId;
private int age;
private String name;
private Set<Course> courses = new HashSet<Course>();
private Team team;
public Student()
{
}
public Student(String name, int age)
{
this.age = age;
this.name = name;
}
public Team getTeam() {
return team;
}
public void setTeam(Team team) {
this.team = team;
}
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public Set<Course> getCourses()
{
return courses;
}
public void setCourses(Set<Course> courses)
{
this.courses = courses;
}
public String getCardId()
{
return cardId;
}
public void setCardId(String cardId)
{
this.cardId = cardId;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
}
package entity;
import java.util.HashSet;
import java.util.Set;
public class Team
{
private String id;
private String teamName;
@SuppressWarnings("unchecked")
private Set students = new HashSet();
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getTeamName()
{
return teamName;
}
public void setTeamName(String teamName)
{
this.teamName = teamName;
}
@SuppressWarnings("unchecked")
public Set getStudents()
{
return students;
}
@SuppressWarnings("unchecked")
public void setStudents(Set students)
{
this.students = students;
}
}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="entity.Course" table="course">
<id name="id" column="id" type="string">
<generator class="uuid"></generator>
</id>
<property name="name" column="name" type="string"></property>
<set name="students" table="student_course" cascade="save-update" inverse="true">
<key column="course_id"></key>
<many-to-many class="entity.Student" column="stu_id">
</many-to-many>
</set>
</class>
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="entity.Student" table="student">
<id name="id" column="id" type="string">
<generator class="uuid"></generator>
</id>
<property name="name" column="name" type="string"></property>
<property name="cardId" column="cardId" type="string"></property>
<property name="age" column="age" type="int"></property>
<set name="courses" table="student_course" cascade="save-update">
<key column="stu_id"></key>
<many-to-many class="entity.Course" column="course_id">
</many-to-many>
</set>
<many-to-one name="team" class = "entity.Team" fetch = "select" column = "team_id"></many-to-one>
</class>
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="entity.Team" table="team">
<id name="id" column="id" type="string">
<generator class="uuid"></generator>
</id>
<property name="teamName" column="teamName" type="string"></property>
<set name="students" inverse="true" lazy="true" cascade="all">
<key column="team_id"></key>
<one-to-many class="entity.Student"/>
</set>
</class>
</hibernate-mapping>
package entity;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
/**
*
*
*
create table course (id varchar(255) not null, name varchar(255), primary key (id))
create table student (id varchar(255) not null, name varchar(255), cardId varchar(255), age integer, team_id varchar(255), primary key (id))
create table student_course (stu_id varchar(255) not null, course_id varchar(255) not null, primary key (stu_id, course_id))
create table team (id varchar(255) not null, teamName varchar(255), primary key (id))
alter table student add index FK8FFE823BC2CDC4C9 (team_id), add constraint FK8FFE823BC2CDC4C9 foreign key (team_id) references team (id)
alter table student_course add index FKB0A3729F7D75AAB2 (stu_id), add constraint FKB0A3729F7D75AAB2 foreign key (stu_id) references student (id)
alter table student_course add index FKB0A3729F8BE0B449 (course_id), add constraint FKB0A3729F8BE0B449 foreign key (course_id) references course (id)
*
*/
public class CreateTable
{
public static void main(String[] args)
{
SchemaExport export = new SchemaExport(new Configuration().configure());
export.create(true, true);
}
}
package entity;
import java.util.List;
import org.hibernate.Hibernate;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class Test {
public static void main(String[] args) {
test();
}
static void test () {
Session session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
try {
tx = session.beginTransaction();
/*第一种方式
Query query = session.createQuery("from Student s where s.team=:team and s.age <= 22");
query.setString("team", "8a68a9583eef4170013eef4171b70001");
List list = query.list();
*/
/*第二种方式
Team team = (Team)session.get(Team.class, "8a68a9583eef4170013eef4171b70001");
Query query = session.createQuery("from Student s where s.team=:team and s.age <= 22");
query.setParameter("team", team,Hibernate.entity(Team.class));
List list = query.list();
*/
/*第三种方式
*
* Team team = (Team)session.get(Team.class, "8a68a9583eef4170013eef4171b70001");
Query query = session.createQuery("from Student s where s.team=:team and s.age <= 22");
query.setEntity("team", team);
List list = query.list();
*/
Team team = (Team)session.get(Team.class, "8a68a9583eef4170013eef4171b70001");
Query query = session.createFilter(team.getStudents(), "where age < 22");
List list = query.list();
for (int i = 0;i < list.size();i++) {
Student student = (Student) list.get(i);
System.out.println(student.getName());
}
tx.commit();
}catch (Exception ex) {
ex.printStackTrace();
if (null != ex) {
tx.rollback();
}
}
}
}
package entity;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
public class Test2 {
public static void main(String[] args) {
test4 ();
}
public static void test () {
Session session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
try {
Criteria criteria = session.createCriteria(Student.class).add(Restrictions.between("age", 20, 22));
List list = criteria.list();
for (int i = 0;i < list.size();i++) {
Student student = (Student) list.get(i);
System.out.println(student.getName());
}
tx.commit();
}catch (Exception ex) {
ex.printStackTrace();
if (null != ex) {
tx.rollback();
}
}
}
public static void test2 () {
Session session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
try {
Criteria criteria = session.createCriteria(Student.class).add(Restrictions.like("name", "z%"));
List list = criteria.list();
for (int i = 0;i < list.size();i++) {
Student student = (Student) list.get(i);
System.out.println(student.getName());
}
tx.commit();
}catch (Exception ex) {
ex.printStackTrace();
if (null != ex) {
tx.rollback();
}
}
}
public static void test3 () {
Session session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
try {
String name[] = {"zhangsan","lisi"};
Criteria criteria = session.createCriteria(Student.class).add(Restrictions.in("name", name));
List list = criteria.list();
for (int i = 0;i < list.size();i++) {
Student student = (Student) list.get(i);
System.out.println(student.getName());
}
tx.commit();
}catch (Exception ex) {
ex.printStackTrace();
if (null != ex) {
tx.rollback();
}
}
}
public static void test4 () {
Session session = HibernateUtil.getSession();
Transaction tx = session.beginTransaction();
try {
Criteria criteria = session.createCriteria(Student.class).addOrder(Order.desc("age"));
List list = criteria.list();
for (int i = 0;i < list.size();i++) {
Student student = (Student) list.get(i);
System.out.println(student.getName()+":"+student.getAge());
}
tx.commit();
}catch (Exception ex) {
ex.printStackTrace();
if (null != ex) {
tx.rollback();
}
}
}
}