天天看點

Mybatis之增删改查

Mybatis之增删改查

在掌握Mybatis程式的建立步驟後,我們繼續了解利用Mybatis進行增删改查。

有不明白Mybatis項目的同學建議先轉到下方連結哦:

https://blog.csdn.net/weixin_45264992/article/details/115264613

Mybatis項目下,我們對資料庫的操作變得十分簡單,省去了大量的JDBC代碼。且建立一個Mybatis項目後,我們需要對資料庫操作僅僅需要對項目中三個檔案代碼進行修改即可。

1、接口檔案

2、接口配置檔案

3、測試類添加代碼

直接上幹貨:

這裡緊接着上面連結内容,如果對Mybatis完全不懂的朋友建議點選上面那個連結了解下Mybatis基本建立步驟。

1、在接口類新增方法:

package com.zm.mybatis.dao;

import com.zm.mybatis.pojo.User;

import java.util.List;

//接口類
public interface UserMapper {
    //  查詢所有對象
    List<User> getUserList();

    //通過id擷取對象
    User getUserById(int ID);

    //插入
    void addUser(User user);

    //修改
    void updateUser(User user);

    //删除
    void deleteUser(int ID);
}

           

2、接口類配置中新增配置:

<?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">
<!--映射 綁定一個Dao/Mapper接口-->
<mapper namespace="com.zm.mybatis.dao.UserMapper">
    <!--id要對應接口類中方法名字,等同于繼承類重寫了接口方法。resultType傳回了List<User>集合資料-->
    <!--接口的實作由原來的建立一個類去實作接口,轉變為現在用一個Mapper配置檔案實作-->
    <select id="getUserList" resultType="com.zm.mybatis.pojo.User">
    select * from mybatis.user
  </select>

    <!--parameterType 為 參數類型-->
    <select id="getUserById" parameterType="int" resultType="com.zm.mybatis.pojo.User">
    select * from mybatis.user where id=#{ID}
  </select>

    <!--實體類User對象的屬性可以直接取出來-->
    <insert id="addUser" parameterType="com.zm.mybatis.pojo.User">
    insert into mybatis.user (id,name,pwd) value (#{id},#{name},#{pwd})
  </insert>

    <update id="updateUser" parameterType="com.zm.mybatis.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>
           

3、測試類新增測試方法:

package com.zm.dao;

import com.zm.mybatis.dao.UserMapper;
import com.zm.mybatis.pojo.User;
import com.zm.mybatis.utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.List;

public class UserDaoTest {
    @Test
    public void test(){
        //第一步:獲得SqlSession對象
        SqlSession sqlSession= MyBatisUtils.getSqlSession();
        try {
            //執行sql語句
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            List<User> userList = mapper.getUserList();
            for (User user : userList) {
                System.out.println(user);
            }
        } finally {
            //關閉sqlSession
            sqlSession.close();
        }
    }
    @Test
    public void getUserById(){
        SqlSession sqlSession=MyBatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user=mapper.getUserById(1);
        System.out.println(user);
        sqlSession.close();
    }

    @Test
    public void addUser(){
        SqlSession sqlSession=MyBatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.addUser(new User(3,"王五","213453"));
        sqlSession.close();
    }

    @Test
    public void updateUser(){
        SqlSession sqlSession=MyBatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.updateUser(new User(3,"小白說java","456666"));

        sqlSession.close();
    }

    @Test
    public void deleteUser(){
        SqlSession sqlSession=MyBatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.deleteUser(3);
        sqlSession.commit();//這裡删除,需要将事務送出
        sqlSession.close();
    }

}

           

創作不易,留個贊吧~~~