激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

服務器之家 - 編程語言 - Java教程 - SpringBoot項目整合mybatis的方法步驟與實例

SpringBoot項目整合mybatis的方法步驟與實例

2021-07-21 14:45雙斜杠少年 Java教程

今天小編就為大家分享一篇關于SpringBoot項目整合mybatis的方法步驟與實例,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

1. 導入依賴的jar包

springboot項目整合mybatis之前首先要導入依賴的jar包,配置pom.xml文件如下:

?
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://maven.apache.org/pom/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
     xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelversion>4.0.0</modelversion>
  <groupid>com.u</groupid>
  <artifactid>springboot-mybatis</artifactid>
  <version>1.0-snapshot</version>
  <parent>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-parent</artifactid>
    <version>1.3.0.release</version>
  </parent>
  <properties>
    <start-class>com.us.application</start-class>
    <mybatis.version>3.2.7</mybatis.version>
    <mybatis-spring.version>1.2.2</mybatis-spring.version>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.source>1.8</maven.compiler.source>
  </properties>
  <dependencies>
    <!--springboot-->
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-web</artifactid>
    </dependency>
    <!--db-->
    <dependency>
      <groupid>mysql</groupid>
      <artifactid>mysql-connector-java</artifactid>
      <version>6.0.5</version>
    </dependency>
    <dependency>
      <groupid>com.mchange</groupid>
      <artifactid>c3p0</artifactid>
      <version>0.9.5.2</version>
      <exclusions>
        <exclusion>
          <groupid>commons-logging</groupid>
          <artifactid>commons-logging</artifactid>
        </exclusion>
      </exclusions>
    </dependency>
    <!--mybatis-->
    <dependency>
      <groupid>org.springframework</groupid>
      <artifactid>spring-jdbc</artifactid>
    </dependency>
    <dependency>
      <groupid>org.mybatis</groupid>
      <artifactid>mybatis</artifactid>
      <version>${mybatis.version}</version>
    </dependency>
    <dependency>
      <groupid>org.mybatis</groupid>
      <artifactid>mybatis-spring</artifactid>
      <version>${mybatis-spring.version}</version>
    </dependency>
    <!--util-->
    <dependency>
      <groupid>org.apache.commons</groupid>
      <artifactid>commons-lang3</artifactid>
      <version>3.4</version>
    </dependency>
  </dependencies>
</project>

2. 配置數據源

pom.xml配置完畢后需要配置數據源了。新建dbconfig類配置數據源,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
import org.springframework.core.env.environment;
import com.alibaba.druid.pool.druiddatasource;
import com.google.common.base.preconditions;
@configuration
public class dbconfig {
  @autowired
  private environment env;
  @bean(name = "datasource")
  public druiddatasource datasource() {
    final string url = preconditions.checknotnull(env.getproperty("ms.db.url"));
    final string username = preconditions.checknotnull(env.getproperty("ms.db.username"));
    final string password = env.getproperty("ms.db.password");
    final int maxactive = integer.parseint(env.getproperty("ms.db.maxactive", "200"));
    druiddatasource datasource = new druiddatasource();
    datasource.seturl(url);
    datasource.setusername(username);
    datasource.setpassword(password);
    datasource.setmaxactive(maxactive);
    return datasource;
  }
}

3. 添加數據庫連接信息

在配置文件application.properties中添加數據庫連接信息如下:

?
1
2
3
4
ms.db.url=jdbc:mysql://localhost:3306/dev?prepstmtcachesize=517&cacheprepstmts=true&autoreconnect=true&characterencoding=utf-8&allowmultiqueries=true
ms.db.username=root
ms.db.password=admin
ms.db.maxactive=500

4. 配置mybatis的sqlsessionfactorybean

數據源配置完以后要配置mybatis的sqlsessionfactorybean進行掃描mapper,新建mybatisconfig類代碼如下(classpath*:mapper/*.xml為mapper.xml文件路徑):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import javax.sql.datasource;
import org.mybatis.spring.sqlsessionfactorybean;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.context.applicationcontext;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
@configuration
public class mybatisconfig {
  @autowired
  private datasource datasource;
  @bean(name = "sqlsessionfactory")
  public sqlsessionfactorybean sqlsessionfactory(applicationcontext applicationcontext) throws exception {
    sqlsessionfactorybean sessionfactory = new sqlsessionfactorybean();
    sessionfactory.setdatasource(datasource);
    sessionfactory.setmapperlocations(applicationcontext.getresources("classpath*:mapper/*.xml"));
    return sessionfactory;
  }
}

5. 配置mapperscannerconfigurer掃描dao層

然后配置mapperscannerconfigurer掃描dao層,新建類mybatisscannerconfig代碼如下(注意與mybatisconfig不要寫在一個類里):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
import org.mybatis.spring.mapper.mapperscannerconfigurer;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
@configuration
public class mybatisscannerconfig {
  @bean
  public mapperscannerconfigurer mapperscannerconfigurer() {
    mapperscannerconfigurer mapperscannerconfigurer = new mapperscannerconfigurer();
    mapperscannerconfigurer.setbasepackage("com.example.*.dao");
    mapperscannerconfigurer.setsqlsessionfactorybeanname("sqlsessionfactory");
    return mapperscannerconfigurer;
  }
}

6. 開啟數據庫事務(必須)代碼如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import javax.sql.datasource;
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.transactionmanagementconfigurer;
@configuration
public class transactionconfig implements transactionmanagementconfigurer{
  @autowired
  private datasource datasource;
  @bean(name = "transactionmanager")
  @override
  public platformtransactionmanager annotationdriventransactionmanager() {
    return new datasourcetransactionmanager(datasource);
  }
}

7. 實戰

配置大致就是如此,然后就是新建java bean(省略,文章底部有源碼地址)

新建mapper.xml文件(省略,文章底部有源碼地址,關于mapper.xml 文件編寫的疑問可以看我以前的springmvc+mybatis 系列文章)

新建dao層。代碼如下:

?
1
2
3
4
5
6
7
import java.util.list;
import java.util.map;
import com.example.base.model.user;
import com.example.config.mybatisrepository;
public interface userdao {
  public list<user> getlist(map<string,object> map);
}

service層要在實現類上添加@service注解,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
import java.util.map;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.service;
import com.example.base.dao.userdao;
import com.example.base.service.userservice;
@service
public class userserviceimpl implements userservice {
  @autowired
  private userdao userdao;
  public object getlist(map<string, object> map) {
    return userdao.getlist(map);
  }
}

controller層也要加@controller注解代碼如下:

?
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
import javax.servlet.http.httpservletrequest;
import java.util.map;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.http.httpstatus;
import org.springframework.http.responseentity;
import org.springframework.stereotype.controller;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.requestmethod;
import org.springframework.web.bind.annotation.responsebody;
import com.example.base.service.userservice;
import com.example.base.util.commonutil;
import com.example.demo.serviceemail;
@controller
@requestmapping(value = "/users")
public class usercontroller {
  @autowired
  private userservice userservice;
  @autowired
  private serviceemail serviceemail;
  /***
   * api :localhost:8099/users?id=99 localhost:8099/users
   *
   * @param request
   * @return
   */
  @requestmapping(method = requestmethod.get, produces = "application/json;charset=utf-8")
  @responsebody
  public responseentity<?> list(httpservletrequest request) {
    map<string, object> map = commonutil.getparametermap(request);
    return new responseentity<object>(userservice.getlist(map), httpstatus.ok);
  }
  }

然后在啟動入口類中掃描定義的這些配置累(配置包名可卻省只寫部分包名)如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.arrays;
import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.springbootapplication;
import org.springframework.boot.builder.springapplicationbuilder;
import org.springframework.boot.context.web.springbootservletinitializer;
import org.springframework.context.applicationcontext;
import org.springframework.context.annotation.componentscan;
import org.springframework.scheduling.annotation.enablescheduling;
@componentscan(basepackages ="com.example")
@springbootapplication
public class application extends springbootservletinitializer{
  @override
  protected springapplicationbuilder configure(springapplicationbuilder application) {
    return application.sources(application.class);
  }
  public static void main(string[] args) throws exception {
    applicationcontext ctx = springapplication.run(application.class, args);
    string[] beannames = ctx.getbeandefinitionnames();
    arrays.sort(beannames);
    for (string beanname : beannames) {
      system.out.println(beanname);
    }
  }
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

原文鏈接:https://blog.csdn.net/u012373815/article/details/52050308

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 关键词| 精品国产一区二区三区四区阿崩 | 精品一区二区三区电影 | 欧美成人精品一区二区三区 | 热99精品视频 | 日本在线观看中文字幕 | 亚洲欧美日韩久久精品第一区 | 九九热精品在线播放 | 蜜桃视频在线免费播放 | 日韩高清电影 | 中日无线码1区 | 九九热在线精品视频 | 最新一区二区三区 | 亚洲成人福利电影 | 久久伊人国产精品 | 91免费官网| 久久精品亚洲国产奇米99 | 亚洲精品午夜国产va久久成人 | 一级欧美日韩 | 激情影院在线观看 | 精品亚洲午夜久久久久91 | 我爱我色成人网 | 久久宗合色 | 久久精品视频1 | 中文字幕 亚洲一区 | 黄色羞羞视频在线观看 | 欧美日本在线播放 | 成人三区四区 | 欧美成人精品h版在线观看 久久久久久三区 | 黄色二区三区 | 久久成年网 | 日韩一级成人 | 中文字幕欧美视频 | 一区在线免费视频 | 免费日韩片 | 国产精品久久久久久久模特 | 欧美成人免费在线视频 | 久久艹国产精品 | 成人在线视频在线观看 | 91精品国产网站 | 一区二区三区国产好的精 |