Mybatis第一天

Mybatis Day01

一、 Mybatis介绍:

Mybatis属于一款优秀的数据持久层框架

回顾JDBC缺点:

  1. 需要频繁的开关数据库连接
  2. 查询数据的结果集需要人为进行封装
  3. Jdbc没有缓存
  4. Sql语句写在Java文件中

Mybatis

  1. 内置数据库连接池
  2. 会自动进行结果集的封装
  3. 有缓存
  4. Sql语句写在配置文件中

导入DTD约束文件:

  1. 复制配置文件中 约束的网址:

 

  1. 添加约束文件

 

Mybatis入门案例:

  1. 导入jar

 

  1. 添加配置文件2+1log4j的配置文件

 

修改sqlMapConfigMybatis的核心配置文件)

里面目前只有两部分信息:1.数据源2.mapper位置

a.数据源:要保证本地数据库打开包含所连接的数据库

 

b.mapper:指定mapper配置文件的位置,注意:/进行分割

 

  1. Mapper配置文件:

包含sql语句 和一个命名空间(表示配置文件的唯一标示)

 

  1. 测试代码:

步骤:输入流-》会话工厂-》会话对象-》执行sql语句

 

二、 增删改查练习
1.查询单个对象

Mapper配置:

 

代码:

 

  1. 新增数据

Mapper配置:

 

代码:

 

  1. 删除数据

Mapper配置文件:

 

代码:

 

  1. 修改操作:

配置文件

 

代码:

 

三、 取值符号

1.#{变量名称}:会加引号,并且有预编译效果,能用#取值就用#号 实在不行的场景才用${}

2.${变量名称}:不会加引号直接拼接到sql语句中,当传递过来的变量值为字段名称时或者为sql语句的一部分时(如:升序 降序) 如果使用$取值 需要把值放到Map中配合使用

 

四、 Mybatis的单值传递和多值传递

Mybatis中只支持传一个参数的方法 , 传递多个参数的时候可以把参数放到对象中或放到map中,单值传递的时候,取值的地方参数名可以任意

 

多值传递练习

 

代码调用:

 

五、 sql语句的复用

声明复用的sql

 

引入复用sql

 

六、 别名标签

resultType赋值写错会报以下错误

 

如果包名+类名比较长的话,出错概率会很大 所以可以使用别名。

在核心配置文件声明别名:

 

注意:需要添加 config的约束文件,并且书写时只有写完<type时才会有提示

如何使用:

 

 

七、 动态更新

当进行数据库数据修改的时候,有时只需要修改表中的某几个字段,其它字段保持原有值不变,这时就需要用到动态更新,不然会出现其它值为null的问题

配置文件:

 

代码调用:

 

八、 动态查询

当查询数据需要多个查询条件,但是不一定每个条件都有值的时候,需要用到动态查询,不然会出现要满足其余条件为null的 判断

配置文件:

 

Where可以去掉前面多余的and

代码:

 

九、 动态插入

配置文件:

 

代码调用:

 

十、 批量删除

2种情况

  1. 数组里面装id

 

代码:

 

  1. List集合里面添加User对象

配置:

 

调用代码:

 

原文地址:https://www.cnblogs.com/dxp5201/p/8921831.html