一、增
在环境搭建好的基础上
1、在dao接口中创建一个抽象方法
public interface UserDao {
int saveUser(User user);
}
2、在映射配置文件中
<!--namespace 写dao接口的全名 代包名-->
<mapper namespace="com.yixuexi.dao.UserDao">
<!--id 写dao接口中的方法名字 不带()-->
<!--parameterType 写对应那个实体类 从那个实体类中取数据 输入参数类型-->
<insert id="saveUser" parameterType="com.yixuexi.entity.User">
<!--取数据用 #{属性名或者getId() 都可以}-->
insert into user(id,name,password) values(#{id},#{name},#{password})
</insert>
</mapper>
3、在执行的时候一定不要忘记sqlSession.commit()
二、保存操作的细节,获取保存数据的id
Select last_insert_id(); 会查询到最后一次保存的id
1、在dao接口中创建一个方法
//保存一个User 并且返回该User的id
Integer saveUserReturnId(User user);
2、在映射文件中这样写
<!--id写到接口中方法名 parameterType输入参数类型-->
<!--useGeneratedKeys:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中-->
<insert id="saveUserReturnId" keyProperty="id" useGeneratedKeys="true" parameterType="com.yixuexi.entity.User">
insert into user(name,password) values(#{name},#{password})
</insert>
3、然后再注册该mapper,
(已经注册过的不需要在注册)
4、在测试类写的注意事项
- 返回的值并不是id属性
- 要想得到id属性从user对象中getId即可
- 一定不要忘记 session.commit();
- id必须为主键并且自增长 auto_increment
三、改
在环境搭建好的基础上
1、在UserDao接口上新建一个方法
public interface UserDao {
//用户更改的方法
void updateUser(User user);
}
2、在映射配置文件中写sql
<update id="updateUser" parameterType="com.yixuexi.entity.User">
update user set name = #{name},password = #{password} where id = #{id}
</update>
3、在主配置文件中注册上
<mappers>
<mapper resource="com/yixuexi/dao/UserDaoMapper.xml"></mapper>
</mappers>
4、在测试文件中写测试方法
注意最后一定要SqlSession.commit(); // 提交
四、删除
在环境搭建好的基础上
1、给UserDao接口上新建一个方法
public interface UserDao {
void deleteUser(Integer id);
}
2、在映射配置文件中写sql
类型不是User而是Integer
<update id="deleteUser" parameterType="java.lang.Integer">
取值直接用#{}
delete from user where id = #{id}
</update>
3、在主配置文件中注册
<mappers>
<mapper resource="com/yixuexi/dao/UserDaoMapper.xml"></mapper>
</mappers>
4、在测试文件中写测试方法
注意最后一定要SqlSession.commit();