mybatis实现简单的crud

已准备的工作:

  现在mybatis数据库中有一个user表,表结构为:

;maven项目已经对mybatis进行了配置,我们主要来看看crud代码段:

一、添加的操作:

1、在创建的相应Mapper接口中编写方法addUser(),我这里的Mapper接口为UserMapper:

如图:

2、在对应的Mapper.xml文件中配置好相应的参数并书写插入的sql,这里我的Mapper.xml文件为UserMapper.xml:

<?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="dao.UserMapper">
    <!--插入的操作-->
    <insert id="addUser" parameterType="pojo.User">
        insert into mybatis.user values(#{username},#{pswd},#{sex})
    </insert>
</mapper>

解析:namespace为对应的接口类,这里是dao包下的UserMapper;id关联接口中的方法,这里关联了addUser()方法,也是我们上面在UserMapper这个接口中写的添加方法;parameterType为传入的参数,

可以看见我们这里绑定pojo包下面的User类;insert标签中的sql就是我们普通的sql语句,然而不同的地方为#{参数},可以理解为之前jdbc写的?占位符。

3、编写测试的java代码:

public void addUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        userMapper.addUser(new User("wmskywm","abc123","男"));
        sqlSession.commit();

        sqlSession.close();
}

需要注意的是,mybatis在进行增删改的操作时需要手动提交事务:sqlSession.commit();

4、观察表是否插入了新的数据:

插入成功!

二、删除的操作:

1、在Mapper接口中编写删除的方法:delByUsername(),我这里的Mapper接口为UserMapper:

如图:

2、在对于的Mapper.xml文件中书写删除的sql:

<!--删除的操作-->
<delete id="delByUsername" parameterType="String">
    delete from mybatis.user where username = #{username}
</delete>

3、编写测试的java代码:

@Test
public void delByUsername(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); userMapper.delByUsername("wmskywm"); sqlSession.commit(); sqlSession.close(); }

4、运行测试代码,并观察表是否删除成功:

三、修改的操作:

1、在对应的Mapper接口中编写修改的方法updateByUsername:

2、在对应得Mapper.xml文件中配置关联参数并书写sql语句:

<update id="updateByUsername" parameterType="String">
    update mybatis.user set sex=#{sex}  where username=#{username};
</update>

3、编写测试的java代码:

@Test
public void updateByUsername(){
   SqlSession sqlSession = MybatisUtils.getSqlSession();
   UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
   userMapper.updateByUsername(new User("李哥","abc123","女"));
   sqlSession.commit();
   sqlSession.close();
}

4、运行测试代码并观察结果:

三、查询mybatis.user表中所有的数据:

1、先在对应的Mapper接口中编写查询的方法selAll():

2、在对应的Mapper.xml文件中绑定参数并编写sql:

<select id="selAll" resultType="pojo.User">
    select * from mybatis.user
</select>

3、编写测试的java代码:

public void selAll(){
   SqlSession sqlSession = MybatisUtils.getSqlSession();
   UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
   List<User> listUser = userMapper.selAll();
   for(User user:listUser){
       System.out.println(user);
   }
}

4、运行测试代码,观察控制台输出:

总结:mybatis这个基于jdbc的数据库框架确实十分方便,以前专注写java代码,现在专注写sql。

原文地址:https://www.cnblogs.com/wmskywm/p/13582383.html