最近用到了mybatis开发项目,也是现学现用,这里说一说使用使用过程中学到的和遇到的知识和问题
1.首先要先导入mybatis的jar包
2.建立相关的配置文件 applicationContext-mybatis.xml
如:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="cacheEnabled" value="false" />
<setting name="lazyLoadingEnabled" value="false" />
<setting name="aggressiveLazyLoading" value="false"/>
</settings>
<typeHandlers>
<typeHandler javaType="String" jdbcType="CLOB" handler="org.apache.ibatis.type.ClobTypeHandler"/>
</typeHandlers>
<plugins>
<plugin interceptor="com.fbi.framework.common.base.PagePlugin">
<property name="dialect" value="oracle"/>
<property name="pageSqlId" value=".*ListPage*" />
</plugin>
</plugins>
</configuration>
3.这里的dao为借口,不需要实现方法,建立配置文件映射如图hibernate中的.hbm.xml文件,所不同的是mybatis是没有hibernate的面向对象完全,这里需要
进行sql组装:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="">
<resultMap id="" type="">
<result property="" column="" />
....
</resultMap>
<sql id="">
<![CDATA[...]]>
</sql>
<insert id="" parameterType="" ..>
sql 拼接,支持Ognl标签
如:<if>
<foreach>等
可以用${}取值
也可以用#{}取值
</insert>
<update ..>
</update>
<delete>
</delete>
<select>
</select>
</mapper>
其中<select><insert><update><delete>中的id为dao接口对应的方法名,其中接口中的方法中的参数在配置文件对应的id中可以用Ognl标签取出也可以用#{}和${}取出
#和$方式的区别在于一个是预编译方式,安全的,一个是直接拼接,不安全,可以sql注入
原文地址:http://blog.csdn.net/u010046722/article/details/39181381