如何获取mybatis,使用maven仓库
org.mybatis
mybatis
3.5.6
mybatis是一个数据持久化框架,那么什么是持久化。
持久化 数据持久化就是把程序中的数据持久化到数据库中,如果想用时在现创建那么没有任何意义,那么我们就用MySQL数据库进行存储,当我们用的时候在取出来,我们mybais 就是持久化框架,也就是我们之前用的jdbc,他省略了jdbc繁琐的代码。
现在常说的持久层就是mybatis框架做的,还有业务层是spring,表现层springmvc
2、第一个Mybatis程序
思路:搭建环境–>导入Mybatis–>编写代码–>测试
2.1 搭建环境
搭建数据库
新建项目
新建一个普通maven项目
删除src目录
导入maven依赖
mysql
mysql-connector-java
5.1.47
org.mybatis
mybatis
3.5.6
junit
junit
4.12
自己在此用了mybatis3.5.2版本在之后导包会失败,所以换成3.5.6版本。
2.2 创建一个模块
编写mybatis的核心配置文件
此处设useSSL=false。
编写mybatis工具类
//SqlSessionFactory -->SqlSession
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
//使用Mybaties第一步:获取sqlSessionFactory对象
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (Exception e) {
e.printStackTrace();
}
}
//既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。
// SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。
public static SqlSession getSqlSession(){
// SqlSession sqlSession = sqlSessionFactory.openSession();
// return sqlSession;
return sqlSessionFactory.openSession();
}
}
2.3 编写代码
实体类
//实体类
public class User {
private int id;
private String name;
private String pwd;
public User() {
}
public User(int id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + ''' +
", pwd='" + pwd + ''' +
'}';
}
}
Dao接口
public interface UserDao {
List getUserList();
}
接口实现类由原来的UserDaoImpl转变成一个Mapper配置文件。
select * from mybatis.user
2.4 测试
注意点:
org.apache.ibatis.binding.BindingException: Type interface com.kuang.dao.UserDao is not known to the MapperRegistry.
MapperRegistry是什么?
核心配置文件中注册mappers
junit测试
@Test
public void test(){
//第一步:获得SqlSession对象
SqlSession sqlSession = MybatisUtils.getSqlSession();
//方式一:getMapper
UserDao userDao = sqlSession.getMapper(UserDao.class);
List userList = userDao.getUserList();
for (User user : userList) {
System.out.println(user);
}
//关闭SqlSession
sqlSession.close();
}



