mybatis03-继续xml的CRUD


1.保存操作

1.1UserDao先写接口

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

1.2 UserMapper.xml写Sql语句

<?xml version="1.0" encoding="UTF-8" ?>




    
    


    
        insert into user(username,address,sex,birthday) values (#{username},#{address},#{sex},#{birthday});
    

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 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 findAllUser();

    void saveUser(User user);

    void updateUser(User user);
}

2.2 UserMapper.xml

    
        update user set username=#{username},address=#{address},sex=#{sex},birthday=#{birthday}
        where id=#{id}
    

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 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 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 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" ?>




    
    


    
        insert into user(username,address,sex,birthday) values (#{username},#{address},#{sex},#{birthday});
    

    
    
        update user set username=#{username},address=#{address},sex=#{sex},birthday=#{birthday}
        where id=#{id}
    


    
    
    
        delete from user where id=#{id}
    



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 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 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 findByName(String username);

UserMapper.xml

    

测试

            List users = mUserDao.findByName("%马%");
            System.out.println(users);