hibernate正向生成数据库表以及配置——TestStu.java

简介: hibernate正向生成数据库表以及配置——TestStu.java

package cn.bdqn.studentInfo.test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import cn.bdqn.studentInfo.entity.Student;
import cn.bdqn.studentInfo.entity.Teacher;

/**

  • 测试类
  • @author Administrator

*
*/
public class testStu {


private Configuration conf=null;
private SessionFactory sessionFac=null;
private Session session=null;
private Transaction tx=null;


/**
 * 正向创建数据表
 */
@Test
public void createDB(){
    Configuration conf=new Configuration()
                            .configure();
    SchemaExport export =new SchemaExport(conf);
    export.create(true, true);
}
/**
 * 测试
 */
@Test
public void testMethod(){
    Session session=new Configuration().configure().buildSessionFactory().openSession();
    Transaction tx=session.beginTransaction();
    try{
    //创建两个学生对象
    Student student1=new Student();
    student1.setName("张同学");
    student1.setId(9);
    
    Student student2=new Student();
    student2.setName("王同学");
    student2.setId(10);
    //创建两个老师对象
    Teacher teacher1=new Teacher();
    teacher1.setId(9);
    teacher1.setName("武老师");
    
    Teacher teacher2=new Teacher();
    teacher2.setId(10);
    teacher2.setName("程老师");
    
    /**
     * 关联双方的关系
     */
    
    //告诉张同学,武老师和程老师都带着你的课
    student1.getTeachers().add(teacher1);
    student1.getTeachers().add(teacher2);
    //告诉王同学,武老师和程老师都带着你的课
    student2.getTeachers().add(teacher1);
    student2.getTeachers().add(teacher2);
    //告诉武老师,你现在带着王、张同学的课
    teacher1.getStudents().add(student1);
    teacher1.getStudents().add(student2);
    //告诉程老师,你现在带着王、张同学的课
    teacher2.getStudents().add(student1);
    teacher2.getStudents().add(student2);
    //添加
    session.save(student1);
    session.save(student2);
    /*session.save(teacher1);
    session.save(teacher2);*/
    tx.commit();
    }catch (Exception e) {
        tx.rollback();//添加失败时,进行回滚
        e.printStackTrace();
    }
    
}

/**
 * 关闭session
 */
@After
public void closeSession(){
    if(session!=null){
        session.close();
    }
}

}

目录
相关文章
|
4月前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——TestStu.java
hibernate正向生成数据库表以及配置——TestStu.java
|
4月前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——Teacher.hbm.xml
hibernate正向生成数据库表以及配置——Teacher.hbm.xml
|
1月前
|
SQL Java 数据库连接
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。通过映射机制,它可以自动处理对象与数据库表之间的转换,支持主流数据库,提高了代码的可移植性和可维护性。其核心接口包括 SessionFactory、Session 和 Transaction 等,通过它们可以执行数据库的 CRUD 操作。配置方面,需在项目中引入 Hibernate 及数据库驱动依赖,并创建 `hibernate.cfg.xml` 配置文件来设置数据库连接和 Hibernate 行为参数。
29 1
|
20天前
|
Java 数据库连接 数据库
告别繁琐 SQL!Hibernate 入门指南带你轻松玩转 ORM,解锁高效数据库操作新姿势
【8月更文挑战第31天】Hibernate 是一款流行的 Java 持久层框架,简化了对象关系映射(ORM)过程,使开发者能以面向对象的方式进行数据持久化操作而无需直接编写 SQL 语句。本文提供 Hibernate 入门指南,介绍核心概念及示例代码,涵盖依赖引入、配置文件设置、实体类定义、工具类构建及基本 CRUD 操作。通过学习,你将掌握使用 Hibernate 简化数据持久化的技巧,为实际项目应用打下基础。
40 0
|
20天前
|
Java 数据库连接 数据库
AI 时代风起云涌,Hibernate 实体映射引领数据库高效之路,最佳实践与陷阱全解析!
【8月更文挑战第31天】Hibernate 是一款强大的 Java 持久化框架,可将 Java 对象映射到关系数据库表中。本文通过代码示例详细介绍了 Hibernate 实体映射的最佳实践,包括合理使用关联映射(如 `@OneToMany` 和 `@ManyToOne`)以及正确处理继承关系(如单表继承)。此外,还探讨了常见陷阱,例如循环依赖可能导致的无限递归问题,并提供了使用 `@JsonIgnore` 等注解来避免此类问题的方法。通过遵循这些最佳实践,可以显著提升开发效率和数据库操作性能。
44 0
|
20天前
|
API Java 数据库连接
从平凡到卓越:Hibernate Criteria API 让你的数据库查询瞬间高大上,彻底告别复杂SQL!
【8月更文挑战第31天】构建复杂查询是数据库应用开发中的常见需求。Hibernate 的 Criteria API 以其强大和灵活的特点,允许开发者以面向对象的方式构建查询逻辑,同时具备 SQL 的表达力。本文将介绍 Criteria API 的基本用法并通过示例展示其实际应用。此 API 通过 API 构建查询条件而非直接编写查询语句,提高了代码的可读性和安全性。无论是简单的条件过滤还是复杂的分页和连接查询,Criteria API 均能胜任,有助于提升开发效率和应用的健壮性。
37 0
|
20天前
|
数据库 关系型数据库 MySQL
惊!Hibernate与MySQL的绝密优化技巧大揭秘,让你的数据库飞起来!
【8月更文挑战第31天】在企业应用开发中,结合使用持久层框架Hibernate与数据库管理系统MySQL可显著提升数据库交互效率。本文探讨了多项优化策略,包括配置二级缓存、采用单向关联减少JOIN操作、优化HQL查询语句以及合理使用MySQL索引。通过具体示例,文章详细讲解了如何实施这些优化措施,以期为企业应用提供更高效稳定的数据支持。
31 0
|
20天前
|
数据库 开发者 Java
Hibernate映射注解的魔力:实体类配置的革命,让你的代码量瞬间蒸发!
【8月更文挑战第31天】Hibernate 是一款出色的对象关系映射框架,简化了 Java 应用与数据库的交互。其映射注解让实体类配置变得直观简洁。本文深入剖析核心概念与使用技巧,通过示例展示如何简化配置。
23 0
|
2月前
|
SQL 缓存 Java
使用Hibernate实现复杂数据库查询优化策略
使用Hibernate实现复杂数据库查询优化策略
|
2月前
|
SQL 缓存 Java
使用Hibernate实现复杂数据库查询优化策略
使用Hibernate实现复杂数据库查询优化策略