MyBatis

1.作用:实现对数据库进行操作,MyBatis是对JDBC技术的封装,
    1)封装了获取连接,生成Statement,执行SQL过程
    2)封装了SQL参数设置过程 将参数设置到#{XX}
    3)封装了将结果集映射成实体对象的过程 resultType指定,名称对应
2.MyBatis使用
    1)导入mybatis包,数据库驱动包
    2)添加SqlMapConfig.xml主配置文件
        *定义数据库连接参数
        *加载SQL定义文件  <mappers><mapper resource="SQL定义文件路径" /></mappers>
    3)根据表写实体类(属性名与字段一致,属性类型与表一致,实现序列化)
        *解决实体类和SQL定义文件属性名不一致的情况:使用别名或者自定义resultMap属性
          <select id="findAll" resultMap="costMap"> //resultMap与resultType属性不能共存
                SELECT * FROM cost
           <select>     
            <resultMap id="costMap" type="包名.类名">
                  <id property="id" colum="cost_id"/>
                  <result property="name" colum="name"/>
             </resultMap>       
    4)编写SQL,调用SQL, SQL定义XML文件(<select>,<update>,<insert>,<delete>)
    eg:<select id="findById" parameterType="int" resultType="com.tedu.entity.User" >
             SELECT * FROM lh_user WHERE id=#{id}
         </select>
        *id:SQL语句的名字,有唯一性,通过该名调用这个SQL语句
        *parameterType:SQL语句中需要传入的参数类型
        *resultType:指定查询出的结果集映射(封装)的类型
    5)使用者加载SqlMapConfig.xml,利用SqlSession执行SQL 
      *获取SqlSession的三步曲SqlSessionFactoryBuilder-->SqlSessionFactory-->SqlSession
        SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
    String conf="SqlMapConfig.xml";  
    Reader reader=Resources.getResourceAsReader(conf); //加载主配置文件(SqlMapConfig.xml),转化为流参数
    SqlSessionFactory factory=builder.build(reader);//加载配置信息获取SqlSession工厂
    SqlSession session=factory.openSession(); //由工厂创建Session对象
        *SqlSession执行SQL
           session.selectOne/session.selectList/session.insert/session.delete/session.update
3.Mapper映射器(接口)           
   1)MyBatis提供了一个Mapper映射器接口规则,按规则写出的接口,MyBatis框架可自动生成实现组件对象
   2)规则:
       *方法名与SQL定义的id属性保持一致
       *方法的参数类型与SQL定义的parameterType属性保持一致
       *方法返回类型 增删改---可以使void或int(受影响的记录行数)
                                      查询---单行结果类型为resultType的类型,多行结果类型为List<resultType>
       *SQL定义文件中<mapper>元素的namespace属性指定为"包名.接口名"                              
   3)使用:sqlSession.getMapper(接口.clas);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值