Hibernate学习4 - 配置文件

x33g5p2x  于2022-06-27 转载在 其他  
字(4.8k)|赞(0)|评价(0)|浏览(606)

配置文件

全局配置文件hibernate.cfg.xml

hibernate.cfg.xml

  1. <?xml version='1.0' encoding='utf-8'?>
  2. <!DOCTYPE hibernate-configuration PUBLIC
  3. "-//Hibernate/Hibernate Configuration DTD//EN"
  4. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  5. <hibernate-configuration>
  6. <!-- 以/jndi/name绑定到JNDI的SessionFactory实例 -->
  7. <!--<session-factory name="java:hibernate/SessionFactory">-->
  8. <session-factory >
  9. <!-- ===============数据源配置属性=============== -->
  10. <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
  11. <property name="connection.username">root</property>
  12. <property name="connection.password">root</property>
  13. <property name="connection.url">jdbc:mysql://localhost:3306/test?useSSL=false&amp;characterEncoding=UTF-8&amp;serverTimezone=Asia/Shanghai</property>
  14. <!-- ===============C3P0连接池配置=============== -->
  15. <!-- 连接池中最少有多少个数据库连接 -->
  16. <property name="hibernate.c3p0.min_size">30</property>
  17. <!-- 连接池中允许的最大数据库连接数 -->
  18. <property name="hibernate.c3p0.max_size">30</property>
  19. <!-- 最大的PreparedStatement的数量 -->
  20. <property name="hibernate.c3p0.max_statements">10</property>
  21. <!--数据库连接不够时,每次增加的连接数-->
  22. <property name="hibernate.c3p0.acquire_increment">10</property>
  23. <!--数据库连接不用时,多长时间释放该连接,以秒为单位-->
  24. <property name="hibernate.c3p0.idle_test_period">10000</property>
  25. <!--连接处理最大时间,如果超过这个时间,会抛出异常,以豪秒为单位-->
  26. <property name="hibernate.c3p0.timeout">5000</property>
  27. <!-- ===============数据库方言=============== -->
  28. <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
  29. <!-- ===============功能=============== -->
  30. <!--打印SQL-->
  31. <property name="show_sql">true</property>
  32. <!--格式化SQL语句-->
  33. <property name="format_sql">true</property>
  34. <!--是否自动生成数据库-->
  35. <!--
  36. 1. 啥都不填,hibernate默认数据库中有表
  37. 2. update:动态创建表,映射关系存在表则使用,不存在则创建后在使用
  38. 2. create:根据映射条件创表,如果数据库已经存在该表直接删除,用hibernate新创的 == 看了跟下面create-drop没啥区别
  39. 2. create-drop:根据映射条件创表,如果数据库已经存在该表直接删除,用hibernate新创的
  40. 2. validate:加载文件时,就校验映射文件与数据库表关系是否对应或存在,有问题直接报错
  41. -->
  42. <property name="hibernate.hbm2ddl.auto"></property>
  43. <!-- ===============注册实体关系映射文件=============== -->
  44. <mapping resource="mapping/SysUser.hbm.xml"></mapping>
  45. <mapping resource="mapping/Article.hbm.xml"></mapping>
  46. <!--将此映射文件直接放到跟Bean的源码目录包下的写法-->
  47. <!--<mapping resource="top/linruchang/entity/SysUser.hbm.xml"></mapping>-->
  48. <!--<mapping resource="top/linruchang/entity/Article.hbm.xml"></mapping>-->
  49. </session-factory>
  50. </hibernate-configuration>

Bean映射文件

  1. <?xml version="1.0"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  5. <!-- package:类似mybatis的Bean别名type-aliases-package这个属性,用于有些属性不用写全限定名-->
  6. <!-- default-lazy:默认启动懒加载,即一对多,多对多,多对一关系上使用-->
  7. <!-- auto-import:默认true,是否可以在查询语句中使用非全限定名,如果项目中有两个同名的Bean,最好在两个映射文件中设置为false-->
  8. <hibernate-mapping package="top.linruchang.entity" default-lazy="true" auto-import="false">
  9. <!-- dynamic-insert dynamic-update:默认都为false。true时类似 mybatisplus的代码插入Java语句,只要属性是空则update、insert的SQL语句就不会出现该列 -->
  10. <class name="top.linruchang.entity.MyOrder2" table="my_order" dynamic-insert="true" dynamic-update="false">
  11. <id name="id" type="java.lang.String">
  12. <column name="id"></column>
  13. <!--插入时,如果你没有设置ID,会帮你自动添加ID-->
  14. <generator class="uuid"></generator>
  15. </id>
  16. <property name="name" type="java.lang.String">
  17. <column name="name"></column>
  18. </property>
  19. <property name="money" type="java.lang.String">
  20. <column name="money"></column>
  21. </property>
  22. <!-- 多对多配置 == 需要中间表 -->
  23. <set name="myUser2" table="user_order_rel" lazy="extra">
  24. <key column="my_order_id" ></key>
  25. <many-to-many column="my_user_id" class="top.linruchang.entity.MyUser2"></many-to-many>
  26. </set>
  27. <!-- 一对多配置 -->
  28. <set name="articles" table="article">
  29. <key column="user_id"></key>
  30. <one-to-many class="top.linruchang.entity.Article"></one-to-many>
  31. </set>
  32. <!-- 多对一配置 -->
  33. <many-to-one lazy="no-proxy" name="sysUser" column="user_id" class="top.linruchang.entity.SysUser" />
  34. </class>
  35. </hibernate-mapping>

相关文章