前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring与Mybatis的整合

Spring与Mybatis的整合

作者头像
泰坦HW
发布2020-07-22 16:09:39
3240
发布2020-07-22 16:09:39
举报
文章被收录于专栏:Titan笔记

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

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

代码语言:javascript
复制
<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简单的实现了一个查询所有信息的功能

代码语言:javascript
复制
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

代码语言:javascript
复制
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测试

代码语言:javascript
复制
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);
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年06月26日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 在Spring的XML配置文件中添加相关配置
  • 2. DAO接口与Service实现类
  • 3. 进行JUnit测试
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档