框架学习笔记之Hibernate
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了框架学习笔记之Hibernate相关的知识,希望对你有一定的参考价值。
一、什么是Hibernate
Hibernate框架是当今主流的持久层框架之一,该框架是基于JDBC的主流持久化框架,使用它之后能够大大简化程序DAO层的代码量,提高工作效率,因此受广大开发人员的喜爱。配合Strut2和Spring框架,就是经典的SSH组合。
二、ORM思想
学习该框架的编程思想是 ORM(Object Relational Mapping)即对象关系映射是思想,进而对数据库进行CRUD操作。所谓的ORM思想就是把实体对象跟数据库中的表一一对应
ORM的原理如下
三、环境搭建
1.所需jar包
2.两个配置文件
2.1映射配置文件
2.2核心配置文件
该配置文件通常在src的源文件夹下
四、CRUD操作
@Test
public void testCRUD(){ //第一步加载核心配置文件
Configuration configuration = new Configuration();
configuration.configure();
//得到SessionFactory对象
SessionFactory factory = configuration.buildSessionFactory();
//得到session对象(此处的session对象相当于jdbc中的connection)
Session session = factory.openSession();
//开启事务
Transaction ts = session.beginTransaction();
try{
//此处进行CRUD操作
//添加操作User
User user = new User();
user.set(...);
session.save(user);
//查找操作
User user = session.get(User.class,"uid");//查找指定ID下的对象
//其他查询方式
//使用Query对象使用hql语句
Query qr = session.createQuery("from User where 属性名 =?");
qr.setString(0,"...");
List<User> user = qr.list();
//使用Criteria对象查询
Criteria criteria = session.createCriteria(User。class);
List<User> list = criteria.list();
//使用SQLQuery对象查询
SQLQuery sq = session.createSQLQuery("select * from user ");
sq.addEntity(User.class);
List<User> list = sq.list();
//修改操作 先查找在修改
User user = session.get(User.class,"uid");
user.set(...);
session.update(user);
//删除操作
User user = session.get(User.class,"uid");
session.delete(user);
//或者
User user = new User();
user.setUid("uid");
session.delete(user);
ts.commit();
}catch(Exception e){
ts.rollback();
}finally{
session.close();
factory.close();
}
}
五、实体之间关联
5.1一对多关系
每个实体对应一个映射配置文件 如果两个实体之间是一对多关系是需要两个映射配置文件
one to many中
one的class标签中加入
<!--在客户映射文件中表示所有联系人 使用set标签表示所有联系人 set标签中的name属性 :属性值写在客户实体类里面表示set集合名称 实体类里面表示联系人的set集合名称 一对多见表有外键 hibernate机制:双向维护外键字啊一和多哪一方都有配置外键 在one-to-many中class里面写的是联系人的实体类路径 inverse:放弃关系维护 因为hibernate中是双向逐渐维护 --> <set name="setLinkMan" inverse="true" cascade="save-update,delete"> <key column="clid"></key> <one-to-many class="cn.entity.LinkMan"/> </set>
many的class标签中加入
<many-to-one name="customer" class="cn.entity.Customer" column="clid"></many-to-one>
未完。。。
本人在校大二学生自学java的,水平有限,出现错误各位大神一定多多指教,谢谢了!
以上是关于框架学习笔记之Hibernate的主要内容,如果未能解决你的问题,请参考以下文章