Titan笔记

  • 首页
  • Java
  • 数据结构
  • Web
  • C语言
  • Python
  • 杂谈
  • 逸笔挥墨
Titan笔记
分享学习、研究与开发过程中的点滴记忆
  1. 首页
  2. Java
  3. 正文

Spring与Mybatis的整合

2020年6月26日 261点热度 2人点赞 0条评论

提供一种Spring的IoC容器与Mybatis的整合方式,其中中,Mybatis采用纯注解方式配置,Spring采用XML方式配置。数据库源采用的是C3P0数据库连接池。

1. 在Spring的XML配置文件中添加相关配置

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="driverClass" value="com.mysql.cj.jdbc.Driver"/>
    <property name="jdbcUrl"
              value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true"/>
    <property name="user" value="root"/>
    <property name="password" value="password123"/>
</bean>
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="cn.titan6.spring.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>
    <bean id="userService" class="cn.titan6.spring.service.impl.UserServiceImpl"/>

这里采用的是mybatis-spring的MapperScannerConfigurer来实现将DAO对象置入IOC容器中,将会扫描并加入basePackage指定包下的所有DAO接口。

2. DAO接口与Service实现类

DAO简单的实现了一个查询所有信息的功能

package cn.titan6.spring.dao;

import cn.titan6.spring.bean.User;
import org.apache.ibatis.annotations.Select;

import java.util.List;


public interface UserDao {
    @Select("SELECT * FROM user")
    List<User> findAllUser();
}

UserService实现类采用Spring的注解方式自动通过构造器进行依赖注入UserDao

package cn.titan6.spring.service.impl;

import cn.titan6.spring.bean.User;
import cn.titan6.spring.dao.UserDao;
import cn.titan6.spring.service.UserService;
import org.springframework.stereotype.Component;

import java.util.List;

@Component("userService")
public class UserServiceImpl implements UserService {
    private final UserDao dao;

    public UserServiceImpl(UserDao dao) {
        this.dao = dao;
    }

    @Override
    public List<User> findAllUser() {
        return dao.findAllUser();
    }
}

3. 进行JUnit测试

import cn.titan6.spring.bean.User;
import cn.titan6.spring.config.SpringConfiguration;
import cn.titan6.spring.service.UserService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.List;

public class SpringTest {
    @Test
    public void findAllUser() {
        ApplicationContext context = new ClassPathXmlApplicationContext("Application.xml");
        UserService userService = context.getBean("userService", UserService.class);
        List<User> allUser = userService.findAllUser();
        allUser.forEach(System.out::println);
    }
}

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: Mybatis Spring Spring与MyBatis整合
最后更新:2020年6月26日

Titan

兴趣广泛而无一精擅
想到什么,我总是渴望以代码的方式去呈现
永远年轻,永远热泪盈眶
Stay Hungry, Stay Foolish

点赞
< 上一篇
下一篇 >

文章评论

取消回复

Titan

兴趣广泛而无一精擅
想到什么,我总是渴望以代码的方式去呈现
永远年轻,永远热泪盈眶
Stay Hungry, Stay Foolish

逸笔挥墨 - Titan的文学天地
文章分类
  • C语言 (4)
  • Hadoop (1)
  • Hive (3)
  • Java (19)
  • JavaWeb (4)
  • Linux运维之道 (1)
  • Mybatis学习笔记 (3)
  • Python (3)
  • SpringCloud (4)
  • Web (5)
  • Web前端 (4)
  • Web后端 (5)
  • 数据库 (1)
  • 数据结构 (10)
  • 杂谈 (3)
  • 诗词歌赋 (1)
  • 随摘 (2)
最新 热点 随机
最新 热点 随机
Spring Cloud 微服务学习笔记 - 负载均衡服务调用 Spring Cloud 微服务学习笔记 - Eureka 服务注册与发现 Spring Cloud 微服务学习笔记 - IDEA工程搭建 关于我和Titan笔记 Spring Cloud 微服务学习笔记 - 开篇 TitanEMS - Titan企业员工管理系统 - JavaWeb期末实践项目
Spring Cloud 微服务学习笔记 - 开篇TitanEMS - Titan企业员工管理系统 - JavaWeb期末实践项目2021年1月随摘2021年1月诗摘关于我和Titan笔记《梦之浮桥》中的几句
[数据结构] 两个有序线性表的合并 Apache-Hive 使用MySQL存储Hive的元数据 提问的智慧 Linux 网络优化指南 - 改善Linux的网络性能 Hadoop安装与环境配置入门 Titan社区,基于SSM框架开发的知识问答社区
标签聚合
JavaWeb Mybatis学习笔记 数据结构 Java 链式存储 Apache-Hive 二叉树 Python
友情链接
  • Mttblog

COPYRIGHT © 2016 - 2021 Titan笔记. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

豫ICP备20001822号-1

豫公网安备 41010502004418号