• Hibernate5环境搭建


     
    1.导包
    • Hibernate开发包
    •  
    • 数据库的驱动包
     
    2.核心配置文件
     
    核心配置文件(赋值到src下)
    1.核心配置文件
    对于hibernate的核心配置文件它有两种方式(选其中一种即可):
    1. hibernate.cfg.xml
       
    2. hibernate.properties
       
    我们在开发中使用比较多的是hibernate.cfg.xml这种方式,原因它的配置能力更强,易于修改
    我们主要讲解的是hibernate.cfg.xml配置
     
    1.可以加载数据库相关信息
    <!-- 配置关于数据库连接的四个项 driverClass url username password -->
               <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
               <property name="hibernate.connection.url">jdbc:mysql:///hibernateTest</property>
               <property name="hibernate.connection.username">root</property>
               <property name="hibernate.connection.password">123</property>
    2.hibernate相关配置
     
    <!-- 可以将向数据库发送的sql显示出来 -->
               <property name="hibernate.show_sql">true</property>
               <!-- 格式化sql -->
               <property name="hibernate.format_sql">true</property>
         
               <!-- hibernate的方言(告知链接的数据库类型MySQL为例) -->
               <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
     
     
    3.加载映射配置文件
              
    <!-- 配置hibernate的映射文件所在位置 -->
               <mapping resource="cn/itheima/domain/Customer.hbm.xml" />
     
     
     
    对于hibernate.cfg.xml配置文件中的内容可以参考hibernate/project/etc/hibernate.properties的配置

     
    配置下面这些属性后,我们可以进行表的自动创建
     
    #hibernate.hbm2ddl.auto create-drop
    #hibernate.hbm2ddl.auto create
    #hibernate.hbm2ddl.auto update
    #hibernate.hbm2ddl.auto validate
     
     
    Create-drop 每次都会创建一个新的表,执行完成后删除。一般在测试中使用
    Create   每次都会创建一个新的表,一般是在测试中使用
    update 如果数据库中有表,不创建,没有表创建,如果映射不匹配,会自动更新表结构(只能添加)
    validate  只会使用存在的表,并且会对映射关系进行校验.
     
     
    3.映射配置文件
    命名规范:类名.hbm.xml
    它一般放置在实体类所在的包下。
    这个配置文件的主要作用是建立表与类的映射关系。
        
    1.统一声明包名,这样在<class>中就不需要写类的全名.

    2.关于<class>标签配置
    <class name="cn.itcast.domain.Customer" table="t_coustomer" catalog="hibernateTest">
        <id></id>
    </class>
            name属性:类的全名称
            table 表的名称,可以省略,这时表的名称就与类名一致
            catalog属性:数据库名称 可以省略.如果省略,参考核心配置文件中url路径中的库名称
     
    3.关于<id>标签
    <!-- id用于描述主键 -->
    <id name="id" column="id">
           <!-- 主键生成策略 -->
           <generator class="native"></generator>
    </id>
    首先它必须存在。<id>是用于建立类中的属性与表中的主键映射。
    name 类中的属性名称
    column 表中的主键名称  column它也可以省略,这时列名就与类中属性名称一致
    length 字段长度
    type属性 指定类型
    <generator>它主要是描述主键生成策略.
     
    4.关于<property>标签
               
    <!-- 使用property来描述属性与字段的对应关系 -->
    <property name="name" column="name" length="20"></property>
    <property name="address" column="address" length="50"></property>
     
    关于hibernate的映射文件中类型问题
              对于type属性它的取值,可以有三种:
                   1.java中的数据类型
                   2.hibernate中的数据类型
                   3.SQL的数据类型
    默认是hibernate中数据类型
    4.获取session的工具类编写(可选)
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    
    /**
     * HibernateUtils工具类
     * 
     * @author TGV5
     *
     */
    public class HibernateUtils {
    
    	private static Configuration config;
    	private static SessionFactory sessionFactory;
    
    	static {
    
    		config = new Configuration().configure();
    		sessionFactory = config.buildSessionFactory();
    
    	}
    
    	/**
    	 * 获取SessionFactory
    	 * 
    	 * @return
    	 */
    	public static Session openSession() {
    		return sessionFactory.openSession();
    	}
    
    	public static Session getCurrentSession() {
    		return sessionFactory.getCurrentSession();
    	}
    
    }
     
     
    5.c3p0连接池的配置(虽然HIbernate带有默认的连接池,但是性能不如C3P0连接池)
    1.导入Hibernate提供的3个C3p0的jar包
    2.在核心配置文件hibernate.cfg.xml中添加提供者配置
     
        c3p0的配置的可以不进行配置,会有默认的配置
    <!--  设置连接提供者 -->
    	<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
    		<!-- c3p0连接池的配置 -->
    		<property name="hibernate.c3p0.max_size">20</property><!--  最大连接池 -->
    		<property name="hibernate.c3p0.min_size">5</property><!--  最小连接数 -->
    		<property name="hibernate.c3p0.timeout">120</property> <!-- 超时 -->
    		<property name="hibernate.c3p0.idle_test_period">3000</property> <!-- 空闲连接  -->

    附件列表

  • 相关阅读:
    zabbix 3.2.2 server端添加客户端主机配置 (四)
    zabbix 3.2.2 server web展示如何显示中文 (三)
    zabbix 3.2.2 agent端(源码包)安装部署 (二)
    zabbix 3.2.2 server端(源码包)安装部署 (一)
    centos执行apt-get提示不存在
    用简单的方法学习ES6
    PHP+MySQL存储数据出现中文乱码的问题
    CentOS 6.0 系统 LAMP(Apache+MySQL+PHP)安装步骤
    mysql查询索引
    线程和进程
  • 原文地址:https://www.cnblogs.com/toby-ruan/p/8509450.html
Copyright © 2020-2023  润新知