mybatis03-继续xml的CRUD

1.保存操作

1.1UserDao先写接口

public interface UserDao {
    List<User> findAllUser();
    void saveUser(User user);
}

1.2 UserMapper.xml写Sql语句

<?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绑定interface接口-->
<mapper namespace="com.kcl.dao.UserDao">
    <!--resultType 返回类型-->
    <select id="findAllUser"  resultType="com.kcl.pojo.User">
        select * from user
    </select>


    <insert id="saveUser" parameterType="com.kcl.pojo.User">
        insert into user(username,address,sex,birthday) values (#{username},#{address},#{sex},#{birthday});
    </insert>
</mapper>

1.3 编写测试文件

点击查看代码
public class Test {

    public InputStream in;
    public SqlSession sqlSession;
    public UserDao mUserDao;

    @Before
    public void init() throws Exception{
        //读取主配置文件
        in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //输入流读取生成SQLSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
        //获取sqlSession
        sqlSession = sqlSessionFactory.openSession();
        //读入用户接口文件UserDao.class
        mUserDao = sqlSession.getMapper(UserDao.class);
    }


    @After
    public  void destory() throws Exception{
        //释放资源
        sqlSession.close();
        in.close();
    }


    @org.junit.Test
    public void test01(){
        try {
            //List<User> users = mapper.findAllUser();
            //System.out.println(users);
            User user = new User();
            user.setUsername("kcl");
            user.setSex("男");
            user.setAddress("合肥");
            user.setBirthday(new Date());
            mUserDao.saveUser(user);
            //保存时需要提交事务,不然插不进入
            sqlSession.commit();

        }catch (Exception e){
            e.printStackTrace();
        }
    }

}

2.更新操作

2.1 UserDao接口

public interface UserDao {

    List<User> findAllUser();

    void saveUser(User user);

    void updateUser(User user);
}

2.2 UserMapper.xml

    <update id="updateUser" parameterType="com.kcl.pojo.User">
        update user set username=#{username},address=#{address},sex=#{sex},birthday=#{birthday}
        where id=#{id}
    </update>

2.3 编写测试类

点击查看代码
import com.kcl.dao.UserDao;
import com.kcl.pojo.User;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;

import java.io.InputStream;
import java.util.Date;

/**
 * 项目名: mybatis_heima_01
 * 包名:    PACKAGE_NAME
 * 文件名   Test
 * 创建者
 * 创建时间: 2022/4/2 11:45 PM
 * 描述  ${TODO}
 */
public class Test {

    public InputStream in;
    public SqlSession sqlSession;
    public UserDao mUserDao;

    @Before
    public void init() throws Exception{
        //读取主配置文件
        in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //输入流读取生成SQLSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
        //获取sqlSession
        sqlSession = sqlSessionFactory.openSession();
        //读入用户接口文件UserDao.class
        mUserDao = sqlSession.getMapper(UserDao.class);
    }


    @After
    public  void destory() throws Exception{

        //保存时需要提交事务,不然插不进入
        sqlSession.commit();
        //释放资源
        sqlSession.close();
        in.close();
    }


    @org.junit.Test
    public void test01(){
        try {
            //List<User> users = mapper.findAllUser();
            //System.out.println(users);
            User user = new User();
            user.setUsername("kcl");
            user.setSex("男");
            user.setAddress("合肥");
            user.setBirthday(new Date());
            mUserDao.saveUser(user);

        }catch (Exception e){
            e.printStackTrace();
        }
    }


    @org.junit.Test
    public void testUpdate(){
        try {
            //List<User> users = mapper.findAllUser();
            User user = new User();
            user.setId(5);
            user.setUsername("superkcl");
            user.setSex("男");
            user.setAddress("合肥");
            user.setBirthday(new Date());
            mUserDao.updateUser(user);


        }catch (Exception e){
            e.printStackTrace();
        }
    }

}

3删除操作

3.1编写接口

public interface UserDao {

    List<User> findAllUser();

    void saveUser(User user);

    void updateUser(User user);

    //根据ID删除User
    void deleteUser(Integer id);
}

3.2编写Mapper Sql

<?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绑定interface接口-->
<mapper namespace="com.kcl.dao.UserDao">
    <!--resultType 返回类型-->
    <select id="findAllUser"  resultType="com.kcl.pojo.User">
        select * from user
    </select>


    <insert id="saveUser" parameterType="com.kcl.pojo.User">
        insert into user(username,address,sex,birthday) values (#{username},#{address},#{sex},#{birthday});
    </insert>

    <!-- #{username} 里面的字段必须是User里面的属性名-->
    <update id="updateUser" parameterType="com.kcl.pojo.User">
        update user set username=#{username},address=#{address},sex=#{sex},birthday=#{birthday}
        where id=#{id}
    </update>


    <!-- int 或者 Integer 或者 INT 或者 INTEGER 或者 java.lang.Integer -->
    <!-- deleteUser函数只有一个参数,#{id}写任何一个名字都可以,只是占位符功能-->
    <delete id="deleteUser" parameterType="int">
        delete from user where id=#{id}
    </delete>

</mapper>

3.3测试

点击查看代码
import com.kcl.dao.UserDao;
import com.kcl.pojo.User;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;

import java.io.InputStream;
import java.util.Date;

/**
 * 项目名: mybatis_heima_01
 * 包名:    PACKAGE_NAME
 * 文件名   Test
 * 创建者
 * 创建时间: 2022/4/2 11:45 PM
 * 描述  ${TODO}
 */
public class Test {

    public InputStream in;
    public SqlSession sqlSession;
    public UserDao mUserDao;

    @Before
    public void init() throws Exception{
        //读取主配置文件
        in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //输入流读取生成SQLSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
        //获取sqlSession
        sqlSession = sqlSessionFactory.openSession();
        //读入用户接口文件UserDao.class
        mUserDao = sqlSession.getMapper(UserDao.class);
    }


    @After
    public  void destory() throws Exception{

        //保存时需要提交事务,不然插不进入
        sqlSession.commit();
        //释放资源
        sqlSession.close();
        in.close();
    }


    @org.junit.Test
    public void test01(){
        try {
            //List<User> users = mapper.findAllUser();
            //System.out.println(users);
            User user = new User();
            user.setUsername("kcl");
            user.setSex("男");
            user.setAddress("合肥");
            user.setBirthday(new Date());
            mUserDao.saveUser(user);

        }catch (Exception e){
            e.printStackTrace();
        }
    }


    @org.junit.Test
    public void testUpdate(){
        try {
            //List<User> users = mapper.findAllUser();
            User user = new User();
            user.setId(5);
            user.setUsername("superkcl");
            user.setSex("男");
            user.setAddress("合肥");
            user.setBirthday(new Date());
            mUserDao.updateUser(user);


        }catch (Exception e){
            e.printStackTrace();
        }
    }

    @org.junit.Test
    public void testDelete(){
        try {

            mUserDao.deleteUser(6);


        }catch (Exception e){
            e.printStackTrace();
        }
    }

}


4.模糊查询

UserDao

    //根据用户名关键字模糊查询
    List<User> findByName(String username);

UserMapper.xml

    <select id="findByName" parameterType="String" resultType="com.kcl.pojo.User">
        select * from user where username like #{username}
    </select>

测试

            List<User> users = mUserDao.findByName("%马%");
            System.out.println(users);
posted @   超级氯化钾  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示