hibernate.cfg.xml
<?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>
<!-- 以/jndi/name绑定到JNDI的SessionFactory实例 -->
<!--<session-factory name="java:hibernate/SessionFactory">-->
<session-factory >
<!-- ===============数据源配置属性=============== -->
<property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test?useSSL=false&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai</property>
<!-- ===============C3P0连接池配置=============== -->
<!-- 连接池中最少有多少个数据库连接 -->
<property name="hibernate.c3p0.min_size">30</property>
<!-- 连接池中允许的最大数据库连接数 -->
<property name="hibernate.c3p0.max_size">30</property>
<!-- 最大的PreparedStatement的数量 -->
<property name="hibernate.c3p0.max_statements">10</property>
<!--数据库连接不够时,每次增加的连接数-->
<property name="hibernate.c3p0.acquire_increment">10</property>
<!--数据库连接不用时,多长时间释放该连接,以秒为单位-->
<property name="hibernate.c3p0.idle_test_period">10000</property>
<!--连接处理最大时间,如果超过这个时间,会抛出异常,以豪秒为单位-->
<property name="hibernate.c3p0.timeout">5000</property>
<!-- ===============数据库方言=============== -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- ===============功能=============== -->
<!--打印SQL-->
<property name="show_sql">true</property>
<!--格式化SQL语句-->
<property name="format_sql">true</property>
<!--是否自动生成数据库-->
<!--
1. 啥都不填,hibernate默认数据库中有表
2. update:动态创建表,映射关系存在表则使用,不存在则创建后在使用
2. create:根据映射条件创表,如果数据库已经存在该表直接删除,用hibernate新创的 == 看了跟下面create-drop没啥区别
2. create-drop:根据映射条件创表,如果数据库已经存在该表直接删除,用hibernate新创的
2. validate:加载文件时,就校验映射文件与数据库表关系是否对应或存在,有问题直接报错
-->
<property name="hibernate.hbm2ddl.auto"></property>
<!-- ===============注册实体关系映射文件=============== -->
<mapping resource="mapping/SysUser.hbm.xml"></mapping>
<mapping resource="mapping/Article.hbm.xml"></mapping>
<!--将此映射文件直接放到跟Bean的源码目录包下的写法-->
<!--<mapping resource="top/linruchang/entity/SysUser.hbm.xml"></mapping>-->
<!--<mapping resource="top/linruchang/entity/Article.hbm.xml"></mapping>-->
</session-factory>
</hibernate-configuration>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- package:类似mybatis的Bean别名type-aliases-package这个属性,用于有些属性不用写全限定名-->
<!-- default-lazy:默认启动懒加载,即一对多,多对多,多对一关系上使用-->
<!-- auto-import:默认true,是否可以在查询语句中使用非全限定名,如果项目中有两个同名的Bean,最好在两个映射文件中设置为false-->
<hibernate-mapping package="top.linruchang.entity" default-lazy="true" auto-import="false">
<!-- dynamic-insert dynamic-update:默认都为false。true时类似 mybatisplus的代码插入Java语句,只要属性是空则update、insert的SQL语句就不会出现该列 -->
<class name="top.linruchang.entity.MyOrder2" table="my_order" dynamic-insert="true" dynamic-update="false">
<id name="id" type="java.lang.String">
<column name="id"></column>
<!--插入时,如果你没有设置ID,会帮你自动添加ID-->
<generator class="uuid"></generator>
</id>
<property name="name" type="java.lang.String">
<column name="name"></column>
</property>
<property name="money" type="java.lang.String">
<column name="money"></column>
</property>
<!-- 多对多配置 == 需要中间表 -->
<set name="myUser2" table="user_order_rel" lazy="extra">
<key column="my_order_id" ></key>
<many-to-many column="my_user_id" class="top.linruchang.entity.MyUser2"></many-to-many>
</set>
<!-- 一对多配置 -->
<set name="articles" table="article">
<key column="user_id"></key>
<one-to-many class="top.linruchang.entity.Article"></one-to-many>
</set>
<!-- 多对一配置 -->
<many-to-one lazy="no-proxy" name="sysUser" column="user_id" class="top.linruchang.entity.SysUser" />
</class>
</hibernate-mapping>
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_39651356/article/details/125329224
内容来源于网络,如有侵权,请联系作者删除!