本文基于我的上一篇博客myibatis--以接口的方式编程
1、修改/src/com/mybatis/model/HmsUser.xml
为了放回List<HmsUser> 就不能把resultType设置为User了;
而应该把 resultType替换为resultMap对应的值是自定义的resultMap;
修改后代码如下:
<?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.mybatis.dao.UserDao">
<!-- 一定要和mybatis-config.xml中的typeAlias 对应 -->
<select id="selectUserByID" parameterType="string" resultType="HmsUser">
select * from `hms_user` where id = #{id}
</select>
<select id="selectAllUser" resultMap="resultListUser">
select * from `hms_user`
</select>
<!-- 为了返回list 类型而定义的returnMap -->
<!-- column属性是数据库中表对应的字段
property属性是java实体中对应的属性名
-->
<resultMap type="com.mybatis.model.HmsUser" id="resultListUser">
<id column="id" property="id" javaType="string"/>
<result column="username" property="username" />
<result column="userpwd" property="userpwd" />
<result column="birthdy" property="birthdy" javaType="java.sql.Timestamp" />
</resultMap>
</mapper>
2、修改UserDao和Test
在UserDao中增加一个方法:
public List<HmsUser> selectAllUser();
在Test中增加一行代码:
System.out.println(userDao.selectAllUser());
3、查看结果:
4、增加User:
/myFirstMyIbtais/src/com/mybatis/model/HmsUser.xml添加如下:
<!--执行增加操作的SQL语句。id和parameterType
分别与IUserOperation接口中的addUser方法的名字和
参数类型一致。以#{name}的形式引用Student参数
的name属性,MyBatis将使用反射读取Student参数
的此属性。#{name}中name大小写敏感。引用其他
的gender等属性与此一致。seGeneratedKeys设置
为"true"表明要MyBatis获取由数据库自动生成的主
键;keyProperty="id"指定把获取到的主键值注入
到Student的id属性-->
<insert id="addUser" parameterType="HmsUser" >
insert into hms_user(id,username,userpwd,birthdy) values(#{id},#{username},#{userpwd},#{birthdy})
</insert>
5、Test.java增加内容如下:
// userDao.addUser(u);
} finally {
session.commit(); //还不知道是什么原因要提交事务才可以插入数据成功,但是每一次似乎都对数据库产生了影响
6、更新User关键xml配置
<update id="updateUser" parameterType="HmsUser" >
update hms_user set username=#{username},userpwd=#{userpwd},birthdy=#{birthdy} where id=#{id}
</update>
7、删除数据关键xml配置
<delete id="deleteUser" parameterType="int">
delete from user where id=#{id}
</delete>