任何一个重要的数据库无疑都会拥有不止一个依赖者.即使该数据库只是简单地被两个Web 应用程序所共享,也有许多事情需要考虑.假设有一个名为网上购物车的Web应用程序,它使用了一个包含类别代码的数据库.就网上购物车来说,类别代码是静态的,永远不会变化,所以该应用程序高速缓存了这些代码以提高性能.现在再假设有一个名为网上管理器的Web应用程序,它是用于更新类别代码的.这个网上管理器 应用程序运行在一个不同的服务器上,是一个完全独立的程序.那么,设想一下,当网上管理器更新了一个类别代码时,网上购物车如何…
iBatis和Hibernate之间有着较大的差异,但两者解决方案很好,因为他们有特定的领域.我个人建议使用MyBatis的,如果: 你想创建自己的SQL,并愿意维持他们. 你的环境是由关系数据模型驱动的. 你的项目工作有复杂架构的. 简单地要使用Hibernate,如果: 你的环境是由对象模型驱动的,并希望自动生成的SQL. 要计算的一些区别: MyBatis: 简单 更快的开发时间 灵活 封装尺寸更小 Hibernate: 为你生成SQL,这意味着你不用花时间在SQL上. 提供了许多更先进的…
这是很容易,同时与iBATIS的工作程序进行调试. iBATIS有内置的日志支持,并适用于下列日志库,并在这个顺序搜索他们. Jakarta Commons日志记录(JCL). Log4J JDK 日志 可以使用任何上面列出的库在iBATIS. 调试和Log4J: 假设你要使用Log4J,这是最好用的日志记录.继续操作之前,需要交叉检查以下几点: Log4J JAR 文件 (log4j-{version}.jar) 应在CLASSPATH中. 必须在CLASSPATH中提供log4j.prope…
使用动态查询是MyBatis一个非常强大的功能.有时你已经改变WHERE子句条件的基础上你的参数对象的状态.在这种情况下的MyBatis提供了一组可以映射语句中使用,以提高SQL语句的重用性和灵活性的动态SQL标签. 所有的逻辑是使用一些额外的标签放在:XML文件.下面是一个例子,其中的SELECT语句将努力在两个方面: 如果想传递一个ID,然后它会返回所有与该ID的记录, 否则,将返回所有雇员ID为NULL的记录. <?xml version="1.0" encoding=&q…
使用MyBatis配置来调用存储过程.为了理解这一章,首先需要了解我们是如何在MySQL中创建一个存储过程. 在继续对本节学习之前,可以自行学习MySQL存储过程. 我们已经在MySQL下有EMPLOYEE表: CREATE TABLE EMPLOYEE ( id INT NOT NULL auto_increment, first_name ) default NULL, last_name ) default NULL, salary INT default NULL, PRIMARY KE…
resultMap的元素是在MyBatis的最重要和最强大的元素.您可以通过使用MyBatis的结果映射减少高达90%的JDBC编码,在某些情况下,可以让你做JDBC不支持的事情. ResultMaps的设计是这样的简单语句不需要明确的结果映射,以及更复杂的报表要求不超过绝对必要说明的关系. 本章将只给你一个简单的介绍iBATIS的结果映射. 我们已经在MySQL下有EMPLOYEE表: CREATE TABLE EMPLOYEE ( id INT NOT NULL auto_increment…
本节从表中使用MyBatis删除记录. 我们已经在MySQL下有EMPLOYEE表: CREATE TABLE EMPLOYEE ( id INT NOT NULL auto_increment, first_name ) default NULL, last_name ) default NULL, salary INT default NULL, PRIMARY KEY (id) ); 假设这个表是有两条记录如下: mysql> select * from EMPLOYEE; +----+-…
上一章展示了如何使用MyBatis对表进行读取操作.本章将告诉你如何在一个表中使用MyBatis更新记录. 我们已经在MySQL下有EMPLOYEE表: CREATE TABLE EMPLOYEE ( id INT NOT NULL auto_increment, first_name ) default NULL, last_name ) default NULL, salary INT default NULL, PRIMARY KEY (id) ); 此表有如下只有一条记录: mysql>…
上篇展示了如何使用MyBatis执行创建操作表.本章将告诉你如何使用MyBatis来读取表. 我们已经在MySQL下有EMPLOYEE表: CREATE TABLE EMPLOYEE ( id INT NOT NULL auto_increment, first_name ) default NULL, last_name ) default NULL, salary INT default NULL, PRIMARY KEY (id) ); 此表有如下只有一条记录: mysql> select…
若要使用iBATIS执行的任何CRUD(创建,写入,更新和删除)操作,需要创建一个的POJO(普通Java对象)类对应的表.本课程介绍的对象,将“模式”的数据库表中的行. POJO类必须实现所有执行所需的操作所需的方法. 我们已经在MySQL下有EMPLOYEE表: CREATE TABLE EMPLOYEE ( id INT NOT NULL auto_increment, first_name ) default NULL, last_name ) default NULL, salary…