• 【无标题】


    spring整合mybais
    需要提交 配置文件[mybatis-config.xml, spring.xml]以及 一个service和实现类,保证测试一个方法通过的截图。
    记得配置事务,注解事务以及xml事务

    mybatis:

    package com.cdcas.config;
    
    import org.mybatis.spring.SqlSessionFactoryBean;
    import org.mybatis.spring.mapper.MapperScannerConfigurer;
    import org.springframework.context.annotation.Bean;
    
    import javax.sql.DataSource;
    
    public class MybatisConfig {
    
        //    连接工厂对象这里的DataSource对象可以直接获取
    //    这里可能会出现循环依赖
        @Bean
        public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {
            SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
            sqlSessionFactoryBean.setDataSource(dataSource);
    //        给实体类取别名,告诉mybatis实体类在哪里
            sqlSessionFactoryBean.setTypeAliasesPackage("com.cdcas.pojo");
            return sqlSessionFactoryBean;
        }
    
        @Bean
        public MapperScannerConfigurer mapperScannerConfigurer() {
            MapperScannerConfigurer mp = new MapperScannerConfigurer();
    //        找到mapper
            mp.setBasePackage("com.cdcas.mapper");
            return mp;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    Spring:

    package com.cdcas.config;
    
    import org.springframework.context.annotation.*;
    import org.springframework.transaction.annotation.EnableTransactionManagement;
    
    //Configuration标识这个类为一个配置类
    @Configuration
    //扫描我们的包
    @ComponentScan("com.cdcas")
    //导入要加载的配置类
    @Import({jdbcConfig.class,MybatisConfig.class})
    //导入要加载的配置文件
    @PropertySource("classpath:jdbc.properties")
    //告诉Spring开启了Aop注解
    @EnableAspectJAutoProxy
    //告诉Spring用注解事务驱动
    @EnableTransactionManagement
    public class SpringConfig {
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    jdbc:

    import com.alibaba.druid.pool.DruidDataSource;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.jdbc.datasource.DataSourceTransactionManager;
    import org.springframework.transaction.PlatformTransactionManager;
    
    import javax.sql.DataSource;
    
    public class jdbcConfig {
        @Value("${jdbc.driver}")
        private String driver;
        @Value("${jdbc.url}")
        private String url;
        @Value("${jdbc.user}")
        private String userName;
        @Value("${jdbc.password}")
        private String password;
    
        //1.定义一个方法获得要管理的对象
    //    一个druid的连接池
        @Bean
        public DataSource dataSource() {
            DruidDataSource ds = new DruidDataSource();
            ds.setDriverClassName(driver);
            ds.setUrl(url);
            ds.setUsername(userName);
            ds.setPassword(password);
            return ds;
        }
    
        //    事务管理器
        @Bean
        public PlatformTransactionManager transactionManager(DataSource dataSource) {
            DataSourceTransactionManager transactionManager = new DataSourceTransactionManager();
            transactionManager.setDataSource(dataSource);
            return transactionManager;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    service接口:

    import com.cdcas.pojo.Emp;
    import org.springframework.transaction.annotation.Transactional;
    
    import java.util.List;
    
    @Transactional
    public interface EmpService {
        //    添加
        //    开事务
        void add(Emp emp);
        //    修改
        //    开事务
        void update(Emp emp);
        //    查看
        List<Emp> select();
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    实现类:
    package com.cdcas.service.impl;

    import com.cdcas.mapper.EmpMapper;
    import com.cdcas.pojo.Emp;
    import com.cdcas.service.EmpService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;

    import java.util.List;

    @Service(value = “empServiceImpl”)
    public class EmpServiceImpl implements EmpService {
    @Autowired
    private EmpMapper empMapper;
    @Override
    public void add(Emp emp) {
    empMapper.add(emp);
    }

    @Override
    public void update(Emp emp) {
        empMapper.update(emp);
    }
    
    @Override
    public List select() {
       return empMapper.select();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    }

    测试通过:
    在这里插入图片描述

  • 相关阅读:
    c代码库(残篇)持续更新
    Java 领域模型之失血、贫血、充血、胀血模型
    springbootMysql文华学院青年志愿者服务预约系统97973-计算机毕业设计项目选题推荐(附源码)
    02.接口隔离原则(Interface Segregation Principle)
    插值查找的简单理解
    Netty—Channel
    什么是简单网络管理协议(SNMP)
    提取Android盒子dtb文件
    搞个微信小程序001
    VCS & Design Compiler(1)
  • 原文地址:https://blog.csdn.net/weixin_53050118/article/details/126583390