MyBatis知多少(11)企业数据库】的更多相关文章

企业数据库比应用程序数据库更大,其外部影响也更大.它们与其他系统之间存在更多的关系,包括依赖关系和被依赖关系.这些关系可能是Web应用程序与报表工具之间的,但也很有可 能是与其他的复杂系统和数据库的接口.在企业数据库中,不仅仅存在远比应用程序数据库多得 多的外部接口,而且这些接口的作用方式也大不相同.一些接口可能是用于每晚批量加载数据的 接口,其他的则可能是实时事务处理接口.由于这些原因,企业数据库本身可能实际上就是由不止一个数据库组成的.下图从较高的层次描绘了一个企业数据库的例子. 企业数据库…
在现代软件项目中数据库通常被认为是遗留组件.它们一直以来都被认为难以使用,不论是出于技术的还是非技术的原因.大多数软件开发人员宁可从头开始完完全全地重建一个数据库. 如果数据库是遗留下来的,相信一些开发人员会真心地希望负有此责的,只可惜两种情况都是不实际的,也不可能发生.不论你是否相信,数据库的存在总有它自己的理由——不论这个理由是否充分.可能是数据库变更的代价太高了,也可能是因为有其他系统依赖于该数据库.不论数据库被质疑的原因如何,我们都应该学会如何高效地与任何类型(包括饱受非议)的数据库打交…
如果你从事软件开发工作有了一段时间的话,那么肯定听过关于“自己动手还是花钱购买” 的争论.该争论是说,针对一个业务问题,我们是应该自己动手构建自己的解决方案呢,还是应 该花钱购买一个声称已经解决了此问题的软件包.通常付出的代价是差不多的(否则也就没什么好争论的了),但真正的权衡其实在于“自己动手所要花费的时间”与“花钱购买来的软件包和 我们要解决的问题的契合度”.自己构建的软件当然能恰到好处地符合业务需求,但实现它确实 需要更多的时间.购买软件包当然非常迅速,但有时又不一定能满足我们所有的需求.…
并非所有的数据库都如此复杂,需要使用昂贵的数据库管理系统以及企业级的硬件.一些数 据库其实非常小,足以运行在一台老式的PC机上.所有的数据库都是不一样的.它们有各自不 同的需求和不同的挑战.iBATIS可以帮助你使用几乎任何类型的关系数据库,但了解你使用的数 据库究竟是哪种类型通常也是非常重要的. 数据库的划分更多是依据它与其他系统的关系,而不是依据其设计和大小.但数据库的设计 和大小又往往取决于它与其他系统的关系.另一个会影响数据库设计和大小的因素就是数据库的 年龄.随着时间的推移,数据库往往…
应用程序数据库往往是最小.最简单.也最易于使用的数据库.这种数据库往往是我们这些开发人员通常不介意使用甚至非常乐意使用的.应用程序数据库通常与我们的应用程序处于同一个项目中,两者一齐设计和实现.正是因为这个原因,应用程序数据库的设计往往存在非常大的自由度,它也最有可能与我们的特定应用程序完美匹配.应用程序数据库的对外影响是最小的, 因为它通常只有一两个对外接口.第一个接口连接到我们的应用程序,而第二个接口可能就是一个简单的报表框架或报表工具.下图从较高的层次展示了一个应用程序数据库以及它与其他系…
MyBatis的存在就是为了简化对关系数据库的访问.数据库的确非常复杂,要正确地使用它们需要做很多的工作.数据库负责管理数据和修改数据.我们使用数据库而不简简单单地使用一个 平板文件的原因就在于数据库为我们提供了许多好处,特别是在数据完整性.性能以及安全性方面. 数据完整性 数据完整性可能是数据库提供的最重要的好处了,因为没有数据完整性,其他一切就没有意义了.如果数据不是一致的.可靠的以及正确的,那它们又有多少价值呢.数据库通过使用强数 据类型,强制约束,以及使用事务从而实现数据完整性的要求.…
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…