最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot整合MyBatis操作過程

 更新時間:2017年04月24日 15:16:59   作者:牛頭人  
這篇文章主要介紹了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.配置數(shù)據(jù)源

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

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.代碼注入數(shù)據(jù)源

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
//加上這個注解,使得支持事務(wù)
@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
// 因?yàn)檫@個對象的掃描,需要在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注解來標(biāo)識一個接口為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業(yè)務(wù)層調(diào)用接口

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控制層調(diào)用service業(yè)務(wù)層

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("從數(shù)據(jù)庫讀取Student集合");
    return stuMybatisService.find();
  }
  @RequestMapping("/add")
  public void addStus(){
    logger.info("student表中入數(shù)據(jù)");
    stuMybatisService.insert(2);
  }
}

最終啟動程序,進(jìn)行訪問:

http://localhost:8080/stumybatis/list

返回結(jié)果:

[{"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的操作過程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • SpringBoot 統(tǒng)一公共返回類的實(shí)現(xiàn)

    SpringBoot 統(tǒng)一公共返回類的實(shí)現(xiàn)

    本文主要介紹了SpringBoot 統(tǒng)一公共返回類的實(shí)現(xiàn),配置后臺的統(tǒng)一公共返回類,這樣做目的是為了統(tǒng)一返回信息,文中示例代碼介紹的很詳細(xì),感興趣的可以了解一下
    2022-01-01
  • 如何使用 IntelliJ IDEA 編寫 Spark 應(yīng)用程序(Scala + Maven)

    如何使用 IntelliJ IDEA 編寫 Spark 應(yīng)用程序(Sc

    本教程展示了如何在IntelliJIDEA中使用Maven編寫和運(yùn)行一個簡單的Spark應(yīng)用程序(例如WordCount程序),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • String字符串拼接方法concat和+的效率對比

    String字符串拼接方法concat和+的效率對比

    這篇文章主要介紹了String字符串拼接方法concat和+的效率對比,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 通過字節(jié)碼看java中this的隱式傳參詳解

    通過字節(jié)碼看java中this的隱式傳參詳解

    這篇文章主要給大家介紹了關(guān)于如何通過字節(jié)碼看java中this的隱式傳參的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • JVM 方法調(diào)用之動態(tài)分派(詳解)

    JVM 方法調(diào)用之動態(tài)分派(詳解)

    下面小編就為大家?guī)硪黄狫VM 方法調(diào)用之動態(tài)分派(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Springboot整合Swagger2后訪問swagger-ui.html 404報錯問題解決方案

    Springboot整合Swagger2后訪問swagger-ui.html 404報錯問題解決方案

    這篇文章主要介紹了Springboot整合Swagger2后訪問swagger-ui.html 404報錯,本文給大家分享兩種解決方案,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • java泛型學(xué)習(xí)示例

    java泛型學(xué)習(xí)示例

    Java泛型(Generics)是JDK5開始引入的一個新特性,允許在定義類和接口的時候使用類型參數(shù)(Type Parameter)。下面是學(xué)習(xí)泛型的示例
    2014-04-04
  • BeanDefinition基礎(chǔ)信息講解

    BeanDefinition基礎(chǔ)信息講解

    今天小編就為大家分享一篇關(guān)于BeanDefinition基礎(chǔ)信息講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • 在Spring Boot中如何使用log4j記錄日志

    在Spring Boot中如何使用log4j記錄日志

    這篇文章主要介紹如何在spring boot中引入log4j,以及一些基礎(chǔ)用法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • Java 數(shù)據(jù)結(jié)構(gòu)之堆的概念與應(yīng)用

    Java 數(shù)據(jù)結(jié)構(gòu)之堆的概念與應(yīng)用

    堆是一顆完全二叉樹,在這棵樹中,所有父節(jié)點(diǎn)都滿足大于等于其子節(jié)點(diǎn)的堆叫大根堆,所有父節(jié)點(diǎn)都滿足小于等于其子節(jié)點(diǎn)的堆叫小根堆,堆雖然是一顆樹,但是通常存放在一個數(shù)組中,父節(jié)點(diǎn)和孩子節(jié)點(diǎn)的父子關(guān)系通過數(shù)組下標(biāo)來確定
    2021-10-10

最新評論

富宁县| 长海县| 敦煌市| 达日县| 黎平县| 乐陵市| 兴国县| 西贡区| 丹江口市| 林甸县| 长顺县| 大厂| 高唐县| 云梦县| 馆陶县| 武义县| 驻马店市| 富川| 志丹县| 浦东新区| 周至县| 临颍县| 若尔盖县| 溧阳市| 二手房| 桂林市| 福建省| 蒲城县| 西昌市| 攀枝花市| 莎车县| 新巴尔虎左旗| 四子王旗| 象山县| 牙克石市| 襄汾县| 板桥市| 晋宁县| 长乐市| 广东省| 岳阳市|