搭建ibaits环境
第一个例子
参考《第一个ibatis例子》 jar包说明
ibatis-2.3.4.726.jar :ibatis必须要到的包。
log4j-1.2.14.jar :ibatis使用log4j来记录日志的。一个日志包 mysql.jar :操作mysql的jar包。
ibatis是如何工作的(重点)?
以一个查询为例子:
1. 根据id找到sqlmap.xml文件中的sql语句。 2. 将sql语句转变成预处理sql语句 select name, password from user where id=? 3. 将入参映射入sql语句的参数(如果有入参) 4. 执行sql语句
5. 将sql执行的结果映射到指定类型(原生类型,map,bean,list)中。然后返回结果。
SQL入参parameterClass(重点):
可以是类(javabean),hashmap,或者原生类型(string,int,long,double)当只有一个原生类型入参时,使用#value#来引用,使用map和类通过名字对应设置值。 返回值参数类型resultClass,resultMap(重点): 1. 当结果集列名和类属性名完全对应的时候,则应该使用resultClass来指定查询结果类
型。当然有些列名不对应,可以在sql中使用as重命名达到一致的效果。当只有一个字段的时候,还可以直接使用原生类型(string,int,long)。 2. 当查询结果列名和类属性名对应不上的时候,应该选择resultMap指定查询结果集类型。
否则,则查询出来填充的对象属性为空(数字的为0,对象的为null)。
接口和类的使用
com.ibatis.sqlmap.client.SqlMapClient
此接口是专门用来执行sqlmap.xml文件的sql语句的。它的主要方法有: 此接口提供的方法有: 基本操作:
? Object insert(String id) :执行指定配置ID的增加sql语句 ? Object insert(String id, Object parameterObject) ? int delete(String id) :执行指定配置ID的删除sql语句,此sql是没有任何入参的,
返回删除的记录数
? int delete(String id, Object parameterObject) :执行指定配置ID的删除sql语句,
此sql是可以带入参的,返回删除的记录数 ? int update(String id)
? int update(String id, Object parameterObject)
? Object queryForObject(String id) : 当只有一条记录的时候才可以使用。 ? Object queryForObject(String id, Object parameterObject)
? List queryForList(java.lang.String id) : 执行指定配置id的查询语句 ? List queryForList(String id, Object parameterObject) : 批量处理:
? int executeBatch() :执行批量sql语句。 ? void startBatch() 事务处理:
? void commitTransaction() : 提交事务并释放连接 ? void endTransaction() : 回滚事务并释放连接 ? void startTransaction() :开始事务
返回值参数类型映射例子说明:
SELECT userName,password FROM USER WHERE DEPARTMENT=#department#
SELECT USERID as userid, USERNAME as username, PASSWORD as password, DEPARTMENT as department FROM USER WHERE DEPARTMENT=#department#
SELECT USERNAME FROM USER WHERE DEPARTMENT=#department#
SELECT * FROM USER WHERE NAME=#department# AND
SELECT * FROM USER WHERE DEPARTMENT=#department#
作业:
1. 测试上面的所有方法。
2. 测试入参情况:没有入参,单个int,String,map对象,bean对象。 3. 测试出参情况:单个int,String,map对象,bean对象,list对象。
ibatis配置文件详解
常用数据库类型和java类型匹配
Ibatis 映射类型 int long double varvhar datetime time date sqlmap.xml的详细解析 1.
声明javabean的实体。 属性有:alias,type。
Java 类型 long,int long double Double String util.Date 或者 sql.Date sql.time 2.
专门用来声明insert类型的sql语句的。 属性有:id,parameterClass 3.
专门用来声明delete类型的sql语句的。 属性有:id,parameterClass 4.
专门用来声明update类型的sql语句的。 属性有:id,parameterClass 5.
专门用来声明select类型的sql语句的。
属性有:id,parameterClass,resultMap,resultMClass。而且resultMap和resultClass不能同时使用。
6.
专门用来声明字段映射关系的。 属性有:id,class 子节点:result,
子节点属性:property(java字段),column(数据库字段),javaType,jdbcType, nullValue(当查询是null值时,该值是多少)
7.
专门用来声明片段sql语句的,使用include来引入。 例子:
select id,user_name,password
sqlMapConfig.xml的详细解析
此文件其实就是一个数据源的配置。数据源参数包括了连接数据库参数和连接池参数。 例子:
在这里配置jdbc.propertis,在配置datasource的时候,用${}获得jdbc.properties里的属性的值,这个配置是可选的 例子:
相关推荐: