亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Spring Boot如何實現對MyBatis的整合

發布時間:2020-11-17 16:37:54 來源:億速云 閱讀:145 作者:Leah 欄目:編程語言

本篇文章為大家展示了使用Spring Boot如何實現對MyBatis的整合,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

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

  <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配置文件中,這里面添加了一些數據庫連接的信息

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.代碼注入數據源

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類:

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類:

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會自動尋找這個接口

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業務層調用接口

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業務層

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

返回結果:

[{"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的整合,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汝阳县| 清远市| 萍乡市| 通化县| 孙吴县| 故城县| 鄂托克旗| 吴忠市| 山西省| 黔江区| 昌平区| 白水县| 卓资县| 临湘市| 英吉沙县| 巴彦淖尔市| 崇阳县| 儋州市| 澳门| 井陉县| 邹平县| 乌拉特前旗| 南城县| 新余市| 东辽县| 宜君县| 遵义县| 内黄县| 合肥市| 壤塘县| 如皋市| 宣汉县| 依兰县| 资兴市| 承德县| 雷波县| 大兴区| 甘南县| 桂林市| 德昌县| 元谋县|