二. Java与数据库的type类型转换
常见有,int,float,long,string,date等。
约束关系如下:
详细可以参考: https://www.cnblogs.com/bluepoint2009/p/database-datatype-java.html
三. hibernate.cfg.xml约束文件
三.一 相应约束
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
三.二 根节点 hibernate-configuration
根节点只有一个,hibernate-configuration, Hibernate的配置。 configuration. 没有任何子属性。
<hibernate-configuration> </hibernate-configuration>
三.三 session-factory节点
hibernate-configuration中里面有一个security 节点,表示安全。 一般不用。 里面有一个常见的session-factory. 表示session工厂,里面有一个字段,name,表示名称。 一般name也不写出来。
<session-factory> </session-factory>
session-factory中有三种类型的配置,一种是关于数据库信息的配置,第二种是关于Hibernate信息的配置,第三种是将映射文件引入到核心配置文件中的配置
三.四 数据库信息的配置
主要配置数据库的driverClass,url,username和password。 前缀hibernate表示确切一下,指的只是Hibernate. 当Hibernate与Spring进行整合时,Spring也可以整合其它的数据库如MyBatis, 用Hibernate表示确切,让开发者能够迅速明白,这是整合Hibernate的。 建议带上。 为connection.driver_class, connection.url, connection.username,connection.password
<!-- 关于数据库的相应配置 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate?characterEncoding=utf8</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">abc123</property>
三.五 Hibernate信息的配置
关于数据库方言的配置,如果是MySQL数据库,dialect,统一用MySQL5Dialect
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
关于是否显示sql语句的配置 为true或者false, hibernate.show_sql
<property name="hibernate.show_sql">true</property>
关于是否格式化显示sql语句的配置 hibernate. format_sql
<property name="hibernate.format_sql">true</property>
关于是否自动创建表的配置(必须添加) hbm2ddl.auto 用Update
<property name="hibernate.hbm2ddl.auto">update</property>
常见的值有update和create. 用update,表示没有添加,有则更新。 create每次都先删除,后创建,即重新创建。
这些配置值都不是瞎写的,均是在hibernate.properties文件中。
其中常见的配置如下:
三.六 引入C3PO连接池
Hibernate也可以与C3PO连接池进行相应的整合,在hibernate-release-5.2.17.Final\lib\optional\c3p0 路径下,找到
将其添加到项目工程中。
在hibernate.cfg.xml文件中继续添加关于C3p0的配置:
<!-- 添加C3P0的相应配置 --> <property name="hibernate.connection.provider_class"> org.hibernate.connection.C3P0ConnectionProvider </property> <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="c3p0.idle_test_period">120</property>
重启进行测试,将log4j2.xml中的级别改成info级别。
表示C3P0连接池正常使用。
三.七 引入映射文件
只有将映射文件引入到核心配置文件中,核心配置文件才会调用映射文件,然后将映射文件User.hibernate.xml中的内容进行相应的解析,才会将类转换成相应的数据库表。 如果没有自动生成表,看一看是否是因为没有将映射文件放入到核心配置文件中。
单个资源引入: ctrl+鼠标点击时可以正确的跳转。
用了一下class和package,发现并没有自动生成表.
<mapping class="com.yjl.pojo.User"/> <!--没有自动生成--> <mapping package="com.yjl.pojo"/> <!--没有自动生成-->
class 和 package 在注解时使用, 不能在 xml 配置文件中使用。
谢谢您的观看,如果喜欢,请关注我,再次感谢 !!!