因为JAVA是面向对象的,JDBC没有做到使数据能够面向对象的编程,使程序员的思考仍停留在SQL语句上。
hibernate3.3_学习笔记
hibernate开发文档
今天在使用SSH整合开发一个Demo的时候发生了很多问题,为了让自己不再犯同样的错误,特此把总结写一下。
MyEclipse使用hibernate正向工程,hibernate的正向工程是指从java实体类生成数据库表的过程,这种过程符合java程序员面向对象编程的思想,也是工程设计的时候使用比较多的一种思想。具体实施过程如下。
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 对象)映射成数据库中的记录。
MySQL+Hibernate下连接空闲8小时自动断开问题解决方案 前段时间刚完成一个家教网项目,数据库为MySQL5.0,持久层使用Hibernate3.1,没有使用额外的连接池,那么Hibernate会默认使用它自带的一个默认连接池,也就是DriverManagerConnectionProvider。 先在本机上调试都毫无问题,于是部署到服务器上,也都没什么问题。由于这是新网站,根本还没正式对外发布和宣传,所以头两天根本没人访问。
第七章缓存及注解第三单元第页/共25页本章相关学习资源《使用缓存提高查询性能》专题《使用注解简化映射配置》专题《升级新闻管理系统》相关专题《使用Hibernate升级新闻管理系统》第7章《缓存及注解》第页/共25页学习平台“Hibernate实现数据持久化”课程学生用书预习检查简述缓存的作用简述Hibernate的缓存分类列举完成实体类常用配置的注解第页/共25页本章任务任务1:使用一级缓存查询特定房屋信息任务2:使用二级缓存和查询缓存任务3:使用注解配置项目任务
第六章Criteria查询及命名查询第三单元第页/共29页本章相关学习资源《使用Criteria查询数据》专题《使用命名查询与本地SQL》专题《使用Hibernate升级新闻管理系统》第6章《Criteria查询及命名查询》第页/共29页学习平台“Hibernate实现数据持久化”课程学生用书预习检查简述如下代码的作用如何使用Criteria实现分页简述实现命名HQL查询的步骤
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 对象)映射成数据库中的记录。 <br> 每 一 个 MyBatis 的 应 用 程 序 都 以 一 个 SqlSessionFactory 对 象 的 实 例 为 核 心 。 SqlSessionFactory 对 象 的 实 例 可 以 通 过 SqlSessionFactoryBuilder 对 象 来 获 得 。 SqlSessionFactoryBuilder 对象可以从 XML 配置文件,或从 Configuration 类的习惯准备的实 例中构建 SqlSessionFactory 对象。
译注:本章讲解的是iBATIS的安装和配置,原书使用的是Java版本,与.NET版本的安装、配置过程不尽相同,因此这里直接就.NET版本进行说明。主要参考的是iBATIS官方的DataMapperGuide文档,本章的配置主要针对DataMapper,DataAccess的配置将出现在第10章。iBATIS的安装过程快速而简单。它是一个类库,而不是应用程序,所以实际上并不需要安装,但要在应用程序中使用它还是要经过几个步骤。如果您熟悉C#和ADO.NET,那么可能需要好好阅读本章为下面的一两章做好准备。
在上一章中我们详细讨论了iBATIS的哲学观,以及这个框架的来历。我们也说过,iBATIS是一个混合式的解决方案(hybrid solution),借鉴了多种操作关系数据库的方法的理念。那么iBATIS到底是什么呢?这一章就来回答这个问题。 iBATIS是一种data mapper。Martin Fowler在他的《Patterns of Enterprise Application Architecture》一书中是这样描述Data Mapper的: 一个映射层,在对象和数据库间传递数据,并保持两者与映射层本身相独立。. 注:Mapper是在两个独立对象间建立通信关系的一种对象。
iBATIS的安装和配置;在前面的章节中,我们了解了iBATIS的sqlMap.config文件的配置,还给出了一个映射语句文件的示例。现在您应该具备了一定基础,可以进一步完善我们的数据访问层了。本章和下一章(执行非查询语句)将详细讨论在DataMap文件中创建和使用映射语句的相关内容。在本章中,我们将首先浏览映射语句的大体内容以及它们的前提知识。然后我们将解释如何使用映射语句从数据库中获取类型化的对象(typedobject),以及如何传入参数来限制返回的数据(比如添加查询条件)。
在上一章中我们详细讨论了iBATIS的哲学观,以及这个框架的来历。我们也说过,iBATIS是一个混合式的解决方案(hybridsolution),借鉴了多种操作关系数据库的方法的理念。那么iBATIS到底是什么呢?这一章就来回答这个问题。iBATIS是一种datamapper。MartinFowler在他的《Patterns of Enterprise Application Architecture》一书中是这样描述DataMapper的:一个映射层,在对象和数据库间传递数据,并保持两者与映射层本身相独立。.注:Mapper是在两个独立对象间建立通信关系的一种对象。Martin很好地区分了数据映射(DataMapping)和元数据映射(MetadataMapping),后者正是O/RM工具的依据,这种工具将数据库的表和列映射到应用程序中的类和字段(field),也就是说它将数据库的元数据映射到类的元数据。
映射参数(MappingParameters)对于大多数SQL语句来说,它们有用是因为我们可以在运行时向其传入参数。有两种方式可以将参数(parameter)映射到语句中:内联(inline)参数和外部(external)参数。使用内联参数,配置一般较为简单,iBATIS会根据您的配置进行“揣测”,以获取其它细节信息。而使用外部参数时,配置一般更为显式的(具体)——因为您告诉iBATIS它该如何去做。4.3.1外部参数映射参数映射(ParameterMap)定义了一个参数的有序列表,它与查询语句的占位符相匹配。
本章内容包括iBATISAPI的更多内容插入数据更新和删除数据使用存储过程对数据库执行查询无疑很重要,但多数程序同时也需要将数据写入数据库。在本章中,我们将探究使用iBATIS操作数据库的几种方式。本章的内容以第4章介绍的概念为基础,因此,如果您刚开始接触iBATiS,还没读过第4章,可以先去浏览一下,因为这一章中的关于参数映射的绝大部分内容同样适用于本章的非查询语句。5.1更新数据的基石 在第4章中,您已经学习了所有的语句类型和基本查询相关的部分API。这里我们再来看一下执行非查询语句常用的API,然后回顾一下更新数据库相关的语句类型。
iBATIS快速上手iBATIS框架非常简单,它上手起来同样简单。有多简单呢?使用iBATIS只要五分钟我们就可以创建一个完整的应用程序了——当然这不是大型的ERP(Enterprise Resource Planning)解决方案,也不是大规模的电子商务网站,只是一个简单的命令行工具,它可以执行iBATISSQLMap中的SQL语句并返回结果到控制台。
映射参数(MappingParameters)对于大多数SQL语句来说,它们有用是因为我们可以在运行时向其传入参数。有两种方式可以将参数(parameter)映射到语句中:内联(inline)参数和外部(external)参数。使用内联参数,配置一般较为简单,iBATIS会根据您的配置进行“揣测”,以获取其它细节信息。而使用外部参数时,配置一般更为显式的(具体)——因为您告诉iBATIS它该如何去做。4.3.1外部参数映射参数映射(ParameterMap)定义了一个参数的有序列表,它与查询语句的占位符相匹配。注意,参数对象的属性定义可以按任意顺序,参数映射会确保每个值得以正确地传入。
iBATIS In Action:序言和目录序言在我的软件开发生涯中,我曾工作于多种不同的环境中。在同一家公司中,人们往往会以不同的方式进行开发。考虑到各种各样的挑战——人、工具,它们就是开发人员所处的世界——我们会很快意识到这个世界是如此变化多端。我永远不能了解下一个咨询项目会给我带来何种意外的挑战,所以总会在工具箱里放上各种不同的工具。在数年时间内,iBATIS不过是一个小代码块,它能在我需要手工编写JDBC代码时为我节省一些时间。那么iBATIS是如何从我的工具箱中的小工具蜕变为一个Apache项目,被数以千计的人使用的呢?我从未有意把iBATIS作为一个完全的开源项目。代码就放在那里,但我既没有出售它,也没有与任何人共享。