mybatis与spring整合步骤以及自己遇到的错误

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: mybatis与spring整合步骤以及自己遇到的错误

首先讲一下作者自己的配置路线:

1.首先是找好那些我们需要用到的jar包


20190427151233610.png

20190427151303377.png

20190427151323372.png

20190427151353762.png

20190427151421368.png

以及第三方的数据源jar包

20190427151510661.png


这是作者已经整理好的链接所需jar包整合

2.创建一个实现类去继承我们之前写过的接口

如下

import org.apache.ibatis.session.SqlSession;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import cn.ssm1234.dao.CustomerMapper;
import cn.ssm1234.domain.Customer;
public class CustomerMapperimpl extends SqlSessionDaoSupport  implements CustomerMapper {
  public void saveCustomer(Customer customer) {
    // TODO Auto-generated method stub
    //这里不需要事物的提交`在这里插入代码片`
    SqlSession sqlSession=this.getSqlSession();
    sqlSession.insert("saveCustomer",customer);
  }
}

但是可以发现这里我们直接通过getSQLSession()获得了SQLSession对象,而之前我们都是通过sSqlSessionFactory对象从而获得的,所以我们等会需要去配置

2.其次实现类编写好了。我们接下来就是配置数据库的相关信息,以及其他相关的配置

我们创建applicationcontext.xml文件来配置

这里为了方便我们创建jdbc.properties文件,使得之后的数据库配置信息能够可以直接从该文件中读出


jdbc.url=jdbc:mysql://localhost:3306/ssm
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.user=root
jdbc.password=123456

之后在applicationcontext.xml文件中配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans 
       http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
       http://www.springframework.org/schema/aop 
       http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
       http://www.springframework.org/schema/tx 
       http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
       http://www.springframework.org/schema/context 
       http://www.springframework.org/schema/context/spring-context-3.1.xsd
       ">
       <!-- 读取数据库的相关配置文件 -->
       <context:property-placeholder location="classpath:config/jdbc.properties"/>
       <!-- 创建数据源DataSource -->
       <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
       <property name="url" value="${jdbc.url}"></property>
       <property name="driverClassName" value="${jdbc.driverClass}"></property>
       <property name="username" value="${jdbc.user}"></property>
       <property name="password" value="${jdbc.password}"></property>
       <!-- 最大连接数 -->
       <property name="maxActive" value="10"></property>
       <!-- 最大空闲数 -->
       <property name="maxIdle" value="5"></property>
       </bean>
       <!-- 创建一个SqlSessionFactory对象 -->
       <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
       <!-- 关联连接池 -->
       <property name="dataSource" ref="dataSource"></property>
       <!--加载sql映射文件 -->
       <property name="mapperLocations" value="classpath:mapper/*.xml"></property>       
       </bean>
       <!-- 创建一个CustomerMapperImpl对象,然后向里面注入SQLSessionFactory的对象 -->
       <bean id="customerMapper" class="cn.ssm1234.dao.impl.CustomerMapperimpl">
       <!-- 关联或者输入sqlSeesionFactory -->
       <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
       </bean>
</beans>

3.我们就可以去编写测试类测试功能

import java.io.IOException;
import java.io.InputStream;
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.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.ssm1234.dao.CustomerMapper;
import cn.ssm1234.domain.Customer;
public class MybatisSpringTest {
  @Test
  public void test() throws Exception
  {
    //加载Spring的配置
    ApplicationContext ac=new ClassPathXmlApplicationContext("config/applicationcontext.xml");
    //获取对象
    CustomerMapper customerMapper=(CustomerMapper)ac.getBean("customerMapper");
    Customer customer=new Customer();
      customer.setName("你ni");
      customer.setGender("男");
      customer.setTelephone("6666");
      customer.setAddres("北京");
    customerMapper.saveCustomer(customer);
  }
}

错误1

报错说是找不到applicationcontext.xml文件

这里主要是如果大家是直接放在src文件一下的话,那么直接写

ApplicationContext ac=new ClassPathXmlApplicationContext(“applicationcontext.xml”);即可

但是如果是在包裹着文件夹下的话,就需要写出相应的全路径,比如作者自己的:

ApplicationContext ac=new ClassPathXmlApplicationContext(“config/applicationcontext.xml”);

错误2

数据库连接出错

作者自己的错误是jdbc.driverClass=com.mysql.jdbc.Driver写成了jdbc.driverClass=com.mysql.jdbc.driver这东西是区分大小写的

错误3

bean的一个property的name属性不合法,应该是这个意思

<property name="mapperLocations" value=“classpath:mapper/*.xml”>

这里面的l必须要大写,具体我也不知道是为什么

错误4

还是路径的问题,说是找不到jdbc.properties文件

这里就需要理解另外一个classpath,这个本身也是从src文件往下找,如果之久就是没有包括文件就可以直接写classpath:。。。。。

但是如果上一层还包括了其他的文件,就需要写出具体的文件路径:

比如:classpath:config/jdbc.properties

错误5

版本的不匹配问题

一种是mybatis的版本过高,另外一种是mybatis-spring的版本过低,建议大家用mybatis3.4.4和mybatis-Spring1.3.0


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
JSON 安全 算法
|
3月前
|
Java API Spring
在 Spring 配置文件中配置 Filter 的步骤
【10月更文挑战第21天】在 Spring 配置文件中配置 Filter 是实现请求过滤的重要手段。通过合理的配置,可以灵活地对请求进行处理,满足各种应用需求。还可以根据具体的项目要求和实际情况,进一步深入研究和优化 Filter 的配置,以提高应用的性能和安全性。
|
1月前
|
缓存 Java 数据库连接
深入探讨:Spring与MyBatis中的连接池与缓存机制
Spring 与 MyBatis 提供了强大的连接池和缓存机制,通过合理配置和使用这些机制,可以显著提升应用的性能和可扩展性。连接池通过复用数据库连接减少了连接创建和销毁的开销,而 MyBatis 的一级缓存和二级缓存则通过缓存查询结果减少了数据库访问次数。在实际应用中,结合具体的业务需求和系统架构,优化连接池和缓存的配置,是提升系统性能的重要手段。
51 4
|
1月前
|
SQL Java 数据库连接
spring和Mybatis的各种查询
Spring 和 MyBatis 的结合使得数据访问层的开发变得更加简洁和高效。通过以上各种查询操作的详细讲解,我们可以看到 MyBatis 在处理简单查询、条件查询、分页查询、联合查询和动态 SQL 查询方面的强大功能。熟练掌握这些操作,可以极大提升开发效率和代码质量。
56 3
|
2月前
|
Java 数据库连接 数据库
spring和Mybatis的逆向工程
通过本文的介绍,我们了解了如何使用Spring和MyBatis进行逆向工程,包括环境配置、MyBatis Generator配置、Spring和MyBatis整合以及业务逻辑的编写。逆向工程极大地提高了开发效率,减少了重复劳动,保证了代码的一致性和可维护性。希望这篇文章能帮助你在项目中高效地使用Spring和MyBatis。
31 1
|
3月前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
605 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
4月前
|
Java 数据库连接 数据库
spring复习05,spring整合mybatis,声明式事务
这篇文章详细介绍了如何在Spring框架中整合MyBatis以及如何配置声明式事务。主要内容包括:在Maven项目中添加依赖、创建实体类和Mapper接口、配置MyBatis核心配置文件和映射文件、配置数据源、创建sqlSessionFactory和sqlSessionTemplate、实现Mapper接口、配置声明式事务以及测试使用。此外,还解释了声明式事务的传播行为、隔离级别、只读提示和事务超时期间等概念。
spring复习05,spring整合mybatis,声明式事务
|
4月前
|
Java 数据库连接 数据库
SpringBoot 整合jdbc和mybatis
本文详细介绍了如何在SpringBoot项目中整合JDBC与MyBatis,并提供了具体的配置步骤和示例代码。首先,通过创建用户实体类和数据库表来准备基础环境;接着,配置Maven依赖、数据库连接及属性;最后,分别展示了JDBC与MyBatis的集成方法及其基本操作,包括增删查改等功能的实现。适合初学者快速入门。
118 3
SpringBoot 整合jdbc和mybatis
|
3月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
332 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
3月前
|
Java 数据库连接 API
springBoot:后端解决跨域&Mybatis-Plus&SwaggerUI&代码生成器 (四)
本文介绍了后端解决跨域问题的方法及Mybatis-Plus的配置与使用。首先通过创建`CorsConfig`类并设置相关参数来实现跨域请求处理。接着,详细描述了如何引入Mybatis-Plus插件,包括配置`MybatisPlusConfig`类、定义Mapper接口以及Service层。此外,还展示了如何配置分页查询功能,并引入SwaggerUI进行API文档生成。最后,提供了代码生成器的配置示例,帮助快速生成项目所需的基础代码。
196 1