3、mybatis(CRUD)

有了mybatis,我们要对数据库进行增删改查只需要操作接口和mapper.xml文件,然后进行测试就可以了。

实例代码如下:

接口

public interface UserMapper {
List<User> getUserList();
//查
User getUserById(int id);
//增
int addUser(User user);
//改
int updateUser(User user);
//删
int deleteUser(int id);
}

mapper.xml

<mapper namespace="com.kuang.dao.UserMapper">
<!--查-->
<select id="getUserList" resultType="com.kuang.pojo.User">
select * from mybatis.user
</select>
<!--查-->
<select id="getUserById" parameterType="int" resultType="com.kuang.pojo.User">
select * from mybatis.user where id=#{id}
</select>
<!--增-->
<insert id="addUser" parameterType="com.kuang.pojo.User">
insert into mybatis.user(id,name,pwd) values (#{id},#{name},#{pwd});
</insert>
<!--改-->
<update id="updateUser" parameterType="com.kuang.pojo.User">
update mybatis.user set name=#{name},pwd=#{pwd} where id=#{id}
</update>
<!--删-->
<delete id="deleteUser" parameterType="int">
delete from mybatis.user where id=#{id}
</delete>
</mapper>

注意:namespace要写接口,因为我们相当于实现了这个接口,而id后要写接口中的方法名,resultType就是返回的结果类型,paramterType就是传入的参数类型

测试

public class UserDaoTest {
//查
@Test
public void test(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userDao = sqlSession.getMapper(UserMapper.class);
List<User> userList = userDao.getUserList();
for (User user : userList) {
System.out.println(user);
}
sqlSession.close();
}
//查
@Test
public void getUserById(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User userById = userMapper.getUserById(1);
System.out.println(userById);
sqlSession.close();
}
//增(增删改需要提交事务)
@Test
public void addUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.addUser(new User(4,"赵六","123156"));
sqlSession.commit();
sqlSession.close();
}
//改(增删改需要提交事务)
@Test
public void updateUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.updateUser(new User(4,"张jiu","987654"));
sqlSession.commit();
sqlSession.close();
}
//删(增删改需要提交事务)
@Test
public void deleteUser(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.deleteUser(4);
sqlSession.commit();
sqlSession.close();
}
}

注意:

  1. 增删改需要提交事务
  2. 记得关闭sqlSession
  3. 参数是对象的话我们要new一个对象传参

最新文章

  1. Windows Azure HDInsight 使用技巧
  2. [充电]多线程无锁编程--原子计数操作:__sync_fetch_and_add等12个操作
  3. Effective Java 71 Use lazy initialization judiciously
  4. 关于 Apple Metal API 的一些想法
  5. 160223、jquery中attr和prop的区别
  6. Labview中创建属性节点和调用节点的用法
  7. redis中各种数据类型对应的jedis操作命令
  8. WinForm中关于控件焦点的问题
  9. 全网最全ASP.NET MVC 教程汇总
  10. [其他]Android SDK离线文件路径以及安装更新方法
  11. 项目架构开发:数据访问层之Cache
  12. 想成为Java高级工程师的看过来
  13. HBase Canary
  14. css选择器优选级及匹配原理(转)
  15. EF 查询所有字段
  16. windows系统安装python3.6.3和python3.7.0
  17. MySQL数据库基本用法
  18. SSH和SSM的区别
  19. 02-01:springboot整合servlet开发
  20. IDEA中Git的使用基础

热门文章

  1. Android工具-DDMS
  2. [BUUCTF]PWN——ciscn_2019_s_4
  3. 拆分行(Power Query 之 M 语言)
  4. CF688B Lovely Palindromes 题解
  5. js(jQuery)获取自定义data属性的值
  6. JAVA将Object数组转换为String数组
  7. Linux(Centos)安装git
  8. 自己常用的CMake用法总结
  9. 【LeetCode】1. Two Sum 两数之和
  10. 【LeetCode】717. 1-bit and 2-bit Characters 解题报告(Python)