MyBatis相应api
SqlSession 工厂构建器SqlSessionFactoryBuilder
常用API:SqlSessionFactory build(InputStream inputStream)
通过加载mybatis的核心文件的输入流的形式构建一个SqlSessionFactory对象
String resource = "org/mybatis/builder/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(inputStream);
其中, Resources 工具类,这个类在 org.apache.ibatis.io 包中。Resources 类帮助你从类路径下、文件系统或一个 web URL 中加载资源文件。
SqlSession 工厂对象SqlSessionFactory
SqlSessionFactory 有多个个方法创建SqlSession 实例。常用的有如下两个:
//插入数据操作
@Test
public void test6() throws IOException {
//模拟user对象
User user =new User();
user.setUserName("anan");
user.setPassWord("55555");
user.setPhone("05145");
//获得核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
//获得session工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//获得session会话对象
SqlSession sqlSession = sqlSessionFactory.openSession(true);
//true mybatis默认提交事务
//执行操作 参数:namespace+id
sqlSession.insert("userMapper.insert",user);
//mybatis执行更新操作,提交事务
// sqlSession.commit();
//释放资源
sqlSession.close();
}
会话对象
SqlSession 实例在 mybatis 中是非常强大的一个类。在这里你会看到所有执行语句、提交或回滚事务和获取映射器实例的方法。
<T> T selectOne(String statement, Object parameter) // 返回其中一条
<E> List<E> 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()
查询其中一条数据selectOne
sqlMapConfig.xml
<!--根据id查询-->
<select id="findById" resultType="user" parameterType="int">
select * from test_user where id=#{id}
</select>
测试文件
// 查询一个对象
@Test
public void test7() throws IOException {
//获得核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
//获得session工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//获得session会话对象
SqlSession sqlSession = sqlSessionFactory.openSession(true);// true mybatis默认事务提交
//执行操作 参数:namespace+id
User user = sqlSession.selectOne("userMapper.findById", 6);
System.out.println(user);
//释放资源
sqlSession.close();
}
//User{id=6, userName='lisi', passWord='123456', phone='10565455'}