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();
    }
  }
}


目录
相关文章
|
9天前
|
Oracle 关系型数据库 数据库
实时计算 Flink版产品使用合集之用于实时同步整个数据库时,该如何配置DB2
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
32 5
|
9天前
|
Java 程序员 Windows
【Java知识点详解 10】为何要配置环境变量,35岁老年程序员的绝地翻身之路
【Java知识点详解 10】为何要配置环境变量,35岁老年程序员的绝地翻身之路
|
2天前
|
安全 关系型数据库 API
Nuxt3 实战 (七):配置 Supabase 数据库
这篇文章介绍了如何为Nuxt项目集成Supabase数据库。文章首先阐述了选择Supabase作为Nuxt项目的数据库的理由,包括其良好的网络评价、与Nuxt的良好集成以及对用户认证和身份鉴权的支持。接着,文章详细介绍了Supabase的特点,如使用PostgreSQL作为数据库、提供完整的认证系统、支持实时数据同步和提供对象存储服务等。然后,文章指导读者如何在Nuxt项目中安装和配置Supabase,包括设置重定向策略和获取数据库访问密钥。最后,文章强调了在开发环境和生产环境中使用不同密钥的重要性。
Nuxt3 实战 (七):配置 Supabase 数据库
|
2天前
|
SQL Java 关系型数据库
JavaWeb(JDBC编程)看这一篇就够了 —— 如何使用Java操作mysql数据库
JavaWeb(JDBC编程)看这一篇就够了 —— 如何使用Java操作mysql数据库
7 0
|
2天前
|
SQL Java 关系型数据库
Java之JDBC数据库编程
Java之JDBC数据库编程
11 2
|
8天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之可以通过配置Oracle数据库的schema注册表来监测表结构的变化吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
17 1
|
10天前
|
Java 关系型数据库 MySQL
MySql数据库级别MD5加密java MD5加密解密工具包
MySql数据库级别MD5加密java MD5加密解密工具包
|
11天前
|
SQL Java 数据库连接
Java一分钟之-JDBC:Java数据库连接基础
【5月更文挑战第14天】JDBC是Java与关系数据库交互的API,常见问题包括资源管理、SQL注入和性能优化。易错点涉及驱动加载、空指针异常和事务管理。避免这些问题的方法有使用try-with-resources自动关闭资源、预编译PreparedStatement以防止SQL注入,以及正确管理事务。示例代码展示了基本的JDBC连接和查询。在实际开发中,推荐使用ORM框架如Hibernate或JPA来简化数据库操作。
21 1
|
11天前
|
SQL Java 关系型数据库
零基础轻松入门Java数据库连接(JDBC)
零基础轻松入门Java数据库连接(JDBC)
18 0
|
11天前
|
Java 关系型数据库 MySQL
【JAVA进阶篇教学】第八篇:Java链接MySql数据库异常
【JAVA进阶篇教学】第八篇:Java链接MySql数据库异常