Mybatis第一天
Mybatis Day01
一、 Mybatis介绍:
Mybatis属于一款优秀的数据持久层框架
回顾JDBC缺点:
- 需要频繁的开关数据库连接
- 查询数据的结果集需要人为进行封装
- Jdbc没有缓存
- Sql语句写在Java文件中
Mybatis:
- 内置数据库连接池
- 会自动进行结果集的封装
- 有缓存
- Sql语句写在配置文件中
导入DTD约束文件:
- 复制配置文件中 约束的网址:
- 添加约束文件
Mybatis入门案例:
- 导入jar
- 添加配置文件2个+1个log4j的配置文件
修改sqlMapConfig(Mybatis的核心配置文件)
里面目前只有两部分信息:1.数据源2.mapper位置
a.数据源:要保证本地数据库打开包含所连接的数据库
b.mapper:指定mapper配置文件的位置,注意:用/进行分割
- Mapper配置文件:
包含sql语句 和一个命名空间(表示配置文件的唯一标示)
- 测试代码:
步骤:输入流-》会话工厂-》会话对象-》执行sql语句
二、 增删改查练习
1.查询单个对象
Mapper配置:
代码:
- 新增数据
Mapper配置:
代码:
- 删除数据
Mapper配置文件:
代码:
- 修改操作:
配置文件
代码:
三、 取值符号
1.#{变量名称}:会加引号,并且有预编译效果,能用#取值就用#号 实在不行的场景才用${}
2.${变量名称}:不会加引号直接拼接到sql语句中,当传递过来的变量值为字段名称时或者为sql语句的一部分时(如:升序 降序) 如果使用$取值 需要把值放到Map中配合使用
四、 Mybatis的单值传递和多值传递
Mybatis中只支持传一个参数的方法 , 传递多个参数的时候可以把参数放到对象中或放到map中,单值传递的时候,取值的地方参数名可以任意
多值传递练习
代码调用:
五、 sql语句的复用
声明复用的sql
引入复用sql
六、 别名标签
当resultType赋值写错会报以下错误
如果包名+类名比较长的话,出错概率会很大 所以可以使用别名。
在核心配置文件声明别名:
注意:需要添加 config的约束文件,并且书写时只有写完<type时才会有提示
如何使用:
七、 动态更新
当进行数据库数据修改的时候,有时只需要修改表中的某几个字段,其它字段保持原有值不变,这时就需要用到动态更新,不然会出现其它值为null的问题
配置文件:
代码调用:
八、 动态查询
当查询数据需要多个查询条件,但是不一定每个条件都有值的时候,需要用到动态查询,不然会出现要满足其余条件为null的 判断
配置文件:
Where可以去掉前面多余的and
代码:
九、 动态插入
配置文件:
代码调用:
十、 批量删除
2种情况
- 数组里面装id
代码:
- List集合里面添加User对象
配置:
调用代码: