聊聊、Mybatis集成Spring 注解方式

导航:  

聊聊、Mybatis API  

聊聊、Mybatis XML 

聊聊、Mybatis集成Spring XML 方式

聊聊、手写Mybatis XML配置方式

聊聊、手写Mybatis 注解配置方式 

聊聊、手写Mybatis SpringBoot Starter

 

依赖 


<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.31</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.5</version>
</dependency>

 

Config配置类 


 package org.rockcode.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;

@Configuration
@ComponentScan({"org.rockcode.services"})
@MapperScan("org.rockcode.mappers")
public class AppConfig {

 

@Bean
public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){
  SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
  sqlSessionFactoryBean.setDataSource(dataSource);
  return sqlSessionFactoryBean;
}

 

@Bean
public DataSource dataSource(){
  DruidDataSource driverManagerDataSource = new DruidDataSource();
  driverManagerDataSource.setDriverClassName("com.mysql.jdbc.Driver");
  driverManagerDataSource.setUrl("jdbc:mysql://127.0.0.1:3306/test?useSSL=false");
  driverManagerDataSource.setUsername("root");
  driverManagerDataSource.setPassword("root");
  return driverManagerDataSource;
} 

}

这里有个非常重要的注解 @MapperScan("org.rockcode.mappers"),相当于《聊聊、Mybatis集成Spring XML方式》里面的 <mybatis:scan base-package="org.rockcode.mappers" />或者

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="org.rockcode.mappers" />
</bean>

 

AccountService.java 


 package org.rockcode.services; 

import org.rockcode.mappers.AccountMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; 

import java.util.List;
import java.util.Map; 


@Component
public class AccountService { 

@Autowired
private AccountMapper accountMapper; 

public void queryAll() {
  List<Map<String, Object>> list = accountMapper.queryAll();
  System.out.println(list);
} 

}

 

AccountMapper.java 


 package org.rockcode.mappers;

import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;

public interface AccountMapper {
@Select("select * from account")
public List<Map<String,Object>> queryAll();
}

 

Main方法 


 package org.rockcode.config; 

import org.rockcode.services.AccountService;
import org.springframework.context.annotation.AnnotationConfigApplicationContext; 

public class Main {


public static void main(String[] args) { 

  AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
  AccountService accountService = ac.getBean(AccountService.class);
  accountService.queryAll();
}
} 

posted @   香农随笔  阅读(433)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示