创新互联公司是一家以成都网站建设公司、网页设计、品牌设计、软件运维、seo优化排名、小程序App开发等移动开发为一体互联网公司。已累计为隧道混凝土搅拌车等众行业中小客户提供优质的互联网建站和软件开发服务。
序号 | 技术 | 作用 |
---|---|---|
1 | Struts | 基于mvc模式的应用层框架技术! |
2 | Spring | 创建对象、处理对象的依赖关系以及框架整合! |
3 | Hibernate | 基于持久层的框架(数据访问层使用)! |
(1)操作XML数据
(2)使用Jdbc技术
a)原始的jdbc操作, Connection/Statement/ResultSet
b)自定义一个持久层框架, 封装了dao的通用方法
c)DbUtils组件, 轻量级的dao的组件;
d)Hibernate技术【hibernate最终执行的也是jdbc代码!】
O, Object 对象
R, Realtion 关系 (关系型数据库: MySQL, Oracle…)
M,Mapping 映射
ORM, 对象关系映射!
ORM, 解决什么问题?
存储: 把对象的数据直接保存到数据库
获取: 直接从数据库拿到一个对象
想做到上面2点,必须要有映射!
Hibernate是ORM的实现!
1、源码,引入jar文件
2、配置(.xml or .properties)
3、API
Hibernate开发步骤
(1)下载源码
版本:hibernate-distribution-3.6.0.Final,下载地址如下:
https://sourceforge.net/projects/hibernate/files/hibernate3/3.6.0.Final/
选择141.0MB的文件,它的文件格式是.zip格式的,而下面的文件是.gz格式的。
解压之后,它的源码位于hibernate-distribution-3.6.0.Final\project\core\src目录下
(2)引入jar文件
a)hibernate3.jar (核心文件)
位于hibernate-distribution-3.6.0.Final目录下
b)required (必须引入的jar,共6个)
位于hibernate-distribution-3.6.0.Final\lib\required目录下
c)jpa 目录
位于hibernate-distribution-3.6.0.Final\lib\jpa目录
d)数据库驱动包(我用的是mysql的驱动包)
(3)写对象以及对象的映射
a)Employee.java 对象
import java.util.Date; public class Employee { private int empId; private String empName; private Date workDate; public int getEmpId() { return empId; } public void setEmpId(int empId) { this.empId = empId; } public String getEmpName() { return empName; } public void setEmpName(String empName) { this.empName = empName; } public Date getWorkDate() { return workDate; } public void setWorkDate(Date workDate) { this.workDate = workDate; } }
b)Employee.hbm.xml 对象的映射 (映射文件)
(.hbm可能是hibernate mapping的缩写)
(4)主配置文件 src/hibernate.cfg.xml
a)数据库连接配置
b)加载所用的映射(*.hbm.xml)
com.mysql.jdbc.Driver jdbc:mysql:///test root root org.hibernate.dialect.MySQL5Dialect true true update
(5)测试
package com.rk.hibernate.a_hello; import java.util.Date; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.classic.Session; public class App { public static void main(String[] args) { // 对象 Employee emp = new Employee(); emp.setEmpName("张三"); emp.setWorkDate(new Date()); /* * 主体思路:Configuration-->SessionFactory-->Session * 细节:Session-->Transaction,必须由session创建transaction,否则无法保存。 */ // 获取加载配置文件的管理类对象 Configuration config = new Configuration(); config.configure(); // 创建session的工厂对象 SessionFactory sessionFactory = config.buildSessionFactory(); // 创建session (代表一个会话,与数据库连接的会话) Session session = sessionFactory.openSession(); // 开启事务 Transaction transaction = session.beginTransaction(); //保存数据 session.save(emp); // 提交事务 transaction.commit(); // 关闭 session.close(); sessionFactory.close(); System.out.println("Over"); } }