关于Mybatis的增删改查

Mybatis的简介以及第一个Mybatis程序

3、CRUD

3.1、namespace

namespace中的包名要和Dao/Mapper接口中的包名一致

3.2、select

id:就是对于namespace中的方法名

resultType:SQL语句执行的返回值

parameterType:参数类型 ;

(1)编写接口 UserDao.java
    //获取全部用户
    public List<User> getUserList();

    //获取查询用户
    public User getUserById(int num);
(2)编写Mapper文件 UserMapper.xml
    <select id="getUserList" resultType="com.lin.pojo.User">
        select * from mybatis.user
    </select>

    <select id="getUserById" resultType="com.lin.pojo.User" parameterType="int">
        select * from user where id=#{num};
    </select>

(3)测试 UserDaoTest.java
    @Test
    public void test(){
        //1.获得SqlSession
        SqlSession sqlSession= MybatisUtils.getSqlSession();

        //2.(1)getMapper
//        UserDao userDao=sqlSession.getMapper(UserDao.class);
//        List<User> userList = userDao.getUserList();
        //2.(2)  权限路径
        List<User> userList = sqlSession.selectList("com.lin.dao.UserDao.getUserList");

        for (User user : userList) {
            System.out.println(user);
        }

        //关闭SqlSession
        sqlSession.close();
    }

    @Test
    public void getUserById(){
        //获得SQL
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        //通过SQLSession执行映射文件中定义的SQL,并返回映射结果
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        User user = mapper.getUserById(2);
//        User user = sqlSession.selectOne("UserDao", 2);

        System.out.println(user);

        //关闭
        sqlSession.close();
    }

3.3、insert

(1)编写接口 UserDao.java
    //插入用户
    public int getInsert(User user);
    public int addUser(Map<String,Object> map);
(2)编写Mapper文件 UserMapper.xml
    <insert id="getInsert" parameterType="com.lin.pojo.User">
        insert into mybatis.user (id,name,password) values (#{id},#{name},#{password});
    </insert>
    <insert id="addUser" parameterType="Map">
        insert into mybatis.user (id,name,password) values (#{userid},#{uuname},#{password});
    </insert>
(3)测试 UserDaoTest.java
//    增删改需要提交事务

    @Test
    public void getInsert(){
        //获取SqlSession
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        //插入
        User user=new User(4,"qiqi","741852");
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        int i = mapper.getInsert(user);

        if (i>0){
            System.out.println("插入成功");
        }else {
            System.out.println("插入失败");
        }

        //提交事务
        sqlSession.commit();

        //关闭SqlSession
        sqlSession.close();
    }
    @Test
    public void addUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserDao mapper = sqlSession.getMapper(UserDao.class);
        Map<String,Object>map=new HashMap<String,Object>();
        map.put("userid",5);
        map.put("uuname","qinqin");
        map.put("password","741852");

        int i = mapper.addUser(map);
        if (i>0){
            System.out.println("插入成功");
        }else {
            System.out.println("插入失败");
        }

        sqlSession.commit();
        sqlSession.close();
    }

3.4、delete

(1)编写接口 UserDao.java
    //删除用户
    public int deleteUser(int i);
(2)编写Mapper文件 UserMapper.xml
    <delete id="deleteUser" parameterType="int">
        delete from user where id=#{i};
    </delete>
(3)测试 UserDaoTest.java
    @Test
    public void deleteUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserDao mapper = sqlSession.getMapper(UserDao.class);
        int i = mapper.deleteUser(4);

        if (i>0){
            System.out.println("删除成功");
        }else {
            System.out.println("删除失败");
        }

        sqlSession.commit();
        sqlSession.close();

    }

3.5、update

(1)编写接口 UserDao.java
    //修改用户
    public int updateUser(User user);
(2)编写Mapper文件 UserMapper.xml
    <update id="updateUser" parameterType="com.lin.pojo.User">
        update user set name =#{name},password=#{password} where id=#{id};
    </update>
(3)测试 UserDaoTest.java
    @Test
    public void updateUser(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        UserDao mapper = sqlSession.getMapper(UserDao.class);
        int i = mapper.updateUser(new User(4, "qinqin", "852963"));

        if (i>0){
            System.out.println("修改成功");
        }else {
            System.out.println("修改失败");
        }

        sqlSession.commit();
        sqlSession.close();
    }

注意增删改要提交事务

标签匹配问题

Map

假设,实体类或者数据库中参数值过多,用Map

多个参数用Map或注解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值