配色: 字号:
hibernate框架
2017-02-23 | 阅:  转:  |  分享 
  
2017/02/23Hibernate:开发源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心
所欲的使用对象http://baike.so.com/doc/3390106-3568658.html编程思维来操纵http://
baike.so.com/doc/5447468-5685836.html数据库。Hibernate可以应用在任何使用JDBC的
场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以
在应用EJB的J2EE架构中取代CMP,完成http://baike.so.com/doc/5030500-5256785.htm
l数据持久化的重任。核心接口和类(6个):session、sessionfactory、transaction、query、cri
teria和configurationORM(ObjectRelationMapping):对象关系映射,其中的O指的是jav
a对象,R指的关系型数据库,M指的是在java对象和关系型数据库之间建立起来的映射关系ORM具体的技术实现:Hibernate、I
batis(mybatis)、JPA(基本不用)开发效率高(执行效率低):hibernate(是对象操作数据库)执行效率高(开发效
率低):JDBC(直接调用数据库)Hibernate是JDBC的轻量级的对象封装;Mybatis是半自动的;Hibernate(全
自动)>mybatis(半自动)>JDBC(手动)(创建java工程也可以是web工程)开发hibernate步骤:(xml位置)
引入jar文件2、设计表同时开发和表的字段名一致的javabean(持久化类)3、创建对象-关系映射文件:映射文件的扩展名为.h
bm.xml(这里Dept.hbm.xml文件)4、创建Hibernate配置文件(hibernate.cfg.xml)连接
数据库的信息(连接地址、账号、密码、连接路径(类似于BaseDao类的内容))5、加载xml文件,创建sessionFactory
publicclassHibernateUtil{publicstaticSessiongetSession(){/
/获取当前sessionreturnnewConfiguration().configure().buildSessionFa
ctory().openSession()}}过程:6、开发crudprivateSessionsession=null;pu
blicvoidadd(Personper){//添加session=HibernateUtil.getSession();
TransactionbeginTransaction=session.beginTransaction();//开启事务s
ession.save(per);//添加beginTransaction.commit();//事务提交session.clos
e();}publicvoidupdate(Personper){//修改session=HibernateUtil.get
Session();TransactionbeginTransaction=session.beginTransaction
();//开启事务session.update(per);//修改beginTransaction.commit();//事务提交
session.close();}publicvoiddel(Personper){//删除session=Hibernat
eUtil.getSession();TransactionbeginTransaction=session.beginTr
ansaction();//开启事务session.delete(per);//删除beginTransaction.commit
();//事务提交session.close();}2017/02/08HQL语法:和sql语法相似Hibernate的生命周期:
临时态(与数据库没关系,和类有关系!)持久态(与数据库有关系)游离态(关闭与数据库连接)Hibernate的主键生成方式Seque
nce(oracle专用)assigned:指派(重复插入数据时会违反数据唯一性)适用所有数据库native?(数据库本地生成策略
,适用多个数据库)uuid.hex:生成一个32位,不会重复的主键,可以达到真正的跨数据库(通常来说对应的应该是String数据
类型)适用所有数据库foreign:?通常在一对一主键关联的时候使用,基于外键的主键生成策略。自动增长identity:适用于My
SQL、DB2、MS?SQL?Server,采用数据库生成的主键,用于为long、short、int类型生成唯一标识使用SQL?S
erver?和?MySQL?的自增字段,这个方法不能放到?Oracle?中,Oracle?不支持自增字段,要设定sequence(
MySQL?和?SQL?Server?中很常用)什么时候用hql语句?什么时候用sql语句?添加、删除、修改分页用sql语句Hq
l接近sql语法,对于复杂的语法有点乏力分页用原生sql语句Stringhql=“selectfrom表名limi
t?,?”;添加实体类转换对象;整合:Hibernate和srtuts移动jar包2、把下面的文件移动到以下的目录3、修改框架修
改UserDaoImpl里面的sql语句(改为hql语句)calss效果2017/02/13多表连接查询(一对多)测试:配置文件多对多(多对多是会创建新的中间表)分页控件:1、导入整个PageUtils文件(class文件)在UserDaoImpl里面写Action里面的控件显示效果
献花(0)
+1
(本文系SUNMOONsin1...首藏)