【Hibernate】Re06 专题指南内容
关于SessionFactory获取的两种注册类对象的提供方式:
https://docs.jboss.org/hibernate/orm/5.4/topical/html_single/bootstrap/NativeBootstrapping.html
简单来说分两种主要的服务注册类,除此外还支持了元数据方式注入信息进行创建
符合JPA规范的引导方式:
https://docs.jboss.org/hibernate/orm/5.4/topical/html_single/bootstrap/JpaBootstrapping.html
非常有意思,居然是像Spring自动装配一样提供了@PersistenceUnit注解进行注入实现,但是并没有提及具体的实现
这里还规定了生成的方式:
https://docs.jboss.org/hibernate/orm/5.4/topical/html_single/generated/GeneratedValues.html
数据源配置
数据源配置,默认使用Jdbc,也可以使用C3P0
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-c3p0</artifactId> <version>5.4.21.Final</version> </dependency>
加入c3p0的配置:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 基本链接参数 --> <property name="connection.url">jdbc:mysql://ip:port/hibernate?serverTimezone=Asia/Shanghai</property> <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property> <property name="connection.username">root</property> <property name="connection.password">password</property> <property name="dialect">org.hibernate.dialect.MySQL57Dialect</property> <!-- 数据库版本方言 --> <property name="show_sql">true</property> <!-- 是否让控制台输出SQL语句 --> <property name="format_sql">true</property> <!-- 控制台输出的SQL格式化 --> <property name="hbm2ddl.auto">update</property> <!-- 数据库表的生成策略 --> <!-- c3p0数据源配置 --> <property name="hibernate.c3p0.max_size">10</property> <property name="hibernate.c3p0.min_size">5</property> <property name="hibernate.c3p0.idle_test_period">2000</property> <property name="hibernate.c3p0.timeout">2000</property> <mapping resource="hibernate/mapping/News.hbm.xml" /> <!-- 实体类映射XML路径 --> <mapping class="cn.zeal4j.domain.User" /> <!-- 使用注解的配置方式 --> </session-factory> </hibernate-configuration>