Object Relational Mapping框架之Hibernate

hibernate框架简介:

  hibernate框架就是开发中在持久层中应用居多的ORM框架,它对JDBC做了轻量级的封装。

什么是ORM:Object Relational Mapping(对象关系映射),也就是将java中的对象和数据库中的数据表建立映射关系,当我们在操作java中的对象时就可以操作数据库中的表了。

使用hibernate框架开发流程:

hibernate开发需求创建俩个配置文件,一个是映射文件,另一个hibernate的框架配置文件。

创建映射文件,该映射文件一般命名规则是(类名.hbm.xml)。

  1. class标签:建立java类和关系数据表的映射。
  • name:类的全路径。
  • table:数据库中被建立映射的表名称,如果类名和数据库名一致该属性可以省略。
  • catalog:数据库名称。
  1. id标签:建立主键和java类中属性的映射。
  • name:与表中的主键对应的类中的属性名称。
  • column:表中的主键名。
  • length:字段的长度。
  • type:字段的数据类型。
  1. property标签:建立关系表中普通字段和java类中属性的映射。
  • name:与表中除了主键对应的类中的属性名称。
  • column:表中除了主键外的普通字段名称。
  • length:字段的长度。
  • type:字段的数据类型。
  • not-null:非空。
  • unique:唯一。

创建hibernate核心配置文件(2种:hibernate.properties----不能加载映射文件 hibernate.cfg.xml----结构清晰【通常使用这一种】)。

核心配置文件中的内容:

  • 数据库连接的基本参数:
  • hibernate的一些基本属性:
  • 加载映射文件:
 1 <?xml version="1.0" encoding="UTF-8"?>  2 <!DOCTYPE hibernate-configuration PUBLIC  3     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  4     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">  5       6 <hibernate-configuration>  7     <session-factory>  8         <!-- 数据库连接的配置: -->  9         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 10         <property name="hibernate.connection.url">jdbc:mysql:///hibernate_crm</property> 11         <property name="hibernate.connection.username">root</property> 12         <property name="hibernate.connection.password">123</property> 13          14         <!-- 配置C3P0连接池: --> 15         <property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property> 16         <!--在连接池中可用的数据库连接的最少数目 --> 17         <property name="c3p0.min_size">5</property> 18         <!--在连接池中所有数据库连接的最大数目  --> 19         <property name="c3p0.max_size">20</property> 20         <!--设定数据库连接的过期时间,以秒为单位,如果连接池中的某个数据库连接处于空闲状态的时间超过了timeout时间,就会从连接池中清除 --> 21         <property name="c3p0.timeout">120</property> 22          <!--每3000秒检查所有连接池中的空闲连接 以秒为单位--> 23         <property name="c3p0.idle_test_period">3000</property> 24          25         <!--  26             配置数据库事务的隔离级别: 27             1、read uncommitted (1)  : 脏读,可重复读,虚读三种情况都有可能发生。 28             2、read committed (2)    : 避免脏读,可重复读和虚读有可能发生。 29             3、repeatable read  (4)  : 避免脏读和可重复读,但是虚读有可能发生。 30             4、serializable  (8)     :  以上出现的情况都能解决。 31          --> 32          <property name="hibernate.connection.isolation">4</property> 33           34          <!-- hibernate中设置可以使用与当前线程绑定的session连接对象: --> 35          <property name="hibernate.current_session_context_class">thread</property> 36           37          38         <!-- hibernate的相关属性配置: --> 39         <!-- 必须配置:mysql的方言配置 --> 40         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 41         <!-- 可选配置:显示sql、格式化sql、hbm2ddl等 --> 42         <property name="hibernate.show_sql">true</property> 43         <property name="hibernate.format_sql">true</property> 44         <property name="hibernate.hbm2ddl.auto">update</property> 45          46         <!-- 加载映射文件: --> 47         <mapping resource="com/itheima/domain/Customer.hbm.xml"/> 48         <mapping resource="com/itheima/domain/LinkMan.hbm.xml"/> 49         <mapping resource="com/itheima/domain/User.hbm.xml"/> 50         <mapping resource="com/itheima/domain/Role.hbm.xml"/> 51          52     </session-factory> 53 </hibernate-configuration>
  
 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏VMCloud

【腾讯云的1001种玩法】构建企业级应用环境之数据层面优化(二)

在上一篇中我们讲到准备SQL基础环境改造,这一篇将继续讲述如何为应用提供高可用的底层数据层。

6110
来自专栏转载gongluck的CSDN博客

利用xinetd实现简单web服务器(镜像站)

浏览效果: ? linux服务器安装xinetd后,在/etc/xinetd.d/目录下创建xhttpd文件,并输入内容: service xhttpd { ...

4236
来自专栏面朝大海春暖花开

hibernate for循环执行添加操作出错问题

hibernate插入对象的时候,对于id唯一,数据库设置为自增的时候执行完操作后会将id赋予该对象

1151
来自专栏L宝宝聊IT

SQL server 数据库的存储过程和触发器

1843
来自专栏python3

mysql-创建用户和授权

我们知道我们的最高权限管理者是root用户,它拥有着最高的权限操作。包括select、update、delete、update、grant等操作.

1772
来自专栏Python、Flask、Django

MySQL快速建立远程连接

1514
来自专栏LIN_ZONE

mysql存储emoji问题

前一段时间,项目中需要在数据库中存储emoji,由于编码格式不对,直接导致数据库报错,后来修改mysql的编码,就解决了

1346
来自专栏西安-晁州

GridFS使用及配合nginx实现文件服务

Mongodb下GridFS使用及配合nginx实现文件服务 一、GridFS简介 GridFS是mongodb下用来存储文件的一种规范,所有官方支持的驱动均实...

7170
来自专栏一个会写诗的程序员的博客

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES/NO) 解决方案1.停止mysql

初次安装mysql,net start mysql,然后输入mysql -u root -p,

2.5K3
来自专栏Laoqi's Linux运维专列

Mysql5.7 二进制包安装(变化较大)

MySQL5.7.17版(二进制包) : 1.下载、解压二进制包 cd /usr/local/src/ wget http://mirrors.sohu.com...

3055

扫码关注云+社区

领取腾讯云代金券