MyBatis框架简介
  1.什么是MyBatis(iBatis-->MyBatis)
    MyBatis是对JDBC技术封装,简化数据库操作代码.
  2.MyBatis体系结构(看图tts,不过没讲,有点深奥;看mybatis.png图)
    MyBatis封装了一下功能:
  --a.封装了建立连接,设置参数执行SQL,释放连接过程
  (提供连接参数,SQL,SQL参数值)
  --b.封装了查询结果映射成实体对象过程
  (实体类属性名与数据表字段名保持一致)

    //部份代码    Emp emp = new Emp();    emp.setName(rs.getString("name"));    ...............    findById-->Emp-->sqlSession.selectOne()    findAll-->List
-->sqlSession.selectList()

  --c.封装了SQL语句中参数设置过程
  (提供SQL时,参数想给SQL映射,利用#{属性名}替代?)
  Ref: #{}这里只是占位符的作用,注意和${}的区别.

 insert into Emp values (#{属性名},?,?,?,?)    pst = conn.prepareStatement(sql);    pst.setString(1,"tom");    pst.setString(2,20);    ......

  ***开发者使用需要做以下工作***:
  --搭建MyBatis框架环境
  --根据表写实体类(名称一致,少一些麻烦?)
  --根据操作写SQL(使用#{属性}替代?)
  --利用SqlSession调用操作(提供SQL参数)

  3.MyBatis配置文件
    a) SqlMapConfig.xml(主配置文件[1个])
       定义连接参数,框架参数,加载SQL文件
    b) sqlMap.xml文件(定义SQL语句的XML文件[可以多个])
    c) 实体类.java
  4.框架API简介
    a) SqlSessionFactoryBuilder:该对象负责根据MyBatis配置文件SqlMapConfig.xml构建SqlSessionFactory实例
    b) SqlSessionFactory:核心.创建SqlSession对象实例
    c) SqlSession:包含了所有执行SQL操作的方法(如下),用于执行已映射的SQL语句
    sqlSession.selectOne();
    sqlSession.selecList("findAll")
    sqlSession.insert()
    sqlSession.update()
    sqlSession.delete()

二.MyBatis基本应用
    返回Map查询

 
    SELECT cost_id,name FROM cost WHERE cost_id=#{id} 

    ------------------------------TestCase部分代码--------------------

Map
 map = sqlSession.selectOne("findSomeById", 1);

    1)Mapper映射器:开发者创建绑定映射语句的接口,映射器接口的实例可以从SqlSession中获得
       Mapper接口中的方法名要和SqlMap.xml中的SQL的id保持一致
    2)在SqlMap.xml定义<select>操作时,如果查询结果字段名和Java POJO属性不一致时
       要使用<resultMap>元素指定映射关系[解决了表中字段和实体类中属性不同名的问题]

 
      SELECT deptno,name,loc FROM dept