Ibatis是一个很好用的数据库框架。通过XML的配置让你可以系统化你的数据库操作。
我这里介绍一个Ibatis的小例子。
这里我用我最喜欢H2做为数据库。
首先是Config文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <sqlMapConfig> <transactionManager type="JDBC"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="org.h2.Driver" /> <property name="JDBC.ConnectionURL" value="jdbc:h2:tcp://localhost:9394/D:\oa_db\oa" /> <property name="JDBC.Username" value="sa" /> <property name="JDBC.Password" value="sa" /> </dataSource> </transactionManager> <sqlMap resource="com/tntxia/test/ibatis/User.xml"/> </sqlMapConfig>
接下来是Mapping文件:
User.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <sqlMap> <select id="getAllUser" resultClass="java.util.HashMap"> SELECT * FROM username </select> </sqlMap>
可见,Ibatis的配置非常的简单,而且明了。
接下来,我们再写一段测试的程序来测试一下,是否运行成功。
package com.tntxia.dbmanager.sqlmapping; import java.io.*; import java.sql.SQLException; import java.util.List; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder; public class Test { /** * @param args * @throws FileNotFoundException * @throws NodeletException * @throws SQLException */ public static void main(String[] args) throws FileNotFoundException, SQLException { Reader reader = new FileReader(new File("config.xml")); SqlMapClient client = SqlMapClientBuilder.buildSqlMapClient(reader); List list = client.queryForList("getAllUser"); System.out.println(list.size()); } }
结果显示2,说明Ibatis已经把数据库中的信息查询出来了。
Ibatis有个不方便的地方,就是他的SQLMap的配置文件是放在Classpath里面的,这里,我们可以自定义一个ConfigParser类,来实现把SQLMap的配置文件放在文件目录上:
package com.tntxia.ibatis; import java.io.File; import java.io.FileReader; import java.io.Reader; import java.util.Properties; import org.w3c.dom.Node; import com.ibatis.common.xml.Nodelet; import com.ibatis.common.xml.NodeletUtils; import com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser; import com.ibatis.sqlmap.engine.builder.xml.SqlMapParser; public class MySqlMapConfigParser extends SqlMapConfigParser { public MySqlMapConfigParser(){ this.parser.setValidation(false); } @Override protected void addSqlMapNodelets() { parser.addNodelet("/sqlMapConfig/sqlMap", new Nodelet() { public void process(Node node) throws Exception { vars.errorCtx.setActivity("loading the SQL Map resource"); Properties attributes = NodeletUtils.parseAttributes(node, vars.properties); String filePath = attributes.getProperty("file"); Reader reader = new FileReader(new File(filePath)); (new SqlMapParser(vars)).parse(reader); } }); } }
这里我们自定义了一个Path的属性,所以我们要改一上config.xml:
<?xml version="1.0" encoding="UTF-8"?> <sqlMapConfig> <transactionManager type="JDBC"> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="org.h2.Driver" /> <property name="JDBC.ConnectionURL" value="jdbc:h2:tcp://localhost:9394/D:\oa_db\oa" /> <property name="JDBC.Username" value="sa" /> <property name="JDBC.Password" value="sa" /> </dataSource> </transactionManager> <sqlMap file="User.xml"/> </sqlMapConfig>
这样,我们的User.xml文件可以不放得那么深了。
直接放在项目的根目录就行了。
相关推荐
简单的Ibatis入门例子,让你踏入Ibatis大门
ibatis入门级别代码,带有增删改查,多条件查询,单对象查询和数据集合查询,作为刚学习ibatis时使用(码云同步)
最简单的iBatis入门例子
NULL 博文链接:https://qing393260529.iteye.com/blog/459723
iBATIS入门学习
ibatis入门教程
NULL 博文链接:https://vincent-yy.iteye.com/blog/325670
ibatis入门与ibatis迭代的用法
NULL 博文链接:https://wcp88888888.iteye.com/blog/1328456
ibatis入门到精通详细讲解,配以生动详细的实例,让你用最少的时间学以致用
ibatis入门,这里讲述了初级和高级的所有ibatis数据库连接的配置
iBATIS 入门讲解 程序源码 iBATIS开发指南
ibatis入门级完整示例,包含ibatis-2.3.4.726.jar、commons-logging-1.0.4.jar、mysql-connector-java-3.1.10-bin.jar和建表语句。
包含IBatis入门教程和开发指南的PDF格式,详细介绍了IBATIS的架构和原理,安装和配置,以及如何使用IBATIS。
ibatis 入门级教程,里面包含了Ibatis的增删改查操作,采用的数据库是Oracle,表使用的是emp表,同时包含了Ibatis的主键生成策略,里面注释写得比较详细,非常适合Ibatis入门学习
iBATIS框架学习:iBATIS入门教程
ibatis入门教程,ibatis开发指南 内含两份文档
简单的ibatis入门实例(全代码),附带数据库以及表格创建语句,适合新手学习