Mybatis代码笔记小结

根据站长的Mybatis部分内容 敲代码后的注释小结

Mybatis基础概念

  1. MyBatis的传入参数parameterType类型分两种

      1. 基本数据类型:int,string,long,Date;
      1. 复杂数据类型:类和Map
  2. 如何获取参数中的值:

    2.1 基本数据类型:#{value}或${value} 获取参数中的值

    2.2 复杂数据类型:#{属性名}或KaTeX parse error: Expected 'EOF', got '#' at position 15: {属性名} ,map中则是#̲{key}或{key}

resultType:

1、基本类型 :resultType=基本类型

2、List类型: resultType=List中元素的类型

3、Map类型 单条记录:resultType =map

​ 多条记录:resultType =Map中value的类型

操作步骤:
1.配置maven文件,构造mybatis mysql和junit驱动
2.创建mybatis-config.xml 用于连接数据库
3.创建Category类来接收数据库的返回对象,里面要包含get和set方法,还有每一列的值与类型
4.创建Category.xml文件,在里面 namespace指的是命名空间 用于帮助定位sql语句,并不是别名 是 类路径名即Category类的路径
5.在mapper里面写sql语句,其中 parameterType是指定输入类型 resultType是指定输出类型,其余按照格式即可
6.关于别名,在mybatis-config.xml里面配置即可

  <typeAliases>
      <package name="com.how2java.pojo"/>
    </typeAliases>

Mybatis的模糊查询和多条件查询

模糊查询:

select * from category_ where name like concat('%',#{0},'%')

多条件查询:

select * from category_ where id> #{id} and name like concat('%',#{name},'%')

特别地,在parameterType上,多条件查询为Map,因为selectList只能传入一个条件,我们要借助Map

  Map<String, Object> params = new HashMap<>;
        params.put("id", 3);
        params.put("name","cat");
        List<Category> cs = session.selectList("lisstCategoryByIdAndName", params);

动态SQL

1.关于if语句

​ 首先,if中若为null,就是全搜索。若if中不为null,则根据里面的sql语句执行
​ 如果是无条件全部查询,直接可以用selectList进行,但若条件有多个,同上一致,我们也要进行Map操作

Map<Product> params = new HashMap<>();
        params.put("name", "x");
        List<Product> ps = session.selectList("listProduct", params);

​ for循环

2.关于where语句

​ 首先,where是用来防止在多条件查找时因为and等等导致格式问题出错的
​ 这样我们就可以大胆的在各个语句前加上and保证输出不会遗漏

3.关于set语句

​ set是用于update中的标签,若要修改多个字段,就可以用到set
​ 记住每个if中间都要有逗号隔开

4.关于if else语句

​ 实际上是模仿了switch-case语句
​ 其中用when-otherwise来模仿

5.关于foreach语句

​ collection:指定要遍历的集合:
​ list类型的参数会特殊处理封装在map中,map的key就叫list
​ item:将当前遍历出的元素赋值给指定的变量
​ index:索引。遍历list的时候是index就是索引,item就是当前值
​ separator:每个元素之间的分隔符
​ open:遍历出所有结果拼接一个开始的字符
​ close:遍历出所有结果拼接一个结束的字符
​ index和item的区别
​ index代表每次循环的次数, 相当于for循环中的 i
​ item代表每次循环的变量值, 相当于for循环中的 varList.get(i)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值