Mybatis快速入门(上)

70 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情

实现mybatis中的增删改查

mybatis中的增删改写法类似

image-20221011200544387.png

 @Test
    public void  testInsert() throws IOException {
    //获得核心配置文件的输入流
    InputStream is = Resources.getResourceAsStream("MyBatis-config.xml");
//获得SqlSessionFactoryBuilder对象
    SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    //获得SqlSessionFactory对象
    SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
    //获得sql的会话对象SqlSession 是mybatis提供的操作数据库的对象
    SqlSession sqlSession = sqlSessionFactory.openSession();
    //获取userMapper的代理实现类对象
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    int result = mapper.insertUser();
    System.out.println("结果"+result);
    sqlSession.commit();
    sqlSession.close();
​
​
    }
  @Test
  public void testUpdate() throws IOException {
    //获得核心配置文件的输入流
    InputStream is = Resources.getResourceAsStream("MyBatis-config.xml");
//获得SqlSessionFactoryBuilder对象
    SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    //获得SqlSessionFactory对象
    SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
    //获得sql的会话对象SqlSession 是mybatis提供的操作数据库的对象
    SqlSession sqlSession = sqlSessionFactory.openSession();
    //获取userMapper的代理实现类对象
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    mapper.updateUser();
    sqlSession.commit();
    sqlSession.close();
  }
​
  @Test
  public void testdeleteUser() throws IOException {
    //获得核心配置文件的输入流
    InputStream is = Resources.getResourceAsStream("MyBatis-config.xml");
//获得SqlSessionFactoryBuilder对象
    SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    //获得SqlSessionFactory对象
    SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
    //获得sql的会话对象SqlSession 是mybatis提供的操作数据库的对象
    SqlSession sqlSession = sqlSessionFactory.openSession();
    //获取userMapper的代理实现类对象
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    mapper.deleteUser();
    sqlSession.commit();
    sqlSession.close();

查询功能

分为单行和多行

resultType:设置结果类型,即查询的数据要转换为的java类型

resultMap:自定义映射,处理多对一或一对多的映射关系

image-20221011201750856.png

image-20221011201704350.png

image-20221011201930101.png

image-20221011201930101.png

 @Test
  public void  testGetUserById() throws IOException {
    InputStream is=Resources.getResourceAsStream("mybatis-config.xml");
    SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
    SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
    SqlSession sqlSession=sqlSessionFactory.openSession(true);
    UserMapper mapper=sqlSession.getMapper(UserMapper.class);
    User userById = mapper.getUserById();
    System.out.println(userById);
  }
@Test
public void  testGetAllUser() throws IOException {
  InputStream is=Resources.getResourceAsStream("mybatis-config.xml");
  SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
  SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
  SqlSession sqlSession=sqlSessionFactory.openSession(true);
  UserMapper mapper=sqlSession.getMapper(UserMapper.class);
  List<User> list = mapper.getAllUser();
  list.forEach(System.out::println);
}

获取sqlsession的工具类

public class SqlSessionUtil {
    public static SqlSession getSqlSession() {
        SqlSession sqlSession=null;
        try {
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
            SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
            sqlSession= sqlSessionFactory.openSession(true);
​
        } catch (IOException e) {
            e.printStackTrace();
        }
        return sqlSession;
    }
}