1.JDBC简介
JDBC是Java DataBase Connectivity 的缩写,Java访问数据库的直接方式就是使用JDBC API,一般由数据库厂商或者第三方提供。
2.JDBC缺点
1)业务逻辑代码和数据库处理代码混合在一起,使程序结构不清晰,可读性差;
2)在程序中嵌入面向关系的SQL语句,使开发人员不能完全运用面向对象的思维来编写程序;
3)业务逻辑和关系数据模型绑定,增加了软件维护的难度,例如数据库表结构变化时,需要手动修改业务逻辑中的SQL语句;
4)业务逻辑和关系数据模型绑定,增加了软件调试的难度,这些SQL语句的问题,需要在运行时才能发现。
3.Hibernate简介
1)Hibernate是Java和关系数据库的桥梁,它能够进行Java和关系数据库之间的映射;
2)Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供了面向对象的数据库访问API,使我们能通过面向对象的操作方式来实现对数据库的操作。
4.Hibernate的优点
1)Hibernate即不会渗透到上层的域模型中,也不会渗透到下层的数据模型中;
2)我们可以独立设计域模型,而不必强迫遵守任何规范;
3)DBA可以专注于数据库模型的设计,而不必强迫遵守任何规范;
4)对象-关系映射不依赖任何程序代码,其映射关系是通过配置XML文件来实现的,当需要修改对象-关系映射时,只需要修改配置文件即可。
5.使用Hibernate的基础步骤
1)数据库初始化,即建立数据库表结构;
2)创建持久化类,即创建与关系型数据库表对应的Java对象;
a)持久化类符合JavaBean规范,包含一些属性和属性的get/set方法;
b)持久化有一个id属性,用来标识区分不同的Java对象;
c)需要提供一个默认不带参数的构造方法。
3)创建hibernate配置文件,其中配置了数据库链接的相关信息;
属性 | 描述 |
hibernate.dialect | 指定数据库使用的SQL方言 |
hibernate.connection.driver_class | 指定数据库的驱动程序 |
hibernate.connection.url | 指定连接数据库的URL |
hibernate.connection.username | 指定连接数据库的用户名 |
hibernate.connection.password | 指定连接数据库的密码 |
hibername.show_sql | 指定在程序运行时,在控制太台式否输出SQL语句,默认为false。在开发阶段可以设置为true,以便获取更多的调试信息,方便程序的调试。 |
4)创建对象-关系映射文件;
常用命名方式为:Class.hbm.xml,和类放在同一目录下,其中配置了Java类对象和数据库表的映射关系。
5)通过HibernateAPI访问数据库。
a)初始化Hibernate,根据默认位置的Hibernate配置文件,创建Configuration实例
b)加载类的对象-关系映射文件
c)创建SessionFactory实例
d)创建一个Session
e)开始一个事物
f)执行数据库操作
g)提交事物,如果事物失败就回滚