1.MyBatis入门
.查询user表中的所有数据
创建模块:![](https://i-blog.csdnimg.cn/direct/53325472a7ed4c5693219f4805768bf0.png)
数据库连接:![](https://i-blog.csdnimg.cn/direct/9e1a0a1fb2404ae787b02addcc904982.png)
编写SQL映射文件:![](https://i-blog.csdnimg.cn/direct/82ea4a0fb1be491dafb4435e8b6e4e92.png)
2.Mapper代理开发
1.放在同一目录下
注意:mybatis这里的路径要进行更改
2.设置namespave属性![](https://i-blog.csdnimg.cn/direct/3bb8136dfbc74d50a1f7448b363e1b23.png)
3.定义方法
(UserMapper.xml文件中)
方法昵称与上面的id对应一致
4.映射文件加载优化
注意:这里的javaWeb.Mapper是(UserMapper接口)对应的目录
3.核心配置文件详解
注意:细节
4.结果映射
1.数据库表的字段名称 和 实体类的属性名称 不一样,则不能自动封装数据
1.起别名:
对不同的列的列名起别名,让别名跟实体类的属性名一样
紫色的为数据库字段名称,黑色的则为起的别名(实体类的属性名称)
改进:归并同类项,放到最外面
2.resultMao:
1.定义<resultMap>标签
2.在<select>标签中,使用resultMap属性替换 resultType属性
查询tb_brand表格中的所有内容,信息
id:唯一表示
type:映射的类型,支持b别名
id:完成主键字段的映射
column:表的列名
property:实体类的属性名
result:完成一般字段的映射
2.查看详情
1.参数占位符
1.#{} :将其替换为:?为了防止SQL注入
2.¥{} :会存在SQL注入问题
2.参数类型
这里的参数类型为String
但是系统是传什么值就赋什么值,所以是可以直接省略的,parameterType是可以省略的
3.特殊字符的处理
3.多条件查询
如果查询的数据不在同一个对象内的话,可以用方式一,如果都在Brand对象里面的话,则可以直接封装起来。第三种的键则是下面{}里面的,对应的值则是上面的黑体子的status等等。
4.多条件查询之动态查询
sql语句注意点:
5.单条件之动态查询
通过输入的一个值查询对应的其他数据,三个中只需要有一个满足就好了。
如果一个数据都没有输入就查询了,则需要添加<otherwise>
或者是使用<where>
6.添加
7.添加-主键返回
8.修改全部字段
9.修改动态字段
<!-- 更新用户(动态更新) -->
<update id="updateUser2" parameterType="javaWeb.domain.User">
UPDATE user
<set>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="email != null and email != ''">
email = #{email}
</if>
</set>
WHERE id = #{id};
</update>