使用Mybatis实现CRUD操作
只写了UserDao.xml中的相关代码
- 新增操作
<insert id="saveUser" parameterType="cn.whd.domain.User">
insert into user(username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address})
</insert>
- 更新操作
<update id="updateUser" parameterType="con.whd.domain.User">
update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id}
</update>
- 删除操作
<delete id="deleteUser" parameterType="Integer">
delete from user where id = #{uid}
</delete>
- 模糊查询
<select id="findByName" resultType="cn.whd.domain.User" parameterType="String">
select * from user where username like #{username}
</select>
注意测试代码的写法
@Test
public void testFindByName(){
//省去了获取userDao代理对象相关操作的代码,只写了SQL语句相关代码
List<User> users = userDao.findByName("%王%");//注意模糊查询的%要自己写
for(User user : users){
System.out.println(user);
}
}
typeAliases标签和mappers标签的起别名的操作
在SqlMapConfig.xml主配置文件中使用typeAliases标签,可以给类起别名,免去之后写全类名的麻烦
在 SqlMapConfig.xml 中配置:
<typeAliases>
<!-- 对单个类的别名定义 -->
<typeAlias alias="user" type="cn.whd.domain.User"/>
<!-- 批量别名定义,扫描整个包下的类,别名为类名(并且不区分大小写) -->
<package name="cn.whd.domain"/>
<package name="其它包"/>
</typeAliases>
同时,mappers中也有类似的标签
<mappers>
<!-- package标签是用于指定dao接口所在的包,当指定了之后就不需要在写mapper以及resource或者class了 -->
<package name="cn.whd.dao"></package>
</mappers>