Spring整合Mybatis 【xml版】

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Spring整合Mybatis 【xml版】

图集导航


fd1cc8d532dc4189ad2005456d545ebe.png


1 . 编写User

@Table(name = "user")
public class User {
    @Id
    private Integer id ;
    private String name ;
    private Integer age ;
    private Double num ;
//构造及其get/set方法省略
}


2.编写UserMapper

import com.czxy.demo22_xml_sw.daomain.User;
import tk.mybatis.mapper.common.Mapper;
//UserMapper接口直接继承Mapper接口,关联User类
public interface UserMapper extends Mapper<User> {
}


3. 编写UserService接口及其实现类

—— UserService接口

import com.czxy.demo22_xml_sw.daomain.User;
import java.util.List;
public interface UserService {
    //查询所有
    List<User> selectAll();
}


—— UserServiceImpl接口实现类

package com.czxy.demo22_xml_sw.service.impl;
import com.czxy.demo22_xml_sw.daomain.User;
import com.czxy.demo22_xml_sw.mapper.UserMapper;
import com.czxy.demo22_xml_sw.service.UserService;
import java.util.List;
public class UserServiceImpl implements UserService {
    //依赖注入mapper
    private UserMapper userMapper;
    public void setUserMapper(UserMapper userMapper) {
        this.userMapper = userMapper;
    }
    //查询所有
    @Override
    public List<User> selectAll() {
        return userMapper.selectAll();
    }
}


4.properties文件

1. jdbc.driver=com.mysql.cj.jdbc.Driver
2. jdbc.url=jdbc:mysql://localhost:3306/day02_mysql
3. jdbc.username=root
4. jdbc.password=1234


5. 编写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:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                  http://www.springframework.org/schema/beans/spring-beans.xsd
                  http://www.springframework.org/schema/mvc
                  http://www.springframework.org/schema/mvc/spring-mvc.xsd
                  http://www.springframework.org/schema/aop
                  http://www.springframework.org/schema/aop/spring-aop.xsd
                  http://www.springframework.org/schema/tx
                  http://www.springframework.org/schema/tx/spring-tx.xsd
                  http://www.springframework.org/schema/context
                  http://www.springframework.org/schema/context/spring-context.xsd">
    <!--1 数据源 -->
<!--1.1 加载配置文件  加载properties文件-->
    <context:property-placeholder location="classpath:db.properties"/> 
<!--1.2 配置数据源 【连接数据库,获取properties文件中的数据库信息】 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>
    <!--2 mapper -->
    <!--2.1 配置SqlSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
<!--value=“JavaBean所在的daomain包的全路径”  可自行根据需要定义路径 -->
        <property name="typeAliasesPackage" value="com.czxy.demo22_xml_sw.daomain" />
        <property name="configuration">
            <bean class="org.apache.ibatis.session.Configuration">
                <property name="mapUnderscoreToCamelCase" value="true" />
            </bean>
        </property>
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageHelper">
                    <property name="properties">
                        <props>
                            <prop key="dialect">mysql</prop>
                            <prop key="rowBoundsWithCount">true</prop>
                        </props>
                    </property>
                </bean>
            </array>
        </property>
    </bean>
    <!--2.2 配置mapper扫描-->
    <bean id="mapperScanner" class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- value= "mapper包所在的的全路径"  可自行根据需要定义路径 -->
        <property name="basePackage" value="com.czxy.demo22_xml_sw.mapper"/>
    </bean>
    <!--3.配置bean-->
    <!-- 3.1 service  class="service实现类所在的全路径名"  -->
    <bean id="userService" class="com.czxy.demo22_xml_sw.service.impl.UserServiceImpl">
        <property name="userMapper" ref="userMapper"/>
    </bean>
    <!--4 事务相关-->
    <!--4.1 平台事务管理-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!--4.2 事务属性配置(事务详情)-->
    <tx:advice id="txAdvice" transaction-manager="transactionManager" >
        <tx:attributes>
            <tx:method name="change" propagation="REQUIRED"/>
            <tx:method name="*" read-only="true" />
        </tx:attributes>
    </tx:advice>
    <!--4.3 事务aop编程 -->
    <aop:config>
     <!-- expression = “切入点表达式”  -->   
        <aop:pointcut id="txPointcut" expression="execution(* com.czxy.demo22_xml_sw..*.*(..))"/>
        <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
    </aop:config>
</beans>


5.1 配置文件中要根据自己的项目做一些修改的,图集展示

—— 修改properties文件的路径

8d7288a97a5440dc80740f7b2dc9a64a.png


—— 修改JavaBean所在的daomain包路径


d372e4febdc44179962cd99a6c4a9598.png

——修改mapper所在包路径

44a964d7506d47abb3a757b4fb8b8153.png

—— 修改service实现类UserServiceImpl所在的全路径

0a8fdacb88ec4344b7800121ada8f037.png

—— 事务aop编程切入点表达式的修改

8ff2e0b048724ee688bacf98f36e19e7.png


6.编写测试类

@RunWith(SpringRunner.class)
// 加载配置类文件,如果是xml方式就加载xml文件;
// 如果是注解方式,就加载配置类config包中的类
@ContextConfiguration(locations = "classpath:Demo22_spring_sw.xml")
public class TestSM {
    @Resource
    private UserService userService;
    @Test
    public void testDemo22(){
        List<User> list= userService.selectAll();
        list.forEach(System.out::println);
    }
}


7.测试结果

2adada4a0c484aa3ab8351d5d80fad1d.png

8.图集总结590353085b124105907574bf37faf841.png





相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
XML Java 数据格式
Spring从入门到入土(xml配置文件的基础使用方式)
本文详细介绍了Spring框架中XML配置文件的使用方法,包括读取配置文件、创建带参数的构造对象、使用工厂方法和静态方法创建对象、对象生命周期管理以及单例和多例模式的测试。
83 7
Spring从入门到入土(xml配置文件的基础使用方式)
|
13天前
|
SQL 缓存 Java
MyBatis如何关闭一级缓存(分注解和xml两种方式)
MyBatis如何关闭一级缓存(分注解和xml两种方式)
41 5
|
1月前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
288 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
2月前
|
Java 数据库连接 数据库
spring复习05,spring整合mybatis,声明式事务
这篇文章详细介绍了如何在Spring框架中整合MyBatis以及如何配置声明式事务。主要内容包括:在Maven项目中添加依赖、创建实体类和Mapper接口、配置MyBatis核心配置文件和映射文件、配置数据源、创建sqlSessionFactory和sqlSessionTemplate、实现Mapper接口、配置声明式事务以及测试使用。此外,还解释了声明式事务的传播行为、隔离级别、只读提示和事务超时期间等概念。
spring复习05,spring整合mybatis,声明式事务
|
2月前
|
XML Java 数据格式
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
Spring 第二节内容补充 关于Bean配置的更多内容和细节 万字详解!
210 18
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
|
2月前
|
XML Java 数据格式
spring复习02,xml配置管理bean
详细讲解了Spring框架中基于XML配置文件管理bean的各种方式,包括获取bean、依赖注入、特殊值处理、属性赋值、集合类型处理、p命名空间、bean作用域及生命周期和自动装配。
spring复习02,xml配置管理bean
|
2月前
|
Java 数据库连接 数据库
SpringBoot 整合jdbc和mybatis
本文详细介绍了如何在SpringBoot项目中整合JDBC与MyBatis,并提供了具体的配置步骤和示例代码。首先,通过创建用户实体类和数据库表来准备基础环境;接着,配置Maven依赖、数据库连接及属性;最后,分别展示了JDBC与MyBatis的集成方法及其基本操作,包括增删查改等功能的实现。适合初学者快速入门。
SpringBoot 整合jdbc和mybatis
|
1月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
64 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
1月前
|
Java 数据库连接 API
springBoot:后端解决跨域&Mybatis-Plus&SwaggerUI&代码生成器 (四)
本文介绍了后端解决跨域问题的方法及Mybatis-Plus的配置与使用。首先通过创建`CorsConfig`类并设置相关参数来实现跨域请求处理。接着,详细描述了如何引入Mybatis-Plus插件,包括配置`MybatisPlusConfig`类、定义Mapper接口以及Service层。此外,还展示了如何配置分页查询功能,并引入SwaggerUI进行API文档生成。最后,提供了代码生成器的配置示例,帮助快速生成项目所需的基础代码。
|
2月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)