MyBatis系列
MyBatis调用原生API的方法
一、前期准备工作
初始化
@Before
//Method init should be public
public void init(){
sqlSession= MyBatisUtils.getSqlSession();
monsterMapper=sqlSession.getMapper(MonsterMapper.class);
System.out.println("monsterMapper的运行类型="+monsterMapper.getClass());
}
使用自定义MyBatisUtils,获取mapper.xml内容,得到连接sqlSession
public class MyBatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static{
try {
String resource="mybatis-config.xml";
InputStream resourceAsStream = Resources.getResourceAsStream(resource);
sqlSessionFactory= new SqlSessionFactoryBuilder().build(resourceAsStream);
System.out.println("sqlSessionFactory="+sqlSessionFactory.getClass());
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
二、原生API使用
1.插入select
statement:表示接口全名+方法
object:select的参数,自己接口写的什么参数,就是什么。我这儿插入的是Monster
方法如下(示例):
int select = sqlSession.select(String statement,Object object)
2.删除delete
参数同上。
如果接口没有参数,那么就没有Object参数。
代码如下(示例):
int delete = sqlSession.delete(“com.stein.mapper.MonsterMapper.delMonster”, 7);
3.修改update
参数同上。
代码如下(示例):
int update = sqlSession.update(“com.stein.mapper.MonsterMapper.updateMonster”, monster);
4.查询select
参数同上。
代码如下(示例):
查询一个结果:One
Monster monster = sqlSession.selectOne(“com.stein.mapper.MonsterMapper.selectMonsterById”, 6);
查询结果比较多,通常用的List集合返回,所以方法是List
List monsters = sqlSession.selectList(“com.stein.mapper.MonsterMapper.selectAllMonsters”);
因为查询不涉及修改数据库,所以不需要使用
sqlSession.commit();
注意事项
增删改方法需要提交事务,否则不会生效
if(sqlSession!=null){
sqlSession.commit();
sqlSession.close();
}