Mybatis 05 注解实现增删改查

UserMapper
public interface UserMapper {
    /*注解实现增删改查*/
    @Select("select * from tb_user")
    List<User> selectAll2();

    @Insert("insert into tb_user values(null,#{username},#{password},#{gender},#{addr})")
    @Options(useGeneratedKeys=true,keyProperty="id")
    void insert(User user);

    @Update("update tb_user set username=#{username},password=#{password},gender=#{gender},addr=#{addr} where id=#{id}")
    void updateUser(User user);

    @Delete("delete from tb_user where id=#{id}")
    void delete(int id);
}
test
import com.entity.Brand;
import com.entity.User;
import com.mapper.BrandMapper;
import com.mapper.UserMapper;
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.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class TestUser {
/*注解实现增删改查*/
    @Test
    public void testSelectAll2() throws IOException {
        //1. 加载mybatis的核心配置文件,获取 SqlSessionFactory
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //2. 获取SqlSession对象,用它来执行sql
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //3. 执行sql
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> list = mapper.selectAll2();
        System.out.println(list);
        //4. 释放资源
        sqlSession.close();
    }

    @Test
    public void testInsert() throws IOException {
        //1. 加载mybatis的核心配置文件,获取 SqlSessionFactory
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = new User(null,"王王","123","男","赣州");
        mapper.insert(user);
        sqlSession.close();
    }

    @Test
    public void testUpdate() throws IOException {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = new User(4,"王维","123","男","赣州");
        mapper.updateUser(user);
        sqlSession.close();
    }
    @Test
    public void testDelete() throws IOException {
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.delete(4);
        sqlSession.close();
    }

}

多表查询之 一对一

实体类
image

接口类EmpMapper.java
public interface EmpMapper {
    @Select("select * from emp")
    @Results({
            @Result(column = "empno",property = "empno"),
            @Result(column = "ename",property = "ename"),
            @Result(column = "job",property = "job"),
            @Result(column = "mgr",property = "mgr"),
            @Result(column = "hiredate",property = "hiredate"),
            @Result(column = "sal",property = "sal"),
            @Result(column = "comm",property = "comm"),
            @Result(column = "deptno",property = "deptno"),
            @Result(property="dept",column ="deptno",one = @One(select = "com.mapper.DeptMapper.selectDeptByDeptno") )
    })
    List<EmpVo> selectEmpDeptAnno();
}

public interface DeptMapper {

    @Select("select * from dept where deptno=#{deptno}")
    Dept selectDeptByDeptno(int deptno);
}
test
   @Test
    public void testSelectAllAnno() throws IOException { //自动映射
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
        List<EmpVo> emps = mapper.selectEmpDeptAnno();
        for (int i = 0; i < emps.size(); i++) {
            System.out.println(emps.get(i)+"---"+emps.get(i).getDept());
        }
        sqlSession.close();
    }

多表查询之一对多

实体类
image

接口类


public interface DeptMapper {

    @Select("select * from dept")
    @Results({
            @Result(column = "deptno",property = "deptno"),
            @Result(column = "dname",property = "dname"),
            @Result(column = "loc",property = "loc"),
            @Result(property = "emps",column ="deptno",many = @Many(select = "com.mapper.EmpMapper.selectEmpsByDeptno") )})
    List<Dept> selectDeptAnno();
}

public interface EmpMapper {
    @Select("select * from emp where deptno=#{deptno}")
    List<EmpVo> selectEmpsByDeptno(int deptno);
}
test
    @Test
    public void testSelectDeptAnno() throws IOException { //MyBatis一对多关联映射
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        DeptMapper mapper = sqlSession.getMapper(DeptMapper.class);
        List<Dept> list = mapper.selectDeptAnno();
        for (Dept dept:list) {
            System.out.println(dept+"--"+dept.getEmpVos());
        }
        sqlSession.close();
    }

posted @ 2023-09-20 11:22  OYそ  阅读(7)  评论(0编辑  收藏  举报