一、介绍
Mybatis简介: Mybatis 原名:Ibatis ; apache组织开发,后来发展到 Ibatis3.x 改名为 Mybatis 由 Google Code 管理 后续又由 GitHub管理。
二、开发细节:
1.环境搭建配置文件
mybatis-config.xml
<configuration>
<!-- 读取连接文件 -->
<properties resource="com/xusan/conf/jdbc.properties"></properties>
<!-- 配置实体别名 -->
<typeAliases>
<typeAlias alias="别名" type="类全限定名"/>
</typeAliases>
<environments default="默认使用的环境:环境id">
<!-- 可以有多个环境 -->
<environment id="环境id">
<!-- 事务管理方式 使用原始的 JDBC 可选:分布式事务管理 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 连接池配置 POOLED:默认的 可选:第三方连接池 c3po dbcp 需要导入响应驱动 -->
<dataSource type="POOLED">
<!-- 连接参数 -->
<property name="driver" value=""/>
<property name="url" value=""/>
<property name="username" value=""/>
<property name="password" value=""/>
</dataSource>
</environment>
</environments>
<!-- 注册 mapper 文件 -->
<mappers>
<mapper resource="mapper.xml的相对文件路径">
</mappers>
</configuration>
mapper.xml
<mapper namespace="dao全限定名">
<!-- 动态SQL -->
<sql id="query">
SELECT ID,NAME,SALARY,AGE,BIRTHDAY,SEX FROM EMP
</sql>
<!-- 使用动态SQL -->
<select id="queryAll" resultType="Emp">
<include refid="query"/>
</select>
<!-- 动态WHERE 执行是添加if判断 动态获取查询条件 会自动忽略第一个 and 或 or 基本数据类型需要使用 包装类-->
<!-- 第一种写法 -->
<where>
<if test="name != null"> NAME like '%'+#{name}+'%' </if>
<if test="salary != null"> AND SALARY like #{salary} </if>
<if test="birthday != null"> OR BIRTHDAY like #{birthday} </if>
</where>
<!-- 返回结果映射 -->
<resultMap type="返回结果类型(全限定名)" id="映射名">
<!-- id 为实体 的属性名 property 为表列名 -->
<id column="M_ID" property="id"/>
<result column="M_NAME" property="name"/>
<result column="M_AGE" property="age"/>
<!-- 映射单个对象属性 javaType 为属性类型 property 为属性名 -->
<association javaType="Emp" property="emp">
<id column="E_ID" property="id"/>
<result column="E_USERNAME" property="username"/>
</association>
<!-- 映射集合对象 -->
<collection ofType="Managers" property="managers">
<id column="M_ID" property="id"/>
<result column="M_NAME" property="name"/>
</collection>
</resultMap>
</mapper>