zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    .NET简谈插件系统开发模式
    .NET实现之(自动更新)
    .NET简谈互操作(二:先睹为快)
    .NET实现之(WebBrowser数据采集—基础篇)
    .NET简谈设计模式之(观察者模式)
    .NET简谈平台大局观
    .NET实现之(简易ORM)
    .NET简谈面向接口编程
    .NET简谈事件与委托
    .NET实现之(WebBrowser数据采集—终结篇)
  • 原文地址:https://www.cnblogs.com/wmskywm/p/13582383.html
Copyright © 2011-2022 走看看