深入了解ibatis源码----简单ibatis示例代码
来源:互联网 发布:网络胜利组动漫风车 编辑:程序博客网 时间:2024/05/22 08:41
搭建源码环境:
1.创建sql数据库。
CREATE TABLE USER_ACCOUNT (USERID INT(3) NOT NULL AUTO_INCREMENT,USERNAME VARCHAR(10) NOT NULL,PASSSWORD VARCHAR(30) NOT NULL,GROUPNAME VARCHAR(10),PRIMARY KEY (USERID));CREATE TABLE USER_ACCOUNT (USERID INT(3) NOT NULL AUTO_INCREMENT,USERNAME VARCHAR(10) NOT NULL,PASSSWORD VARCHAR(30) NOT NULL,GROUPNAME VARCHAR(10),PRIMARY KEY (USERID));
2. 写主测试代码
import com.ibatis.sqlmap.client.*;import com.ibatis.common.resources.Resources;import java.io.Reader;import java.util.List;public class Main {public static void main(String arg[]) throws Exception {String resource = "SqlMapConfig.xml";Reader reader = Resources.getResourceAsReader (resource);SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);List list = sqlMap.queryForList("getAllUsers", "EMPLOYEE");System.out.println("Selected " + list.size() + " records.");for(int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}}}
3.将jar包加入到工程,并把源码复制到src目录下
4.src目录下加入配置文件SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMapConfigPUBLIC "-//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="com.mysql.jdbc.Driver"/><property name="JDBC.ConnectionURL"value="jdbc:mysql://localhost/test"/><property name="JDBC.Username"value="root"/><property name="JDBC.Password"value="wangwei"/></dataSource></transactionManager><sqlMap resource="SqlMap.xml" /></sqlMapConfig>
5.加入映射文件SqlMap.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="getAllUsers" parameterClass="string"resultClass="hashmap">SELECT * FROM USER_ACCOUNT WHERE GROUPNAME = #groupName#</select></sqlMap>
6.单步debug代码
List list = sqlMap.queryForList("getAllUsers", "EMPLOYEE");
调用SqlMapClientImpl.java
public List queryForList(String id, Object paramObject) throws SQLException { return getLocalSqlMapSession().queryForList(id, paramObject); }
protected SqlMapSessionImpl getLocalSqlMapSession() {
SqlMapSessionImpl sqlMapSession = localSqlMapSession.get();
if (sqlMapSession == null || sqlMapSession.isClosed()) {
sqlMapSession = new SqlMapSessionImpl(this);
localSqlMapSession.set(sqlMapSession);
}
return sqlMapSession;
}
调用:SqlMapSessionImpl.java
public List queryForList(String id, Object paramObject) throws SQLException { return delegate.queryForList(sessionScope, id, paramObject); }
调用SqlMapExecutorDelegate.java
public List queryForList(SessionScope sessionScope, String id, Object paramObject) throws SQLException { return queryForList(sessionScope, id, paramObject, SqlExecutor.NO_SKIPPED_RESULTS, SqlExecutor.NO_MAXIMUM_RESULTS); }
public List queryForList(SessionScope sessionScope, String id, Object paramObject, int skip, int max) throws SQLException {
List list = null;
MappedStatement ms = getMappedStatement(id);
Transaction trans = getTransaction(sessionScope);
boolean autoStart = trans == null;
try {
trans = autoStartTransaction(sessionScope, autoStart, trans);
StatementScope statementScope = beginStatementScope(sessionScope, ms);
try {
list = ms.executeQueryForList(statementScope, trans, paramObject, skip, max);
} finally {
endStatementScope(statementScope);
}
autoCommitTransaction(sessionScope, autoStart);
} finally {
autoEndTransaction(sessionScope, autoStart);
}
return list;
}
至此返回结果(完成)
- 深入了解ibatis源码----简单ibatis示例代码
- 深入了解ibatis
- 一个简单的iBatis示例
- iBATIS介绍及简单示例
- iBATIS介绍及简单示例
- iBATIS介绍及简单示例
- 了解 ibatis
- ibatis了解
- Ibatis学习总结+ibatis与hibernate简单比较+示例
- ibatis源码
- (续)一个简单的iBatis示例
- iBatis与MyBatis了解
- ibatis
- iBatis
- ibatis
- iBatis
- ibatis
- ibatis
- linux 自动重启tomcat 脚本
- Flex Tree组件
- struts学习
- struts深入原理之RequestProcessor与xml
- struts深入理解之登录示例的源码跟踪
- 深入了解ibatis源码----简单ibatis示例代码
- 单机redis 主从实例
- redis java对象操作
- redis session共享中的序列化问题
- jQuery Bootstrap框架
- combobox下拉表格
- eclipse git 地址
- 处理Main方法中传入的参数--通过阅读Jmeter的源码分析得到
- Nifti and epuck test @asl