mybatis中mapper.xml文件增删查改

1.mybatis工作原理

2.查询

<select id="方法名" parameterType="方法参数类型" resultType="方法返回值类型,全类名" >
select 表中字段名 AS 结果字段名 from 表名 where 条件
<!--注意:结果字段名与属性名保持一致,区分大小写-->
</select>

3.插入

<insert id="需要实现的接口里的方法名" parameterType="方法参数名,如果是对象,要写全类名">
insert into 表名 (字段1,字段2,...) values(#{参数1},#{参数2},...)
<!--注意属性名区分大小写-->
</insert>

4.修改

<update id="updateCustomer" parameterType="com.wang.po.Customer">
         update t_customer set username=#{username},jobs=#{jobs}
         ,phone=#{phone} where id=#{id}
</update>

5.删除

 <delete id="deleteCustomer" parameterType="Integer">
        delete from t_customer where id=#{id}
    </delete>

6.resultType解析(第一次写就遇到这个问题)

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

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

3.map类型:单条记录:resultType=map

                        多条记录=Map中value的类型

4.对象类型:resultType=对象的全类名

7.参数处理

1.单个参数:直接使用#{参数名}进行取值,mybatis没做特殊处理,参数名可以随便写

2.多个参数:使用#{parameter},#{param2}取值

3.命名参数:通过@param("key")明确指定封装map中的key,就可以通过#{key}取出参数值了

4.POJO:如果多个参数正好是业务模型,这时候就可以传入业务模型,通过#{属性名}就可以取值了

5.Map:如果多个参数不是业务模型,而且不经常使用,可以自定义Map传入

6.TO:如果多个参数不是业务模型,而且经常使用,可以自定义一个TO来传输对象。

参考:mybatis-参数处理

8.#{}和${}的区别

1.#{}是预编译处理,${}是字符串替换。

2.Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值

3.Mybatis在处理${}时,就是把${}替换成变量的值。

4.使用#{}可以有效的防止SQL注入,提高系统安全性。

发布了30 篇原创文章 · 获赞 1 · 访问量 1158

猜你喜欢

转载自blog.csdn.net/chunchunlaila/article/details/104757404