摘《ibatis开发指南》
1.SQL MAP工作原理
将一个对象作为参数,为sql修改语句和查询语句设定参数值
1).执行mapped statement 。sql map框架将创建一个preparedStatement实例,用参数对象为preparedstatement实例设定参数,执行preparedStatement并从resultset中创建结果对象
2).执行sql的更新数据库语句时,返回受影响的数据行数。执行查询语句时,将返回一个结果对象或对象的集合。和参数对象一样,结果对象可以使javabean,map实现和基本数据类型的包装类
2.sql map配置文件(包括sqlmapconfig.xml 和sql map映射文件)
1)sqlmapconfig.xml文件
<?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>
<properties resource="sqlmap.properties"/>
<!--sql map配置文件拥有唯一的<properties>元素 用于在配置文件中使用标准的java属性文件(name=value)
这样做后,在属性文件中定义的属性可以作为变量在sql map配置文件及其所包含的所有sql map映射文件中引用。例:
属性文件中包含:driver=org.hsqldb.jdbcDriver
sql map配置文件及其每个映射文件都可以使用占位符${driver}来代表值org....
<property name="JDBC.Driver" value="${driver}"/>
-->
<!--
<typeAlias>元素为一个较长的,全限定类名指定一个较短的别名
sql map配置文件预定义了几个JDBC别名等
-->
<typeAlias alias="String" type="java.lang.String" />
<!--为sql map配置事务管理服务 type指定所使用的事务管理器类型
jdbc,jta,external
jdbc通过常用的connection commit()和rollback()方法,让jdbc管理事务
-->
<transactionManager type="JDBC" >
<!--
<datasource>是<transactionManager>的一部分,为sql map数据源设置了一系列参数
-->
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="${jdbc.driverClass}" />
<property name="JDBC.ConnectionURL" value="${jdbc.url}" />
<property name="JDBC.Username" value="${jdbc.username}" />
<property name="JDBC.Password" value="${jdbc.password}" />
</dataSource>
<!---
注:sqlmap.properties内容:
jdbc.driverClass=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@oracle服务器ip:1521:unieap
jdbc.username=scott
jdbc.password=tiger
-->
</transactionManager>
<!--
<sqlMap>元素用于用于包括sql map映射文件和其他的sql map配置文件
每个sqlmapclient对象使用的所有的sql map映射文件都要在此声明,必需在这里指定
所有的sqlmap文件
-->
<sqlMap resource="com/zzl/dao/sql/User_tab.xml" />
</sqlMapConfig>
2)sql map映射文件
一个sql map xml映射文件可以包含任意多个mapped statement,parameter map和result map
sqlmap的名称是全局的,所有的sqlmap文件中的名称必须唯一
sql map的核心概念是 mapped statement 。mapped statement可以使用任意的sql语句
并拥有parame map(输入)和result map(输出)
<?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 namespace="User_tab">
<typeAlias alias="String" type="java.lang.String" />
<typeAlias alias="user_tab" type="com.zzl.entity.User_tab">
<!--resultClass和resultMap等具体内容 ibatis学习2将在下一节讲到-->
<select id="login" parameterClass="user_tab" resultClass="user_tab">
select user_name, user_pwd, user_is_admin from user_tab where user_name=#user_name# and user_pwd=#user_pwd#
</select>
</sqlMap>