zoukankan      html  css  js  c++  java
  • Hibernate学习笔记2.1(Hibernate基础配置)

    Hibernate基础配置

    1.<property name="hbm2ddl.auto">update</property>

    SessionFactory创建时,自动将数据库schema的DDL导出到数据库. 使用 create-drop时,在显式关闭SessionFactory时,将drop掉数据库schema.

    取值 update | create | create-drop

    其实这个hibernate.hbm2ddl.auto参数的作用主要用于:自动创建|更新|验证数据库表结构。如果不是此方面的需求建议set value="none"。
    create:
    每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。

    create-drop :
    每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。

    update:
    最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。

    validate :
    每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。(操作任何数据之前,先检查是否值能够一一对应上)

    2.在一般的web开发中,从纯理论上讲,便于数据库的跨平台,应该先建类后建表,但在实际开发中,是先建表,后建类(1.这是开发习惯 2.便于进行数据库的优化)

    3.搭建日志环境

    SLF4J

    因为SLF4J-NODE 在实际开饭中用的并不是那么的多,所以我们重新学习使用log4j创建日志

    首先log4j jar包下载地址:https://www.cr173.com/soft/64000.html

    引入

    其次因为我们引入的jar包里目前只有slf api 以及 log4j的实现 还缺一个将api转换为log4j能用的接口的jar包

    因此 引入jar包  slf4j-log4j12-1.5.8.jar  上一节下载好了的文件

    然后

    在下载好的

    Hibernate3.3.2hibernate-distribution-3.3.2.GAprojectetc 目录下 找到

    log4j.properties

    拷贝到项目中 这是log4j的配置文件

    配置文件内容很多 用到的时候自行百度 就不多作介绍

    引入完成之后 运行之后就可以看到日志在控制台输出

    4.搭建junit环境

    首先引入jar包

    下载地址: http://www.java2s.com/Code/Jar/j/Downloadjunit47jar.htm

    然后自己建立自己的library 然后在引入

     编写测试类 TeacherTest.java

    package com.bjsxt;
    
    
    import static org.junit.Assert.*;
    
    import java.util.Date;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.AnnotationConfiguration;
    import org.junit.AfterClass;
    import org.junit.BeforeClass;
    import org.junit.Test;
    
    import com.bjsxt.hibernate.Teacher;
    
    public class Teachertest {
        
        private static  SessionFactory sf = null;
        @Test
        public void testTeachersave() {
            System.out.println("123131");
            Teacher t = new Teacher();
            t.setId(1);
            t.setName("t1");
            t.setTitle("middle");
            t.setBirthDate(new Date());
            
            
            Session session = sf.getCurrentSession();
            session.beginTransaction();
            session.save(t);
            session.getTransaction().commit();
            session.close();
            
        }
        @BeforeClass
        public static void beforClass(){
            sf = new AnnotationConfiguration().configure().buildSessionFactory();
            
        }
        @AfterClass
        public static void afterClass(){
            sf.close();
        }
        
        
        
        
    }

    在hibernatenate.cfg.xml里加上配置

     <property name="show_sql">true</property>  //显示sql语句
    <property name="format_sql">true</property>//显示的时候加上回车

    RUN AS JUNITE

  • 相关阅读:
    sql server 镜像操作
    微信测试公众号的创见以及菜单创建
    linux安装redis步骤
    Mysql 查询表字段数量
    linux 链接mysql并覆盖数据
    linux (centos)增删改查用户命令
    CentOS修改用户密码方法
    https原理及其中所包含的对称加密、非对称加密、数字证书、数字签名
    com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. 问题解决方法
    设计模式(三):模板方法模式
  • 原文地址:https://www.cnblogs.com/frankzone/p/9436178.html
Copyright © 2011-2022 走看看