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。