一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring Boot整合MyBatis操作過程

Spring Boot整合MyBatis操作過程

2020-09-17 15:37牛頭人 Java教程

這篇文章主要介紹了Spring Boot整合MyBatis操作過程,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

1.加入mybatis-spring-boot-stater的Maven依賴

?
1
2
3
4
5
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.1.1</version>
  </dependency>

2.配置數據源

在src/main/resource中,application.properties配置文件中,這里面添加了一些數據庫連接的信息

?
1
2
3
4
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

3.代碼注入數據源

?
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
40
41
42
43
44
package com.example;
 
import javax.sql.DataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.core.env.Environment;
import org.springframework.web.servlet.DispatcherServlet;
import com.alibaba.druid.pool.DruidDataSource;
import com.example.Listener.IndexListener;
import com.example.filter.IndexFilter;
import com.example.servlet.MyServlet;
@SpringBootApplication
public class SpringBootSimpleApplication {
  @Autowired
  private Environment env;
  @Bean
  public DataSource dataSource() {
    DruidDataSource dataSource = new DruidDataSource();
    dataSource.setUrl(env.getProperty("spring.datasource.url"));
    dataSource.setUsername(env.getProperty("spring.datasource.username"));//用戶名
    dataSource.setPassword(env.getProperty("spring.datasource.password"));//密碼
    dataSource.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
    dataSource.setInitialSize(2);
    dataSource.setMaxActive(20);
    dataSource.setMinIdle(0);
    dataSource.setMaxWait(60000);
    dataSource.setValidationQuery("SELECT 1");
    dataSource.setTestOnBorrow(false);
    dataSource.setTestWhileIdle(true);
    dataSource.setPoolPreparedStatements(false);
    return dataSource;
  }
  public static void main(String[] args) {
    SpringApplication.run(SpringBootSimpleApplication.class, args);
  }
}

4.增加MyBatis的配置

MyBatisConfig.java類:

?
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
package com.example.mybatis;
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.transaction.annotation.TransactionManagementConfigurer;
@Configuration
//加上這個注解,使得支持事務
@EnableTransactionManagement
public class MyBatisConfig implements TransactionManagementConfigurer {
  @Autowired
  private DataSource dataSource;
  @Override
  public PlatformTransactionManager annotationDrivenTransactionManager() {
    return new DataSourceTransactionManager(dataSource);
  }
  @Bean(name = "sqlSessionFactory")
  public SqlSessionFactory sqlSessionFactoryBean() {
    SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
    bean.setDataSource(dataSource);
    try {
      return bean.getObject();
    } catch (Exception e) {
      e.printStackTrace();
      throw new RuntimeException(e);
    }
  }
  @Bean
  public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
    return new SqlSessionTemplate(sqlSessionFactory);
  }
}

MyBatisMapperScannerConfig.java類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.example.mybatis;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * 掃描mybatis的接口
 */
@Configuration
// 因為這個對象的掃描,需要在MyBatisConfig的后面注入,所以加上下面的注解
@AutoConfigureAfter(MyBatisConfig.class)
public class MyBatisMapperScannerConfig {
  @Bean
  public MapperScannerConfigurer mapperScannerConfigurer() {
    MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
    //獲取之前注入的beanName為sqlSessionFactory的對象
    mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
    //指定xml配置文件的路徑
    mapperScannerConfigurer.setBasePackage("com.example.mybatis.mapper");
    return mapperScannerConfigurer;
  }
}

5.mybatis接口配置,這里使用student表作為示例

使用@Mapper注解來標識一個接口為MyBatis的接口,MyBatis會自動尋找這個接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.example.mybatis.mapper;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface StudentMapper {
  @Select("select * from student;")
  public List<Map<String,Object>> find();
  @Insert("insert into student(id,name,age,score_sum,score_avg) "+
      "values(#{id},'Jim',33,200,100)")
  public int insert(@Param("id")int id);
}

6.service業務層調用接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.example.mybatis;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.mybatis.mapper.StudentMapper;
@Service
public class StuMybatisService {
  @Autowired
  private StudentMapper studentMapper;
  public List<Map<String,Object>> find(){
    return studentMapper.find();
  }
  public int insert(int id){
    return studentMapper.insert(id);
  }
}

7.controller控制層調用service業務層

?
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
package com.example.mybatis;
import java.util.List;
import java.util.Map;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/stumybatis")
public class StuMybatisController {
  private static Logger logger = LogManager.getLogger(StuMybatisController.class);
  @Autowired
  private StuMybatisService stuMybatisService;
  @RequestMapping("/list")
  public List<Map<String,Object>> getStus(){
    logger.info("從數據庫讀取Student集合");
    return stuMybatisService.find();
  }
  @RequestMapping("/add")
  public void addStus(){
    logger.info("student表中插入數據");
    stuMybatisService.insert(2);
  }
}

最終啟動程序,進行訪問:

http://localhost:8080/stumybatis/list

返回結果:

?
1
[{"score_sum":180.0,"name":"張三","id":1,"age":25,"score_avg":90.0},{"score_sum":200.0,"name":"Jim","id":2,"age":33,"score_avg":100.0}]

以上所述是小編給大家介紹的Spring Boot整合MyBatis的操作過程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://www.cnblogs.com/web424/p/6756957.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产女同精品 | 黄a 大片a v 永久免费 | 高清免费毛片 | 国产三级精品三级男人的天堂 | 欧美成人免费观看久久 | 99精品免费在线 | 天天看黄 | 高肉h护士办公室play | 国产精品美女福利视频免费专区 | 亚洲精品高清中文字幕完整版 | 99在线视频免费 | 日韩成人影视 | 九九九国产在线 | 99re热这里只有精品 | 日本黄色高清视频网站 | 亚洲一区二区三区不卡在线播放 | ak福利午夜在线观看 | 国模孕妇季玥全部人体写真 | 果冻传媒 天美 麻豆 | 1024亚洲天堂 | 国产男女乱淫真视频全程播放 | 精品视频手机在线观看免费 | 艹b小说 | 秋葵丝瓜茄子草莓榴莲樱桃 | 免费观看国产大片资源视频 | 乳色吐息讲的是什么 | 久久精品热99看 | 激情三级做爰在线观看激情 | 欧美va在线高清 | 国产日产韩产麻豆1区 | 调教禽兽| 91看片淫黄大片.在线天堂 | 波多野结衣178部中文字幕 | 九九九九在线视频播放 | 欧美在线成人免费国产 | 青青草原在线 | 亚洲视频在线观看免费视频 | 亚洲欧美影院 | 日本搜子同屋的日子2国语 日本爽p大片免费观看 | 日本精品一区二区三区 | 我不卡影院手机在线观看 |