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 中是非常强大的一个类。包括所有执行语句、提交或回滚事务和获取映射器实例的方法。
执行语句的方法主要有:
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();
}

浙公网安备 33010602011771号