首页 > 其他分享 >Hibernate_配置说明

Hibernate_配置说明

时间:2023-06-08 22:36:11浏览次数:34  
标签:hibernate -- 数据库 配置 mysql 说明 Hibernate org jdbc


<?xml version="1.0" encoding="utf-8"?>  
<!DOCTYPE hibernate-configuration  
    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"  
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
  
<hibernate-configuration>  
    <session-factory >

        <!-- 启动服务器时,自动更新数据库.开发结束以后,删掉下面这行-->  

   

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

        <!-- JDBC数据库连接的URL -->  

        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/databasename?characterEncoding=UTF-8</property>  

        <!-- JDBC驱动类 -->  

        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>  

        <!-- 用户名 -->  

        <property name="hibernate.connection.username">root</property>  

        <!-- 密码 -->  

        <property name="hibernate.connection.password">123456</property>  

        <!-- Hibernate数据库方言 -->  

        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>  

        <!-- 是否显示SQL语句 -->  

        <property name="hibernate.show_sql">false</property>          

  

          

        <!-- 配置数据库连接池 -->  

        <!-- Hibernate连接池类名 -->  

        <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>  

        <!-- 最大连接数 -->  

        <property name="hibernate.c3p0.max_size">100</property>  

        <!-- 最小连接数 -->  

        <property name="hibernate.c3p0.min_size">10</property>  

        <!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位秒 -->  

        <property name="hibernate.c3p0.timeout">120</property>  

        <!-- 最大的预编译语句的数量 -->  

        <property name="hibernate.c3p0.max_statements">50</property>  

        <!-- 每隔多少秒检查连接池里的空闲连接 ,单位是秒-->  

        <property name="hibernate.c3p0.idle_test_period">120</property>  

        <!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 -->  

        <property name="hibernate.c3p0.acquire_increment">2</property>  

        <!-- 每次都验证连接是否可用 -->  

        <property name="hibernate.c3p0.validate">true</property>  

          

          

        <!-- 指定的映射类 -->  

<mapping class="edu.xmu.auto.entity.Role"/>  
        <mapping class="edu.xmu.auto.entity.User"/>  
    </session-factory>  
      
</hibernate-configuration>

 

现在开始详解: 首先是文件头部分,这部分就不用解释了吧,当然也不需要自己去记忆。可以直接到官网给出的demo拷贝这部分

 

<?xml version="1.0" encoding="utf-8"?>  
<!DOCTYPE hibernate-configuration  
    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"  
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

 

接下来就是如何配置Hibernate了,Hibernate的配置文件都放在下面标签内,不解释  

<hibernate-configuration>  
    <session-factory >  
    <!-- 配置文件内容-->  
    </session-factory>      
</hibernate-configuration>

 

下面的才是重点:

 

<!-- 启动服务器时,自动更新数据库,不过MySQL或其它数据库中要有你自己创建的数据库名,里面可以没有表.开发结束以后,可以去掉这个属性-->

<!-- 这里有这样4个值可选:update create create-drop validate,个人建议用update

validate               加载hibernate时,验证创建数据库表结构

create                  每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。

create-drop        加载hibernate时创建,退出是删除表结构

update                 加载hibernate自动更新数据库结构,但不会删除原有数据

-->

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

 

 

<!-- JDBC数据库连接的URL -->

<!--

MySQL数据库URL:jdbc:mysql:// ip:port/databasename ,port默认为3306

Oracle 数据库URL:jdbc:oracle:thin:@ip:port:databasename,port默认为1521

SQL Server数据库URL: jdbc:microsoft:sqlserver://ip:port;DatabaseName=databasename ,port默认为1433

如果数据库是在远程电脑,则将localhost换为对应的IP地址; 将databasename换成对应的数据库名;

编码方式根据数据库的编码设置,数据库的编码方式是什么,就改为什么

-->

<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/databasename?characterEncoding=UTF-8</property>  

 

<!-- JDBC驱动类 -->

<!--

至于需要添加的jar包,自己百度下面的驱动类名,就可以找到了

MySQL 数据库驱动:com.mysql.jdbc.Driver 

SQL Server 数据库驱动: com.microsoft.jdbc.sqlserver.SQLServerDriver

Oracle 数据库驱动:oracle.jdbc.driver.OracleDriver

-->

<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>  

 

 

<!-- 用户名 -->

<!--

MySQL数据库默认用户名是 root

Oracle数据库默认用户名为 sysdba

SQL Server 数据库默认用户名为 sa

-->

<property name="hibernate.connection.username">root</property>  

<property name="hibernate.connection.password">123456</property>  

 

 

<!-- Hibernate数据库方言 -->

<!-- 

MySQL数据库方言为 org.hibernate.dialect.MySQLDialect

Oracle9i/10g 数据库方言为 org.hibernate.dialect.Oracle9Dialect

SQL Server 数据库方言为 org.hibernate.dialect.SQLServerDialect

-->

<property name="dialect">org.hibernate.dialect.MySQLDialect</property>  

 

 

<!-- 是否在控制台显示SQL语句 ,方便调试。开发过程可以设为true,开发结束以后设为false-->

<!-- 允许的值为true 和 false -->

<property name="hibernate.show_sql">false</property>  

 

 

<!-- 配置数据库连接池 ,,默认情况下(即没有配置连接池的情况下),Hibernate会采用内建的连接池。但这个连接池性能不佳,且存在诸多BUG。Hibernate支持第三方的连接池,官方推荐的连接池是C3P0,Proxool-->

 

<!-- Hibernate连接池类名,我现在用的是C3P0 -->

<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>  

 

<!-- 最大连接数 -->

<property name="hibernate.c3p0.max_size">100</property>  

<!-- 最小连接数 -->

<property name="hibernate.c3p0.min_size">10</property>  

 

<!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位秒 -->

<property name="hibernate.c3p0.timeout">120</property>  

  

<!-- 最大的预编译语句的数量 -->

<property name="hibernate.c3p0.max_statements">50</property>  

 

<!-- 每隔多少秒检查连接池里的空闲连接 ,单位是秒-->

<property name="hibernate.c3p0.idle_test_period">120</property>  

 

<!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 -->

<property name="hibernate.c3p0.acquire_increment">2</property>  

 

<!-- 每次都验证连接是否可用,允许值true,false -->

<property name="hibernate.c3p0.validate">true</property>         

 

 

<!-- 指定的映射-->

<!--

映射通常有两种形式,一种是<mapping resource="com/mycom/entity/User.hbm.xml"/>,这种形式是通过映射文件来处理映射关系的,笔者的建议是,如果你想通过数据库生成java类,那么你就用这种方式。直接利用HibernateSychronizer插件来生成。否则的话,配置xml文件极为繁琐,而且当变动数据库模型的时候,有可能出错

一种是 <mapping class="com.mycom.entity.User"/>这种形式,这种方式通常是利用java类来生成数据库表(当然前提是要配置hibernate.hbm2ddl.auto属性喽),这种方式是直接在Java类里面用@annotation来标注,详细请察看笔者的另一篇文章 http://titanseason.iteye.com/blog/1279198

-->

 

Xml代码  

<mapping class="com.mycom.entity.User"/>  
<mapping class="com.mycom.entity.Role"/>  
<!--  
<mapping resource="com/mycom/entity/User.hbm.xml"/>  
<mapping resource="com/mycom/entity/User.hbm.xml"/>  
-->

标签:hibernate,--,数据库,配置,mysql,说明,Hibernate,org,jdbc
From: https://blog.51cto.com/u_16070335/6443813

相关文章

  • 02-MyBatis-CRUD-配置文件、参数封装、mybatisX插件、动态sql, 简单的用注解开发
    文章目录MybatisCRUD练习1,配置文件实现CRUD1.1环境准备Debug01:别名mybatisx报错1.2查询所有数据1.2.1编写接口方法1.2.2编写SQL语句1.2.3编写测试方法1.2.4起别名解决上述问题1.2.5使用resultMap解决上述问题1.2.6小结1.3查询详情1.3.1编写接口方法1.3.2编写SQL语句......
  • Hibernate_根据条件动态组装sql/hql语句(仿ibatis动态查询语句功能)
     1.功能需求背景 项目中使用hibernate作为数据持久层框架,主要考虑hibernate在进行一些简单的crud操作时非常便利,不需要和ibatis似的为每个sql操作都写一堆文件,但是同时也带来了一些局限性,如类似ibatis强大的动态查询功能用不了了,但是这个功能在项目中的应用场景又很大,hibernate......
  • 徒手撸一个Spring Boot中的starter,解密自动化配置
    starter背景SpringBoot目前已经变成了后端开发这必备技能之一,其中一个主要原因是SpringBoot中有个非常重要的机制(starter机制)。starter能够抛弃以前繁杂的配置,将其统一集成进starter,使用的时候只需要在maven中引入对应的starter依赖即可,SpringBoot就能自动扫描到要加载的信息并......
  • yolov5 运行环境配置
    安装anaconda用来管理虚拟环境创建一个虚拟环境,创建虚拟环境的时候指定python版本我这里选择3.9将yolov5的python代码从github上搞下来,用pycharm打开-打开项目,打开之后用终端进入之前我们创建的那个虚拟环境里面pycharm不同的版本配置解释器的界面还不一样,多摸索摸索......
  • 路由器动态路由的配置方法
    RIP:RoutingInformationProtocol,路由信息协议,是应用较早、使用较普遍的IGP内部网关协议,适用于小型同类网络,是典型的距离矢量协议。 RIP协议跳数作为衡量路径开销的,RIP协议里规定最大跳数为15。 RIP协议有两个版本RIPv1和RIPv2。 RIPv1属于有类路由协议,不支持VLSM(变长子......
  • apache 使用 mod_fcgid.so模块时 配置指令
    FcgidBusyScanInterval指令说明:扫描繁忙超时进程的间隔语法: FcgidBusyScanInterval seconds默认:FcgidBusyScanInterval120环境: 服务器配置状态:外部对应的老指令:BusyScanInterval该模块将执行FcgidBusyTimeout检查,在此区间。FcgidBusyTimeout指令说明:杀死处理请求超过Fcgi......
  • Tomcat5.5 JNDI配置
     JNDI是J2EE中一个很重要的标准,通常我们是在J2EE编程中用到,Tomcat中提供了在JSP和Servelt中直接使用JNDI的方法,主要是通过dbcp连接池,下面谈一下我在Tomcat5.5中配置和使用JNDI的方法。本文的对象是对j2ee编程有所了解的读者,或者已经看过了我的Blog:tomcat的基本配置说明  ......
  • 安装配置Apache支持https和fcgi
     Apache安装及配置1.1 下载软件1、Apr :(wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.1.tar.gz)2、Apr-util :(wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz)3、Pcre :(wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre......
  • 如何把Hibernate2.1升级到Hibernate3.0
    如何把Hibernate2.1升级到Hibernate3.0?选自<<精通Hibernate:Java对象持久化技术详解>>作者:孙卫琴1.1.1包名1.1.2org.hibernate.classic包1.1.3Hibernate所依赖的第三方软件包1.1.4异常模型1.1.5Session接口1.1.6createSQLQuery()1.1.7Lifecycle和Validatable接......
  • 解析apache的httpd.conf配置内容
    ServerRoot“/usr/local“ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是相对路径,那么真实路径就位于这个ServerRoot定义的路径之下。ScoreBoardFile/var/run/......