Java|初学Mybatis-第一个Mybatis程序及踩坑解决

Mybatis
项目完成步骤

  1. 数据库
  2. 新建项目
    Maven->Next->设置名称,存储位置->完成

    Java|初学Mybatis-第一个Mybatis程序及踩坑解决
    文章图片

    Java|初学Mybatis-第一个Mybatis程序及踩坑解决
    文章图片

    Java|初学Mybatis-第一个Mybatis程序及踩坑解决
    文章图片

  3. 导入依赖
    Java|初学Mybatis-第一个Mybatis程序及踩坑解决
    文章图片

  4. 创建模块
    新建->模块->Maven->输入信息->完成

Java|初学Mybatis-第一个Mybatis程序及踩坑解决
文章图片

Java|初学Mybatis-第一个Mybatis程序及踩坑解决
文章图片

  1. 编写Mybatis的核心配置文件和Mybatis的工具类
    核心配置文件
    在Mybatis-01/src/main/resuorce下新建mybatis-config.xml文件,粘贴一下内容

    修改部分内容:数据库相关信息

    工具类
    java包创建包top.yanggeol.dao和top.yanggeol.utils,utils中创建MybatisUtils工具类
    package top.yanggeol.utils; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.InputStream; //sqlSessionFactory --> sqlSession public class MybatisUtils {private static SqlSessionFactory sqlSessionFactory; static { try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e){ e.printStackTrace(); } }// 既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。 // 你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句 public static SqlSession getSqlSession() { SqlSession sqlSession = sqlSessionFactory.openSession(); return sqlSession; } }

  2. 编写代码
    utils包同级下创建破击包,包下创建User实体类
    package top.yanggeol.pojo; //实体类 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层新建接口UserDao.java
    package top.yanggeol.dao; import top.yanggeol.pojo.User; import java.util.List; public interface UserDao { List getUserList(); }

    dao层新建配置文件UserMapper.xml
    select * from mybatis.user

  3. 测试
    在test/java新建top.yanggeo.dao包并编写UserDaoTest.java测试文件
    package top.yanggeol.dao; import org.apache.ibatis.session.SqlSession; import org.junit.Test; import top.yanggeol.pojo.User; import top.yanggeol.utils.MybatisUtils; import java.util.List; public class UserDaoTest {@Test public void test() {//1. 获得SqlSession对象 SqlSession sqlSession = MybatisUtils.getSqlSession(); //2. 方式1执行SQL //UserDao userDao = sqlSession.getMapper(UserDao.class); //List userList = userDao.getUserList(); // 方式2 List userList = sqlSession.selectList("top.yanggeol.dao.UserDao.getUserList"); for (User user : userList) { System.out.println(user); }// 关闭SqlSession sqlSession.close(); } }

  4. 结果
Java|初学Mybatis-第一个Mybatis程序及踩坑解决
文章图片

踩坑
  1. 在Maven配置中添加一下代码防止找不到Mapper的xml文件找不到
? The error may exist in top/yanggeol/dao/UserMapper.xml
src/main/resources **/*.properties **/*.xml true src/main/java **/*.properties **/*.xml true

  1. com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效。
    将xml文件的第一行的UTF-8改成UTF8
  2. 版本类型不对(Error : java 不支持发行版本xxx )
    看在FIle->项目结构>module里面语言级别与当前java版本是不是一样的
    Java|初学Mybatis-第一个Mybatis程序及踩坑解决
    文章图片

    然后看setting->如下java版本是否与当前本地的一样
    Java|初学Mybatis-第一个Mybatis程序及踩坑解决
    文章图片

  3. 【Java|初学Mybatis-第一个Mybatis程序及踩坑解决】然后基本是问题就能解决了,程序测试也可以运行出来了.

    推荐阅读