个人实践总结Myabtis与Spring优化项目【手段一】【超全面】
原创写在前面:本篇为小白博主自学总结内容,比较适合初级者。
个人学习总结 Myabtis与Spring整合项目 【方式一】
一、前期准备
创建maven项目,搭建环境 这里不做过多的赘述。
1.1 导入包
在Mybatis和Spring整合的项目之前,必须先导入相关的包,因为创建的是maven项目,所以直接在 pom.xml 文件中导入相关依赖即可,具体需要导入的依赖如下:
1、导入junit依赖
junit
junit
4.12
2、导入mysql依赖
mysql
mysql-connector-java
8.0.26
3、导入mybatis依赖
org.mybatis
mybatis
3.5.9
4、导入Spring依赖
org.springframework
spring-webmvc
5.3.18
5、Mybatis和Spring整合,需要Spring来操作数据库,所以导入Spring-jdbc依赖
org.springframework
spring-jdbc
5.3.19
6、导入myabtis和spring整合的依赖
org.mybatis
mybatis-spring
2.0.7
注意:
mybatis和spring整合的依赖版本、spring的版本、mybatis的版本之间需要互相对应,具体可参考下图

1.2 创建配置文件及文件夹
1、 创建配置文件
在resources文件夹下,分别创建spring的配置文件 spring-dao.xml 、mybatis的配置文件 mybsatis-config.xml 和总的配置文件 applicationContext.xml 【名字可以随便起】

2、创建文件夹
分别创建com.li.pojo层 来存放实体类、com.li.mapper层 来存放接口及接口的配置文件【名字可以自己起】

二、项目编写
2.1 创建数据库
创建数据库并插入数据
CREATE DATABASE mybatis;
USE mybatis;
CREATE TABLE user(
id INT(20)NOT NULL,
nameVARCHAR(30)DEFAULT NULL,
pwdVARCHAR(30) DEFAULT NULL,
PRIMARY KEY(id)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
INSERT INTO user(id,name,pwd)
VALUES(1,狂神,123456),
(2,张三,123456),
(3,李四,123456)
2.1 编写代码
1、编写实体类
在创建好的com.li.pojo层创建实体类 User
package com.li.pojo;
public class User {
private int id;
private String name;
private String 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;
}
public User(int id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}
public User() {
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name=" + name + +
", pwd=" + pwd + +
};
}
}
2、 编写接口
在创建好的com.li.mapper层编写接口 UserMapper
package com.li.mapper;
import com.li.pojo.User;
import java.util.List;
public interface UserMapper {
List userSelect();
}
3、 编写接口实现类配置文件 UserMapper.xml
4、编写 mybatis-config.xml 配置文件内容
5、编写接口UserMapper的实现类 UserMapperImpl
这个类的主要目的就是来通过现在的 SqlSessionTemplate 创建 sqlSession ,之前单独使用 mybatis 时候这一步的操作是编写工具类
package com.li.mapper;
import com.li.pojo.User;
import org.mybatis.spring.SqlSessionTemplate;
import java.util.List;
public class UserMapperImpl implements UserMapper {
private SqlSessionTemplate sqlSession;
public void setSqlSession(SqlSessionTemplate sqlSession) {
this.sqlSession = sqlSession;
}
@Override
public List userSelect() {
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
return mapper.userSelect();
}
}
6、编写 spring-dao.xml 配置文件内容
9、编写 applicationContext.xml 配置文件内容
8、测试
import com.li.mapper.UserMapper;
import com.li.pojo.User;
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 org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MyTest {
@Test
public void test() throws IOException {
ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
//这里的userMapper就是在Spring-dao.xml配置文件中 把类注入进去时候bean的id名
UserMapper userMapper = classPathXmlApplicationContext.getBean("userMapper", UserMapper.class);
for (User user : userMapper.userSelect()) {
System.out.println(user);
}
}
}

三、项目源码
链接:https://pan.baidu.com/s/14cpaEpPlYXbJHGqlORRS9w
提取码:9802
四、总结
错误一:
成功从数据库取出数据,但是输出出现问题,问题如下:

后经核查,发现实体类User中忘记写入toString()方法,导致从数据库中拿出来的结果没有得到解析。
错误二:
java: 无法访问org.apache.ibatis.session.SqlSession 找不到org.apache.ibatis.session.SqlSession的类文件
具体可参考:
https://blog.csdn.net/junR_980218/article/details/124264719
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123


