springboot项目整合mybatis、oracle、web、thymeleaf

一、导入依赖、pom.xml文件配置

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.dlz</groupId>
    <artifactId>login</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>login</name>
    <description>login Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
    </properties>

    <dependencies>
        <!-- web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- thymeleaf-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <!--http依赖-->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.10</version>
        </dependency>
        <!--http依赖-->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.6</version>
        </dependency>
        <!--fastjson-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
        <!--  整合mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <!-- 整合oracle,本地依赖配置-->
        <!--        <dependency>-->
        <!--            <groupId>com.oracle</groupId>-->
        <!--            <artifactId>ojdbc6</artifactId>-->
        <!--            <scope>system</scope>-->
        <!--            <version>11.1.0.7.0</version>-->
        <!--            <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/ojdbc6-11.1.0.7.0.jar</systemPath>-->
        <!--        </dependency>-->
        <!--  整合Oracle,oracle11g依赖-->
        <dependency>
            <groupId>cn.easyproject</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>12.1.0.2.0</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                    <compilerArguments>
                        <!--    jar包依赖扩展打包路径,本地依赖-->
                        <!--    <extdirs>${project.basedir}/src/main/webapp/WEB-INF/lib</extdirs>-->
                    </compilerArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.7.RELEASE</version>
                <configuration>
                    <mainClass>com.login.dlz.LoginApplication</mainClass>
                    <!--  本地jar包-->
                    <includeSystemScope>true</includeSystemScope>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

二、application.yml配置

# 应用名称
spring:
  application:
    name: login
  thymeleaf:
    suffix: .html
    prefix: classpath:/templates/
  #数据源配置
  datasource:
    #下面的路径不能写成jdbc:oracle:thin:@127.0.0.1:1521/dengliangzhi,否则会报ora12514错误
    url: jdbc:oracle:thin:@127.0.0.1:1521:dengliangzhi
    driver-class-name: oracle.jdbc.driver.OracleDriver
    username: sys as sysdba
    password: root

server:
  port: 8080

#mybatis配置
mybatis:
  #注意,在创建mapper文件时,一定要注意文件名为xxxmapper.xml还是只是xxxmapper
  #如果文件名为xxxmapper,就算该文件的格式为xml文件,配置为下面这样也是错误的
  # mapper-locations: classpath:/mapper/*.xml
  #将会报绑定异常。所以最佳的mapper文件地址配置的路径最好为下面这样:
  mapper-locations: classpath:/mapper/*

三、配置thymeleaf注意事项

1.配置thymeleaf时容易出现模板找不到错误

1.1 此时要注意配置的路径,要保证配置的路径为模板存放的路径,如下:

thymeleaf:
    suffix: .html
    prefix: classpath:/templates/

1.2 如果路径没有问题,在java代码中要注意如下问题(java代码中的路径是否需要加斜杆需与配置中的路径相对应):

@RequestMapping("index")
    public String index(){
        //请求页面的两种情况:
        // 1.返回值最前面的字符串想不带“/”斜杆,
        //   如:return "helloword";
        //   那么application.yml的thymeleaf配置为:
        //   thymeleaf.prefix= classpath:/templates/
        // 2.如果application.yml的thymeleaf配置为:
        //   thymeleaf.prefix= classpath:/templates
        //   即路径最后少配置了一根斜杆,那么表示页面的路径字符串最前面必须加一根斜杆,
        //   如:return "/helloword";
        return "helloword";
    }

四、配置mybatis、oracle的注意事项

1.配置oracle的依赖要注意依赖是否可用,如果是依赖坐标无法解析,则是由于该依赖坐标是受版权保护的,在maven配置的镜像路径中(如阿里云的镜像路径)中没有,此时可用本文中的oracle依赖坐标,或者自己到网上下载可用的oracle数据库依赖的jar包,用配置本地依赖jar包的方式进行配置(配置方式在本文的pom.xml中有)。

2.mapper接口或dao接口的绑定异常:该原因一般是找不到对应的mapper.xml文件或找到mapper.xml文件了,但是mapper.xml文件中没有对应的方法。如下是我自己在配置项目的时候遇到的问题(我遇到的这个问题比较隐蔽):

#mybatis配置
mybatis:
  #注意,在创建mapper文件时,一定要注意文件名为xxxmapper.xml还是只是xxxmapper
  #如果文件名为xxxmapper,就算该文件在idea中显示的格式为xml文件,配置为下面这样也是错误的
  # mapper-locations: classpath:/mapper/*.xml
  #将会报绑定异常。所以最佳的mapper文件地址配置的路径最好为下面这样:
  mapper-locations: classpath:/mapper/*

3.连接数据源时报ORA-12514错误,要注意application.yml文件中数据源的路径配置,如下:

spring:
  #数据源配置
  datasource:
    #下面的路径不能写成:
    #jdbc:oracle:thin:@127.0.0.1:1521/dengliangzhi
    #否则会报ora12514错误
    url: jdbc:oracle:thin:@127.0.0.1:1521:dengliangzhi
    driver-class-name: oracle.jdbc.driver.OracleDriver
    username: sys as sysdba
    password: root

4.数据库字段与实体类pojo的映射,数据库表的字段名与pojo中的属性名的映射与大小写无关。如果字段中有下划线或者属性名中有下划线,则需使用resultmap

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.login.dlz.mapper.UserMapper">
	<!-- 数据库表的字段名与pojo中的属性名的映射与大小写无关
		 <resultMap id="UserMap" type="com.login.dlz.pojo.User">
	       <id column="USERID" property="userid"/>
	       <result column="NAME" property="name"/>
	       <result column="PASSWORD" property="password"/>
	     </resultMap>                -->
    <select id="allUser" resultType="com.login.dlz.pojo.User">
        select * from tableuser
    </select>
</mapper>

五、配置本地依赖注意事项

1.一般本地依赖jar包放在该路径:webapp/WEB-INF/lib 下,否则有可能造成无法解析依赖的问题(idea创建的springboot项目没有webapp文件夹,创建方法可百度)。

2.若添加了本地依赖,在pom.xml中还要在build标签中添加如下内容:(如果还出现项目打包或者其它问题,请自行百度原因)

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                    <compilerArguments>
                        <!--jar包依赖扩展打包路径,本地依赖-->
                        <!--    <extdirs>${project.basedir}/src/main/webapp/WEB-INF/lib</extdirs>-->
                    </compilerArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.7.RELEASE</version>
                <configuration>
                    <mainClass>com.login.dlz.LoginApplication</mainClass>
                    <!--本地jar包-->
                    <includeSystemScope>true</includeSystemScope>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值