jdbc.properties:
- url=jdbc\:oracle\:thin\:@localhost\:1521\:orcl
- driverClass=oracle.jdbc.OracleDriver
- account=scott
- password=tiger
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>
- <properties resource="cn/et/mybatis/lesson01/jdbc.properties">
- </properties>
- <!--
- 配置连接数据库的环境 development开发环境
- -->
- <environments default="development">
- <environment id="development">
- <!-- 事务交给JDBC来管理 也就是通过 Connection的 commit和rollback管事事务 -->
- <transactionManager type="JDBC"/>
- <dataSource type="POOLED">
- <property name="driver" value="${driverClass}"/>
- <property name="url" value="${url}"/>
- <property name="username" value="${account}"/>
- <property name="password" value="${password}"/>
- </dataSource>
- </environment>
- </environments>
- <mappers>
- <mapper resource="cn/et/mybaits/lesson02/dynsql/dy_mapper.xml" />
- </mappers>
- </configuration>
dy_mapper.xml:
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE mapper
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <!--
- 接口映射
- namespace必需跟接口的全名一致
- -->
- <mapper namespace="cn.et.mybaits.lesson02.dynsql.DyMapper">
- <!--
- 动态的sql语句
- -->
- <select id="selectEmp" resultType="map" parameterType="map">
- select * from emp where 1=1
- <if test="ename!=null">
- and ename=#{ename}
- </if>
- </select>
- <!--
- choose
- whe 相当于 if
- otherwish 相当于 else
- -->
- <select id="selectEmpBySal" resultType="map" parameterType="map">
- select * from emp where 1=1
- <choose>
- <when test="sal==null">
- <!--
- < < 小于
- > > 大于
- <![CDATA[>]]>
- 不解析代码块中的代码
- -->
- and sal <![CDATA[>]]>= 0
- </when>
- <otherwise>
- and sal=#{sal}
- </otherwise>
- </choose>
- </select>
- </mapper>
DyMapper接口:
- <pre name="code" class="java">package cn.et.mybaits.lesson02.dynsql;
- import java.util.List;
- import java.util.Map;
- public interface DyMapper {
- public List<Map> selectEmp(Map map);
- public List<Map> selectEmpBySal(Map map);
- }
- </pre>
- <div><br>
- </div>
- <pre></pre>
- <br>
- <p></p>
- <p><br>
- </p>
- <p></p>
- <h2 style="font-family:monospace; white-space:pre"><a name="t4"></a>TestMybatis:</h2>
- <pre name="code" class="java">package cn.et.mybaits.lesson02.dynsql;
- import java.io.InputStream;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.apache.ibatis.session.SqlSession;
- import org.apache.ibatis.session.SqlSessionFactory;
- import org.apache.ibatis.session.SqlSessionFactoryBuilder;
- public class TestMybatis {
- public static SqlSession getSession(){
- String resource = "/cn/et/mybaits/lesson02/mybatis.xml";
- InputStream inputStream = TestMybatis.class.getResourceAsStream(resource);
- SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
- //打开会话
- SqlSession session = sqlSessionFactory.openSession();
- return session;
- }
- /*public static void main(String[] args) {
- SqlSession session = getSession();
- DyMapper dy = session.getMapper(DyMapper.class);
- Map map = new HashMap();
- map.put("ename", "李黑");
- List list = dy.selectEmp(map);
- System.out.println(list.size());
- }*/
- public static void main(String[] args) {
- SqlSession session = getSession();
- DyMapper dy = session.getMapper(DyMapper.class);
- Map map = new HashMap();
- map.put("sal", 5000);
- List list = dy.selectEmpBySal(map);
- System.out.println(list.size());
- }
- }</pre><br>
- <p></p>
- <p><br>
- </p>
- <p><br>
- </p>
- <h2><a name="t5"></a>mybatis注解的动态sql语句映射:</h2>
- <p></p><pre name="code" class="java">package cn.et.mybaits.lesson02.homework;
- import java.util.List;
- import java.util.Map;
- import org.apache.ibatis.annotations.Select;
- public interface DyAnnoMapper {
- @Select(value="<script>select * from emp where 1=1 <if test='sal!=null'> and sal>=#{sal}</if></script>")
- public List<Map<String, Object>> query(Map map);
- }
- </pre><br>
- <span style="font-size:18px">其他调用方法一法</span><p></p>
- <p><br>
- </p>
- <pre name="code" class="html"><p></p></pre>