mybatis基础-API(4)

MyBatis相应API

SqlSession工厂对象SqlSessionFactory

SqlSessionFactory 有多个个方法创建 SqlSession 实例。常用的有如下两个:

自动提交:

@Test
//自动提交
    public  void test1() throws IOException {
        //模拟user
        UserQuery user = new UserQuery();
        user.setName("tom");
        user.setAge(18);
        user.setPassword("4444");
        user.setToken("aaaaaa");
        //获得核心配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
        //获得session工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //获得session会话对象,自动提交不需要  sqlSession.commit();
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        //执行操作
        sqlSession.insert("userMapper.save",user);
        //释放资源
        sqlSession.close();
    }

手动提交

//获得核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
//获得session工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//获得session会话对象 不设置为true
SqlSession sqlSession = sqlSessionFactory.openSession();
//执行操作
sqlSession.insert("userMapper.save",user);
//mysql需要执行更新操作需要提交事务,手动提交
sqlSession.commit();
//释放资源
sqlSession.close();

SqlSession会话对象

SqlSession 实例在 MyBatis 中是非常强大的一个类。包括所有执行语句、提交或回滚事务和获取映射器实例的方法。
执行语句的方法主要有:
T selectOne(String statement, Object parameter)
List selectList(String statement, Object parameter)
int insert(String statement, Object parameter)
int update(String statement, Object parameter)
int delete(String statement, Object parameter)

操作事务的方法主要有:
void commit() //提交事务
void rollback() //回滚事务

mappper.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">
<!--namespace 与下面语句的id一起组成查询的标识: userMapper.findById-->
<mapper namespace="userMapper">
    <!--select 标签 可修改改 insert update delete-->
    <select id="findById" resultType="com.studymybatis.domain.UserQuery" parameterType="int">
        select * from user where id=#{id}
    </select>
</mapper>

查询id=1的数据

public  void test5() throws IOException {
    //获得核心配置文件
    InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
    //获得session工厂对象
    SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(resourceAsStream);
    //获得session会话对象
    SqlSession sqlSession =sqlSessionFactory.openSession();
    //执行操作
    UserQuery user =sqlSession.selectOne("userMapper.findById",1);
    //打印数据
    System.out.println(user);
    //释放资源
    sqlSession.close();
}
posted @ 2021-12-14 14:46  只要不兔的学习笔记  阅读(54)  评论(0)    收藏  举报