写本文章的目的:最近正在看狂神的视频学习mybatis,但是跟着视频配置下来仍然有一些小错误,导致花费了很多时间去找bug。在此记录一下,祝大家学习愉快。本文非常详细,适合小白食用。大佬跳过即可_
思路流程:搭建环境–>导入Mybatis—>编写代码—>测试
本程序的目的:导入mybatis然后写SQL语句查询数据库的信息。
本文章涉及的资源(点击直达):
狂神教学视频网址
视频对应文档网址
官方文档
开始配置
1、搭建环境
1.1、搭建实验数据库(在mysqlworkbench软件中创建一个表并添加数据,你用什么软件都可以,只要把表格建好并添加数据。)
--“CREATE DATAbase`mybatis`“只在第一次创建数据库的时候才使用, --之后如果在该数据库中建表就不用写这句话。 CREATE DATAbase `mybatis`; USE `mybatis`; DROp TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(20) NOT NULL, `name` varchar(30) DEFAULT NULL, `pwd` varchar(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into `user`(`id`,`name`,`pwd`) values (1,'狂神','123456'),(2,'张三','abcdef'),(3,'李四','987654');
MySqlWorkbench运行结果如下:
1.2、在IDEA中新建一个Maven项目–>删除src目录–>导入maven依赖
(1)(2)
(3)在pom.xml文件(properties标签后)加入代码。
注意:导入的数据库依赖的时候,数据库的版本号一定要和你自己使用的数据库版本一致
org.mybatis mybatis3.5.2 mysql mysql-connector-java8.0.20 junit junitRELEASE maim src/main/java ***.xml false src/main/resources ***.xml false
2、导入MyBatis
2.1在IDEA里面连接前面写好的数据库。
注意:你的IDEA一定要是专业版的侧栏才有Database。社区版的建议去官网下一个专业版(学生认证即可免费使用)。
连接成功后查看数据:
2.2编写MyBatis核心配置文件。
(1)创建“mybatis-config.xml”配置文件。
(2)核心配置文件:连接数据库
注意:需要修改的地方—>配置文件中的mysql账号密码一定要写你自己的。
(3)编写MyBatis工具类
理解编写该工具类的目的(官方文档解释):每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件来构建出 SqlSessionFactory 实例。–>有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。(SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句)。
main–>java–>创建utils包–>创建MybatisUtils工具类
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
//读取配置文件,new获取sqlSessionFactory对象。
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//获取SqlSession连接
//既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。
// SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
3、编写代码
文件夹如下:
(1)实体类User(为数据库中的变量封装–> 构造,有参,无参、set/get、toString() )
在这里插入代码片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 + ''' +
'}';
}
}
(2)Dao文件夹下–> 编写UserMapper接口类
public interface UserMapper {
List selectUser();
}
(3)编写UserMapper.xml配置文件(文件夹中没有UserMapper接口类的实现类,这里的UserMapper.xml就充当了UserMapper实现类的作用。因为我们是用了mybatis框架,所以我们可以直接在配置文件中写SQL语句。)
注意:需要修改的地方—>配置文件中的namespace、resultType需要根据你自己的全限定类名(包名+类型)修改。
特别注意:每写一个Mapper.xml都需要在mybatis核心配置文件mybatis-config.xml里面注册!(文章最前面展示的mybatis-config.xml配置文件中已经添加了的,这里不需要再添加一次,只是提醒⏰^_ ^)
4、测试
创建测试文件
public class test {
@Test
public void test() {
//获取SqlSession对象。
SqlSession session = MybatisUtils.getSqlSession();
//方法一:获取getMapper实现接口,并调用该对象的方法(这个方法在配置文件中配置了的,相当于该方法的实现)
UserMapper mapper = session.getMapper(UserMapper.class);
List users = mapper.selectUser();
// System.out.println(users); 一个集合
for (User user: users){
System.out.println(user);
}
session.close();
}
}
------------------------------总结分割线--------------------------
结尾多一嘴:是不是觉得配置mybatis太麻烦不如直接写JDBC语句?但是配置完一次后面就方便很多了。祝你学习愉快。



