Mybatis
项目完成步骤
- 数据库
- 新建项目
Maven->Next->设置名称,存储位置->完成
文章图片
文章图片
文章图片
- 导入依赖
文章图片
- 创建模块
新建->模块->Maven->输入信息->完成
![Java|初学Mybatis-第一个Mybatis程序及踩坑解决](http://img.readke.com/220410/2045313c6-4.jpg)
文章图片
![Java|初学Mybatis-第一个Mybatis程序及踩坑解决](http://img.readke.com/220410/2045312539-5.jpg)
文章图片
- 编写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; } }
- 编写代码
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
- 测试
在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(); } }
- 结果
![Java|初学Mybatis-第一个Mybatis程序及踩坑解决](http://img.readke.com/220410/2045311I1-6.jpg)
文章图片
踩坑
- 在Maven配置中添加一下代码防止找不到Mapper的xml文件找不到
src/main/resources
**/*.properties
**/*.xml
true
src/main/java
**/*.properties
**/*.xml
true
- com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效。
将xml文件的第一行的UTF-8改成UTF8
- 版本类型不对(Error : java 不支持发行版本xxx )
看在FIle->项目结构>module里面语言级别与当前java版本是不是一样的
文章图片
然后看setting->如下java版本是否与当前本地的一样
文章图片
- 【Java|初学Mybatis-第一个Mybatis程序及踩坑解决】然后基本是问题就能解决了,程序测试也可以运行出来了.
推荐阅读
- 机器学习|CVPR 2022 接收结果出炉!录用 2067 篇,接收数量上升24%(附最新论文速递)
- 如何在 github 上找到优质代码
- 算法|回溯算法——洛谷p1036
- 蓝桥杯|扩散(十一届蓝桥杯java决赛题目)
- 数据库|从头开始搞懂 MySQL(06)索引的选择
- Java|Java 第 24 课 888. 公平的糖果棒交换 720. 词典中最长的单词
- 实现一个自己的语法解析器与执行引擎
- mapper|selectPage方法重载时遇到问题
- 微服务|初识微服务技术栈