大家好呀,我是书架。
【Mybatis】快速搭建01介绍了MyBatis框架如何在Dao层接口、映射文件(写SQL语句的Mapper.xml文件)、配置文件SqlMapConfig.xml组合下完成了对数据库的查询操作。
本次内容依然是在快速搭建01开发基础上更加全面的通过示例介绍基本的增删改查操作。
查询操作-select
我们在查询数据库时,通常会传入参数以筛寻符合条件的数据。那么SQL语句是如何接收传入的参数呢?
示例1-传入基本数据类型作为参数
Dao层接口UserMapper增加findById方法
public User findById(int id);
映射文件UserMapper.xml中增加与Dao层接口匹配的如下内容
<!--1.根据传入的参数类型为基本数据类型-->
<select id="findById" parameterType="int" resultType="com.zssj.domain.User">
select * from user where id = #{id}
</select>
示例2-传入引用数据类型作为参数
Dao层接口UserMapper增加findByIdTest方法
public User findByIdTest(User user);
映射文件UserMapper.xml中增加与Dao层接口匹配的如下内容
<!--2.传入的参数类型为引用数据类型-->
<select id="findByIdTest" parameterType="com.zssj.domain.User" resultType="com.zssj.domain.User">
select * from user where id = #{id}
</select>
通过示例1和示例2发现Dao层接口中方法的参数类型和UserMapper.xml中select标签parameterType参数的类型一致,它们是一一对应的。
两个示例语句中的select标签传入参数类型不一样,一个是基本数据类型int,一个是引用数据类型User。
因此select * from user where id = #{id}中的id值,示例一来自于Dao层直接传入的参数,示例二来自user对象中的id值。
而两个示例的查询结果都以resultType="com.zssj.domain.User"形式进行封装。
插入操作-insert
示例3-User对象进行插入
Dao层接口UserMapper增加insert方法
int insert(User user);
映射文件UserMapper.xml中增加与Dao层接口匹配的如下内容
<insert id="insert" >
insert in