77范文网 - 专业文章范例文档资料分享平台

hibernate教学学习文档(2)

来源:网络收集 时间:2019-08-03 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

查询所有:new Query(\分页: setFirstResult(int) setMaxResults(int) @Test public void demo04(){ Configuration config = new Configuration().configure(); SessionFactory sessionFactory = config.buildSessionFactory(); Session session = sessionFactory.openSession(); session.beginTransaction(); //分页查询 ,提供hibernate提供的api分页 // * 回顾sql select * from t_user limit startIndex,pageSize; // ** startIndex 开始索引 // ** pageSize 每页显示个数 Query query = session.createQuery(\); // 第一页 // query.setFirstResult(0); // query.setMaxResults(2); // 第二页 query.setFirstResult(2); //回顾算法: startIndex = (pageNum - 1 ) * pageSize; query.setMaxResults(2); List allUser = query.list(); for (User user : allUser) { System.out.println(user); } session.getTransaction().commit(); //获得之前开启的事务 session.close(); sessionFactory.close(); } @Test public void demo03(){ Configuration config = new Configuration().configure(); SessionFactory sessionFactory = config.buildSessionFactory(); Session session = sessionFactory.openSession(); session.beginTransaction(); //查询所有--使用hibernate 查询 query 语句 hql // * hql hibernate提供面向对象的查询语句,类似与sql // ** sql 格式: select 表中字段 from 表名 where ... ,例如: select * from t_user // ** hql 格式:[select 对象属性] from 对象[ where ...] ,例如:from User Query query = session.createQuery(\); List allUser =query.list(); for (User user : allUser) { System.out.println(user); } session.getTransaction().commit(); //获得之前开启的事务 session.close(); sessionFactory.close(); } @Test public void demo02(){ Configuration config = new Configuration().configure(); SessionFactory sessionFactory = config.buildSessionFactory(); Session session = sessionFactory.openSession(); session.beginTransaction(); //通过id查询 User user = (User)session.get(User.class, 1); System.out.println(user); session.getTransaction().commit(); //获得之前开启的事务 session.close(); sessionFactory.close(); } @Test public void demo01(){ User user = new User(); user.setUid(1); user.setUsername(\杰克\); Configuration config = new Configuration().configure(); SessionFactory factory = config.buildSessionFactory(); Session session = factory.openSession(); Transaction transaction = session.beginTransaction(); //更新 -- 通过id更新所有内容,如果没有设置null session.update(user); transaction.commit();

} session.close(); factory.close(); 4 api详解

4.1 结构图

PO persistent object 持久对象

应用程序通过po类与hibernate进行交互。

4.2 Configuration

? hibernate 提供用于加载配置文件的。

? 核心配置文件种类:hibernate.properties 和 hibernate.cfg.xml

一般情况使用 hibernate.cfg.xml ,可以配置不同内容(基本信息,映射文件) hibernate.properties 只能配置基本信息(key=value) 参考:%h%/project/etc/hibernate.properties

? 构造方法,new Configuration() hibernate将加载 hibernate.properties 配置文件 ? 提供方法:configure() 加载hibernate.cfg.xml 配置文件

?

通过 configure(String ) 指定自定义的cfg.xml文件。 加载映射文件 hbm.xml

addResource() 加载自定义的映射文件。例如:config.addResource(\addClass() 加载自定义映射文件。例如:config.addClass(User.class);

建议:映射文件与Java通同名同包,且扩展名为hbm.xml 注意:如果重复添加JavaBean,提示错误

4.3 SessionFactory

? ? ? ? ? ?

hibernate提供 工厂,用于生成session 每一个应用程序只能有一个实例(单例),类似Jdbc时学习的连接池 线程安全的,及不同的线程都可以获得不同session。 获得实例 configuration.buildSessionFactory() 获得session

openSession() 创建一个回话,每执行一次,session都是新的。 getCurrentSession() 获得当前线程中绑定的session,暂时不能用。

SessionFactory 缓存配置信息(例如: hibernate.cfg.xml / ...hbm.xml 配置内容)

4.4 Session

? ? ? ?

hibernate 提供 操作 PO类

线程不安全,及每一个用户必须独享自己的session。 常用api

save/update/delete/createQuery (list/setFirstResult/setMaxResults) 操作事务

session.beginTransaction() 开启事务 session.getTransaction() 获得当前事务

4.5 事务操作

? 开启事务:beginTransaction() ? 提交事务:commit() ? 回滚事务:rollback()

5 主配置文件详解

? 名称:hibernate.cfg.xml

? 位置:src (classpath) ---> WEB-INF/classes

? 配置 BeanFactory异常

原因:java web 6.0项目,默认进行Bean校验,通常不使用。

解决方案: 方案1:删除此jar 方案2:hibernate 配置取消

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库hibernate教学学习文档(2)在线全文阅读。

hibernate教学学习文档(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/675492.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: