有了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