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


相关文章
|
6天前
|
XML Java 数据库连接
性能提升秘籍:如何高效使用Java连接池管理数据库连接
在Java应用中,数据库连接管理至关重要。随着访问量增加,频繁创建和关闭连接会影响性能。为此,Java连接池技术应运而生,如HikariCP。本文通过代码示例介绍如何引入HikariCP依赖、配置连接池参数及使用连接池高效管理数据库连接,提升系统性能。
28 5
|
12天前
|
消息中间件 资源调度 关系型数据库
如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理
本文介绍了如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理。主要内容包括安装Debezium、配置Kafka Connect、创建Flink任务以及启动任务的具体步骤,为构建实时数据管道提供了详细指导。
35 9
|
10天前
|
SQL Java 数据库连接
从理论到实践:Hibernate与JPA在Java项目中的实际应用
本文介绍了Java持久层框架Hibernate和JPA的基本概念及其在具体项目中的应用。通过一个在线书店系统的实例,展示了如何使用@Entity注解定义实体类、通过Spring Data JPA定义仓库接口、在服务层调用方法进行数据库操作,以及使用JPQL编写自定义查询和管理事务。这些技术不仅简化了数据库操作,还显著提升了开发效率。
23 3
|
12天前
|
安全 Nacos 数据库
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改。本文详细探讨了这一问题的原因及解决方案,包括限制公网访问、使用HTTPS、强化数据库安全、启用访问控制、监控和审计等步骤,帮助开发者确保服务的安全运行。
26 3
|
16天前
|
PHP 数据库 数据安全/隐私保护
布谷直播源码部署服务器关于数据库配置的详细说明
布谷直播系统源码搭建部署时数据库配置明细!
|
18天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
32 3
|
18天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
34 2
|
18天前
|
Java 数据库连接 数据库
如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面
本文介绍了如何构建高效稳定的Java数据库连接池,涵盖连接池配置、并发控制和异常处理等方面。通过合理配置初始连接数、最大连接数和空闲连接超时时间,确保系统性能和稳定性。文章还探讨了同步阻塞、异步回调和信号量等并发控制策略,并提供了异常处理的最佳实践。最后,给出了一个简单的连接池示例代码,并推荐使用成熟的连接池框架(如HikariCP、C3P0)以简化开发。
38 2
|
19天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
61 2
|
18天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
16 1