一、JDBC
1、什么是JDBC
JDBC,全名 JAVA数据库连接(java DataBase Connectivity)技术的简称,是由一组使用java语言编写的类与接口组成,可以为多种关系数据库提供统一访问。连接数据库后通过SQL来操作数据库的Java连接数据库的技术API。
2、JDBC的问题
- 从连接效率上考虑,每一个操作都要重新连接数据库,对数据库造成较大的压力。
- 从代码上考虑,我们每次操作都要写编译以及对连接的控制,还要考虑到事务的提交与回滚等,程序员重复性与验证性的工作量很大。
- JDBC使用的SQL语言对数据进行操作,不符合JAVA一直提倡的面向对象编程思想。JDBC操作的数据是“瞬时”的,变量的值无法与数据库保持一致。
二、hibernate
1、什么是hibernate
hibernate是轻量级JavaEE应用的一个持久层框架。它的作用在于管理Java实体类到数据库表之间的映射关系,提供数据查询和获取数据的方法,大幅度的缩短使用JDBC处理数据持久化的时间。hibernate完成了对象模型和基于SQL关系模型的映射关系,使得程序员可以采用面向对象的方式来开发程序,充当了两者之间的桥梁。
2、hibernate的jar包
- hibernate-core-4.2.7.Final.jar核心库
- hibernate-jpa-2.0-api-1.0.1.Final.jar定义java持久性
- hibernate-commons-annotations-4.0.2.Final.jar注解支持
- jboss-logging-3.1.0.GA.jar 日志功能 由它调用具体日志实现,如log4j等
- javassist-3.18.1-GA.jar 代码生成工具。Hibernate用它在运行时扩展java类和实现
- dom4j-1.6.1.jar 处理XML文件解析 C3p0、proxool .jar配置连接池,非必须
- jboss-transaction-api_1.1_spec-1.0.1.Final.jar事务处理
- Ant.jar 打包和布署,非必须
maven管理时需要使用的导入语句
<!-- 导入hibernate核心相关jar包 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.1.0.Final</version>
</dependency>
3、hibernate的配置文件
(1)、名称
一般以hibernate.cfg.xml命名,也可以自己自定义命名
(2)配置内容
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<!-- 配置hibernate的session工厂 -->
<session-factory>
<!-- 配置方言。就是告诉hibernate框架,现在操作的mysql数据库,其他数据库可以到
hibernate-core jar包下的org.hibernate.dialect中查看
-->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 定义连接路径 -->
<property name="connection.url">
jdbc:mysql://localhost:3306/hibernate?characterEncoding=UTF-8
</property>
<!-- 定义连接名与密码 -->
<property name="connection.username">root</property>
<property name="connection.password"></property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- hibernate指定使用c3p0连接池 -->
<property name="hibernate.connection.provider_class">org.hibernate.c3p0.internal.C3P0ConnectionProvider</property>
<!-- 指定连接池最大连接数 -->
<property name="hibernate.c3p0.max_size">20</property>
<!-- 指定连接池最小连接数 -->
<property name="hibernate.c3p0.min_size">1</property>
<!-- 指定连接池里连接超时时长 -->
<property name="hibernate.c3p0.timeout">5000</property>
<!-- 指定连接池里最大缓存多少个PreparedStatement对象 -->
<property name="hibernate.c3p0.max_statements">100</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.c3p0.acquire_increment">2</property>
<!--以格式良好的方式显示SQL语句-->
<property name="format_sql">true</property>
<!--显示SQL语句-->
<property name="show_sql">true</property>
<!-- 配置hibernate的orm对象-表映射文件 下面的内容,可能发生一定的修改
也可以使用<mapping package="配置文件的路径"/>
-->
<mapping resource="com/gezhi/hibernate/xml/ClassBean.hbm.xml"/>
<mapping resource="com/gezhi/hibernate/xml/RoomBean.hbm.xml"/>
<mapping resource="com/gezhi/hibernate/xml/OptLogBean.hbm.xml"/>
</session-factory>
</hibernate-configuration>