栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring对于Mybatis的整合

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring对于Mybatis的整合

最近学了黑马程序员的课程,用Spring对之前项目的Mybatis进行整合,步骤如下
首先第一步在maven中导入坐标


      org.springframework
      spring-context
      5.2.10.RELEASE
    

    

      com.alibaba
      druid
      1.0.15
    

    
      org.mybatis
      mybatis
      3.5.6
    

    
      mysql
      mysql-connector-java
      5.1.47
    
    
    
      org.springframework
      spring-jdbc
      5.2.10.RELEASE
    
    
    

      org.mybatis
      mybatis-spring
      1.3.0
    



先写了一个小型的项目,结构如图,有DAO层和Service层,测试类test相当于将来webapp项目的Servlet。
使用spring纯注解开发模式,首先新建一个config包,里面新建三个java类,分别是SpringConfig(Spring核心配置),MybatisConfig(Mybatis配置)以及JdbcConfig(Jdbc配置)。

SpringConfig
@Configuration //声明该类是核心配置类
@ComponentScan("com.itheima") //Spring注解扫描,可扫描到itheima包下面的Component配置类
@PropertySource("classpath:jdbc.properties") //引入properties文件
public class SpringConfig {
}
JdbcConfig配置类
@Component
public class JdbcConfig {


    @Value("${jdbc.driver}")
    private String driver;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username ;
    @Value("${jdbc.password}")
    private String password ;


    @Bean
    public DataSource dataSource(){
        DruidDataSource ds = new DruidDataSource();
        ds.setDriverClassName(driver);
        ds.setUrl(url);
        ds.setUsername(username);
        ds.setPassword(password);
        return  ds;
    }
}

注意在这里的类似于jdbc.driver等变量是在配置文件中定义完成的

Mybatis配置
@Component
public class MybatisConfig {

    @Bean
    public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){
        SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
        ssfb.setTypeAliasesPackage("com.itheima.pojo");
        ssfb.setDataSource(dataSource);
        return ssfb;
    }

    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer(){
        MapperScannerConfigurer msc = new MapperScannerConfigurer();
        msc.setBasePackage("com.itheima.dao");
        return msc;
    }

}

此处代码在往后的项目中可直接复制,只需更改 ssfb.setTypeAliasesPackage和 msc.setBasePackage两个值即可。
之后我写了一个查询所有方法来验证能否正常在数据库中读取数据。

UserDao接口代码
@Component
public interface UserDao {

    @Select("select * from tb_user")
    List findAll();
}
UserService接口代码
public interface UserService {

    List findAll();
}
UserServiceImpl实现类代码
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;

    public List findAll(){
        return userDao.findAll();
    }
}

在这里使用注解@AutoWired自动装配UserDao对象。

测试类如下
public class test {
    public static void main(String[] args) {
        ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
        UserService userService = ctx.getBean(UserService.class);
        List all = userService.findAll();
        System.out.println(all);
    }
}

可以正常读出数据库存储的数组。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/885834.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号