MyBatis知多少(17)MyBatis和JDBC

有了MyBatis,就再也不须要编写JDBC代码了。像JDBCT这样的API的确很是强大,但使用起来总难免以为太过繁琐。代码清单给出了一个使用JDBC的示例。html

从这个例子中很容易看出,JDBC API会产生许多额外的开销。尽管如此,每一行代码又都是必不可少的,因此要减小代码量还真不是一件容易的事情。最多也只不过是将其中的一些代码 挪到某个实用方法中,最明显的就是那些关闭资源(如PreparedStatement和 ResultSet)的代码。sql

其实,若是使用MyBatis,MyBatis在后台也是运行几乎相同的JDBC代码。MyBatis会获取数据 库链接,设置其参数,执行其语句,获取执行结果,并在最后关闭全部的资源。然而,须要本身亲自编写的代码量却大大地减小了。代码清单给出了使用MyBatis运行相同的SQL语句时你须要编写的代码。数据库

MyBatis显然比JDBC要精简得多spa

 <select id="getEmployee" parameterClass="j ava•lang.Integer" resultClass="Employee">
 SELECT ID as id,
     EMPLOYEE_NUMBER  as employeeNumber, 
     FIRST_NAME   as firstName,     LAST一NAME   as lastName,     TITLE      as title FROM EMPLOYEE WHERE EMPLOYEE_NUMBER = #empNum# </select>

根本无需比较,MyBatis代码明显更加简洁,更容易阅读,所以也更容易维护。稍后会讨论更多关于使用MyBatis的好处。可是如今,你最关心的多是如何用Java代码运行以上的语句。 如前例所示,运行它仅仅须要一行简单代码:code

Employee emp = (Employee) sqlMap.queryForObject("getEmployee",new Integer(5));

无需多说,这行代码会执行相应的SQL语句,设置其参数,并以一个真实的Java对象的形式做为结果返回。SQL语句被“干干净净”地封装在Java代码以外的一个XML文件中。iBATIS负责 管理幕后的全部资源,其运行的实际效果与咱们以前在代码清单中所见的JDBC代码示例是彻底同样的。htm

系列文章:对象

MyBatis知多少(1)blog

MyBatis知多少(2)资源

MyBatis知多少(3)get

MyBatis知多少(4)MyBatis的优点

MyBatis知多少(5)业务对象模型

MyBatis知多少(6)表现层与业务逻辑层

MyBatis知多少(7)持久层

MyBatis知多少(8)关系型数据库

MyBatis知多少(9)不一样类型的数据库

MyBatis知多少(10)应用程序数据库

MyBatis知多少(11)企业数据库

MyBatis知多少(12)私有数据库

MyBatis知多少(13)MyBatis如何解决数据库的常见问题

MyBatis知多少(14)分散的数据库系统

MyBatis知多少(15)数据模型

MyBatis知多少(16)MyBatis映射

相关文章
相关标签/搜索