MyBatis是一款优秀的持久层框架,用于简化JDBC开发
JDBC缺点:
1.硬编码、系统不易维护:
注册驱动,获取连接,如果要将Mysql数据库换成其他关系型数据库的话,四个地方都要修改
2.操作繁琐:
要手动设置参数、封装结果集;图标4的代码就是对查询到的数据进行封装,这部分代码无技术含量且耗费时间。
MyBatis优化:
硬编码可以配置到配置文件
操作繁琐的地方MyBatis都自动完成
public class UserInfoDaoImpl implements UserInfoDao {
@Override
public List<UserInfo> selectAll(){
try {
InputStream in=Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
SqlSessionFactory sqlSessionFactory=builder.build(in);
SqlSession sqlSession = sqlSessionFactory.openSession();
//有实现类对象的情况:
List<UserInfo> userInfos = sqlSession.selectList("org.example.dao.UserInfoDao.selectAll");
return userInfos;
//没有实现类对象的情况:
/**UserInfoDao mapper = sqlSession.getMapper(UserInfoDao.class);
List<UserInfo> userInfos1 = mapper.selectAll();
userInfos1.forEach(o-> System.out.println(o));*/
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}