MyBatis知多少(24)存储过程】的更多相关文章

使用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…
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…
瘦数据模型是一种最为臭名昭著并且问题多多的对关系数据库系统的滥用.不幸的是,有时又的确需要瘦数据模型.所谓瘦数据模型,就是简单地将每张表都设计为一种通用数据结构,用于存储名值对的集合.这非常像Java中的属性文件.有时这些表也可用于存储元数据,例如期望的数据类型等.这是必要的, 因为数据库只允许一列有一种类型定义.要更好地理解瘦数据模型,考虑下面这个典型的地址数据的示例,如表1-2所示. 表1-2典型模型中的地址数据 ADDRESSJD STREET CITY STATE ZIP COUNTRY…
MyBatis是一个混合型解决方案.它汲取了所有这些解决方案中最有价值的思想并将它们融会贯通.下表总结了MyBatis从我们之前讨论的那些方案中所汲取的思想. 方 案 相同的优点 解决的问题 存储过程 MyBatis对SQL进行了封装和外部化,使SQL从你 的应用程序代码中分离出来.MyBatis具有与存储 过程相似的API,但MyBatis的这些API是面向对象 的.MyBatis也完全支持对存储过程的直接调用 业务逻辑从数据库中分离出来,应用程序更容易部署与测试,也具有更好的可移植性 内联S…
解决存储过程固有限制的方法之一就是将SQL嵌入到更加通用的语言中去.与存储过程将业务逻辑移入数据库相反,内联SQL将SQL从数据库移入了应用程序代码.这就使得SQL语句可以直接与语言进行交互.从某种意义上说,SQL成为了该语言的一个特性.有很多语言具有这种“特 性”,包括COBOL.C.甚至Java.以下就是Java中SQL的一个示例: String name; Date hiredate; #sql { SELECT emp_name, hire_date ,hiredate FROM emp…
MyBatis从目前最流行的关系数据库访问方法中吸收了大量的优秀特征和思想,并找出其中的协同增效作用.下图展示了MyBatis框架是如何吸收我们在多年使用不同方式进行数据库集成的 开发过程中所学到的知识,并将其中最优秀的思想结合起来,形成这个混合型解决方案的. 接下来的几节将讨论这些不同的数据库访问方法,以及iBATIS从每种方法中汲取的优秀思想. SQL MyBatis的核心是SQL.从根本上说,所有的关系数据库都支持SQL,并将它作为与数据库交互的主要方式.SQL是一种简单的.非过程化的语言…
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; +----+-…