1. 程式人生 > >springboot整合mybatis+oracle

springboot整合mybatis+oracle

第一步

認識springboot :springboot是為了解決配置檔案多,各個元件不統一的問題,它省去了很多配置檔案,同時實現了spring產品的整合。

建立springboot專案:通過選擇springinit初始化springboot,我們發現它的pom.xml擁有絕大部分的spring所需要的包。

第二步

開啟專案的結構,發現有了有趣的部分

在原有的java結構上,公司名稱下多了一級叫做自己的專案名的一個目錄,這個目錄下才是相應的Controlller等層,而且在此目錄下面有了一個檔案,此檔案可以作為主函式的入口,相同的是再整合mybatis時,我們仍然將dao層改為Mapper層,而且這裡只定義介面。

往下看,在resources的目錄下,有com,lib,static,templates,views資料夾,以及一個springboot最為主要的一個配置檔案。

介紹一下這些資料夾或者檔案的作用:

com   下是和上面java下的目錄結構一樣,不多隻有一個Mapper資料夾和一個config資料夾,mapper裡放對應介面的xml檔案來提供sql語句,config資料夾放的是修改過的mybatis-config.xml配置檔案.

lib 裡面放一些新增的jar包

static 裡面放的是靜

態的檔案css,js,img之類

templates 未知...

views放我們的頁面

第三步

匯入jar包

我們只需要匯入需要的jar包,關於spring產品的jar包springboot幫我們安排好了,我們大概需要這些jar包。

        <!--oracle jar包-->
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.1.0.6.0</version>
        <scope>system</scope>
        <systemPath>${basedir}/src/main/resources/lib/ojdbc6-11.1
.0.6.0.jar</systemPath> </dependency> <!--mysql jar包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> </dependency> <!--springboot和mybatis結合的jar包--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency> <!--fastjson包--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> <!--springboot模板--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!--日誌--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.10.0</version> </dependency> <!--使用不嚴格的頁面標籤--> <!-- https://mvnrepository.com/artifact/net.sourceforge.nekohtml/nekohtml --> <dependency> <groupId>net.sourceforge.nekohtml</groupId> <artifactId>nekohtml</artifactId> <version>1.9.22</version> </dependency>

配置配置檔案

application.properties檔案

#spring.datasource.platform=mysql
#spring.datasource.url=jdbc:mysql://localhost/mydb
#spring.datasource.username=root
#spring.datasource.password=hnqy
#spring.datasource.driverClassName=com.mysql.jdbc.Driver

spring.datasource.platform=oracle
spring.datasource.url=jdbc:oracle:thin:@localhost:1521/orcl
spring.datasource.username=scott
spring.datasource.password=tiger
spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver

server.port=8080
server.session-timeout=30
server.tomcat.uri-encoding=UTF-8

#####springboot 整合 mybatis
mybatis.mapper-locations= classpath:/com/qy/springboot01/mapper/*Mapper.xml
mybatis.config-location= classpath:/com/qy/springboot01/mapper/config/mybatis-config.xml
#####定義別名
#####mybatis.type-aliases-package=com.qy.springboot01.domain


#-----------------------日誌------------------------------
 #啟用除錯日誌。
#debug = true
 #啟用跟蹤日誌。
#trace = true

#LOGGING
 #日誌配置檔案的位置。例如,Logback的`classpath:logback.xml`。
#logging.config =
 #記錄異常時使用的轉換字。
#logging.exception-conversion-word =%wEx
#名稱可以是確切的位置或相對於當前目錄。
#logging.file =  #?
 #要保留的歸檔日誌檔案的最大數量。僅支援預設的登入設定。
#logging.file.max-history = 0
  #最大日誌檔案大小。僅支援預設的登入設定。
#logging.file.max-size = 10MB
 #日誌級別嚴重性對映。例如`logging.level.org.springframework = DEBUG`。
#logging.level.* =
  #日誌檔案的位置。例如,`/ var
#logging.path =
#-------------------------模板------------------------------
###Thymeleaf配置
spring.thymeleaf.prefix=classpath:/view/
spring.thymeleaf.suffix=.html
spring.thymeleaf.cache=false
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.mode=LEGACYHTML5
###過濾中文亂碼
spring.http.encoding.force=true
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true

配置mybatis-config配置檔案

 

<?xml version="1.0" encoding="UTF-8" ?>  
  <!DOCTYPE configuration

        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

        "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<settings>

        <!--是否使用快取 開發中禁用-->

        <setting name="cacheEnabled" value="false"/>

        <!--下劃線和駝峰式命名法的匹配  -->

        <setting name="mapUnderscoreToCamelCase" value="true"/>

        <!--使用啟用懶載入機制  true啟用-->

        <setting name="lazyLoadingEnabled" value="true"/>

        <!--配置myabtis日誌-->

        <setting name="logImpl" value="LOG4J2"/>
<setting name="multipleResultSetsEnabled" value="true"/>
    <setting name="useColumnLabel" value="true"/>
    <setting name="useGeneratedKeys" value="true"/>
    <setting name="autoMappingBehavior" value="PARTIAL"/>
    <setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
    <setting name="defaultExecutorType" value="SIMPLE"/>
    <setting name="defaultStatementTimeout" value="25"/>
    <setting name="defaultFetchSize" value="100"/>
    <setting name="safeRowBoundsEnabled" value="false"/>
    <setting name="localCacheScope" value="SESSION"/>
    <setting name="jdbcTypeForNull" value="OTHER"/>
    <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>
<typeAliases>
    <!--給類起別名-->
    <!--給包中所有的類起別名 預設名字為類名 -->
    <package name=""></package>
</typeAliases>
</configuration>

 

第四步

一些細節

1.我們發現,controller層我們的mybatis需要@Controller

但是我們的springboot所需要的確是@Controller

2.service層註解沒有變化

但在Mapper層我們要寫上@Mapper和@conment兩個註解

3.我們不需要tomcat,應為springboot內建了tomcat,而且啟動的很快

4.在配置檔案裡的細節自己去深究吧。

5.這裡只是簡單的介紹,具體實操還需要自己去熟悉。

6.還有,config資料夾在mapper下面。。。

附上目錄結構圖