MyBatis常用方法
由于下面这段代码的重复性很高,我们可以单独创建一个工具类
//1.加载mybatis的核心配置文件,获取SqlSessionFactory String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //2.获取SqlSession对象,用他来执行Sql SqlSession sqlSession = sqlSessionFactory.openSession();
工具类
public class MyBatisUtils {private static SqlSessionFactory factory;static {try {factory = new SqlSessionFactoryBuilder.build(new FileInputStream("mybatis-config.xml"));} catch(FileNotFoundException e) {e.printStackTrace();}}//自动提交public SqlSession openSession(boolean autoCommit) {return factory.openSession(autoCommit);}
}
简化后的代码
```java
public class TestUser { @Test public void testUser() throws IOException { SqlSession sqlSession = MyBatisUtils.openSession(true);//3.执行Sql List<User> users = sqlSession.selectList("test.selectAll"); System.out.println(users); }
}
selectMap方法
Map<String, User> map selectMap("selectAllUser", "id")
表示以id
作为key
,查询到的结果作为Map
基于注解实现MyBatis
@Mapper //标记Mapper接口
@Select("执行查询语句,返回结果")
@Insert("执行插入语句")
@Update("执行更新语句")
@Delete("执行删除语句")
MyBatis
- 添加依赖:
mybatis
,mariadb
驱动 - 配置数据库
spring:datasource:url: jdbc:mariadb://localhost:3306/mybatisusername: rootpassword: rootdriver-class-name: org.mariadb.jdbc.Driver
- 写
Mapper
@Mapperpublic interface UserInfoMapper {@Select("select * from userinfo") //接口方法的实现List<UserInfo> getUserInfoAll();}
selectCursor方法
Cursor<User> cursor = session.selectCursor("selectAllUser");
for(User user : cursor) {System.out.println(user);cursor.isOpen(); //是否已经开始遍历cursor.getCurrentIndex();//获取遍历到第几个(下标)
}
cursor.isConsumed(); //是否遍历完了
select方法
session.select("selectAllUser", context -> {System.out.println(context.getResultCount());System.out.println(context.getREsultObject());context.stop();
})