mybatis 接口绑定
mybatis 配置:
https://blog.csdn.net/YIPUTILIU/article/details/108089512
1.你需要 一个接口
FlowerMapper.java
public interface FlowerMapper {
public interface FlowerMapper {
List<Flower> selectAll();
int insertFlower(Flower a);
//int upd(@Param("name")String name ,@Param("id")int id);
int upd(String name ,int id);
}
}
2.在配置文件中 将 mappers 标签下 mapper 标签 改成 由package 配置
name 属性为 你所写的接口所处的包的层级
<mappers>
<!-- <mapper resource="com/one/mapper/flowerMapper.xml" />-->
<package name="com.one.mapper"/>
</mappers>
3.两个相同
a.在 *mapper.xml (sql语句映射文件 )中 namespace 属性值 与你所写接口的全路径名 相同
b.里面各个查询语句的标签 (id属性值 )与接口中方法名 相同
//sql配置文件 和 接口名尽量类似 且有规律性
//例如 flowerMapper.xml 和 FLowerMapper
flowerMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.one.mapper.FlowerMapper"><!--有相应接口按住 ctrl键是可以跳转到接口的 -->
<select id="selectAll" resultType="com.one.bean.Flower">
select * from flower
</select>
<insert id = "insertFlower" parameterType="com.one.bean.Flower">
insert into flower values(default,#{name},#{price},#{production})
</insert>
<!-- <update id = "upd" parameterType="map">
update flower set name = #{name} where id = #{id}
</update>
<update id = "upd" parameterType="map">
update flower set name = #{0} where id = #{1}
</update>-->
<update id = "upd" parameterType="map">
update flower set name = #{param1} where id = #{param2}
</update>
</mapper>
参数传递
在接口方法中 我们可以传递多个参数以装配sql语句
(1).若是map参数 或者是 设置了set get方法的实体类对象 可以通过
#{属性名 或者 key}
直接调用 例如上述的 insertFlower
<insert id = "insertFlower" parameterType="com.one.bean.Flower"> insert into flower values(default,#{name},#{price},#{production}) </insert>
(2) 直接向接口内传递 基本数据类型 或者String 字符串
如下
int upd(String name ,int id);
可以利用 变量位置索引 获取
如
<update id = "upd" parameterType="map"> update flower set name = #{0} where id = #{1} </update>
或者
<update id = "upd" parameterType="map"> update flower set name = #{param1} where id = #{param2} </update>
也可以在接口中将传进去的参数添加注解
例如
int upd(@Param("name")String name ,@Param("id")int id);
这样在外部调用时 还是 正常的传入参数
但是mybatis处理时还是 按照
key (我们在 “…” 起的名字)
去找value(我们传入的相应参数)
附:
mybatis resultMap
简单应用实例
https://blog.csdn.net/YIPUTILIU/article/details/108157923