zoukankan      html  css  js  c++  java
  • mybatis学习1

    一、mybatis步骤

    1、根据xml配置文件(全局配置文件)创建一个SqlSessionFactory对象 有数据源一些运行环境信息
    2、sql映射文件;配置了每一个sql,以及sql的封装规则等。
    3、将sql映射文件注册在全局配置文件中
    4、写代码:
       1)、根据全局配置文件得到SqlSessionFactory;
       2)、使用sqlSession工厂,获取到sqlSession对象使用他来执行增删改查
         一个sqlSession就是代表和数据库的一次会话,用完关闭
       3)、使用sql的唯一标志来告诉MyBatis执行哪个sql。sql都是保存在sql映射文件中的。

    二、settings部分设置参数(全局配置文件中)

    三.参数值的获取

    #{}:可以获取map中的值或者pojo对象属性的值;
    ${}:可以获取map中的值或者pojo对象属性的值;


    select * from tbl_employee where id=${id} and last_name=#{lastName}
    Preparing: select * from tbl_employee where id=2 and last_name=?
      区别:
        #{}:是以预编译的形式,将参数设置到sql语句中;PreparedStatement;防止sql注入
        ${}:取出的值直接拼装在sql语句中;会有安全问题;
        大多情况下,我们去参数的值都应该去使用#{};

        原生jdbc不支持占位符的地方我们就可以使用${}进行取值
        比如分表、排序。。。;按照年份分表拆分
          select * from ${year}_salary where xxx;
          select * from tbl_employee order by ${f_name} ${order}

    #{}:更丰富的用法:
      规定参数的一些规则:
      javaType、 jdbcType、 mode(存储过程)、 numericScale、
      resultMap、 typeHandler、 jdbcTypeName、 expression(未来准备支持的功能);

      jdbcType通常需要在某种特定的条件下被设置:
        在我们数据为null的时候,有些数据库可能不能识别mybatis对null的默认处理。比如Oracle(报错);

        JdbcType OTHER:无效的类型;因为mybatis对所有的null都映射的是原生Jdbc的OTHER类型,oracle不能正确处理;

        由于全局配置中:jdbcTypeForNull=OTHER;oracle不支持;两种办法
        1、#{email,jdbcType=OTHER};
        2、jdbcTypeForNull=NULL
          <setting name="jdbcTypeForNull" value="NULL"/>

    四、OGNL

  • 相关阅读:
    《大道至简》第一章 编程的精义
    java课堂练习7
    Java课后练习6
    Java课后练习5
    Java课后练习4
    Java课后练习3
    课堂练习
    求和程序实验报告
    大道至简第二章读后感
    课堂作业例子
  • 原文地址:https://www.cnblogs.com/djdjfj/p/9620460.html
Copyright © 2011-2022 走看看