搭建可以访问数据库的SpringWeb项目 四

本文为搭建SpringWeb项目的同学提供参考,涵盖使用Idea搭建初始环境、处理静态与动态页面、异常拦截、日志记录等功能,重点介绍数据库查询配置文件准备及查询实现,包括引入依赖、新增dao层和xml文件、配置文件、添加注解等步骤,还强调了关键注意点。

摘要:

该文为需要搭建SpringWeb项目学习的同学提供参考,其中会包括以下功能
1.使用Idea搭建SpringWeb项目初始环境
2.加入访问Html页面和静态资源
3.返回动态的Html页面处理
4.断言异常拦截处理以及自定义增加请求参数
5.引入logback日志记录(日志记录形式后期会有优化,具体优化会再贴一个模块)
6.数据库查询配置文件准备以及查询实现

git下载地址:点我下载

因为一篇文章会显得文章比较长,所以进行拆分讲解

6.数据库查询配置文件准备以及查询实现

6.1引入数据库查询依赖

因为本人使用的是Oracle,所以数据库驱动选择的也是Oracle,如果是Mysql的同学需要改成Mysql合适驱动

<!-- oracle Support -->
		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc6</artifactId>
			<version>11.2.0.3</version>
		</dependency>
		<!-- spring-boot整合mybatis -->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.0</version>
		</dependency>
6.2新增查询数据库dao层和放置mapper映射xml文件夹如下

在这里插入图片描述

package com.mon.project.model.welcomeDBDemo.dao;

import org.springframework.stereotype.Repository;

@Repository
public interface WelcomeDBDao {

    public int findWelcomeDB();
	public Operator findOperator();
}

注意:这里的Dao层中的 @Repository注解对于dao层到xml的映射没有实质性帮助,即使不要,启动之后也不会报错找不到dao,但是这里加上是为了解决Dao注入Controller时,规避编译器会有红线检测异常,检测异常如下图

6.3数据库查询配置文件准备

在application.yml配置数据库驱动和Mybatis解析映射
在这里插入图片描述

# 数据源、视图配置

spring:
  datasource:
    name: oracle
    continue-on-error: true
    driver-class-name: oracle.jdbc.OracleDriver
    url: jdbc:oracle:thin:@localhost:1521:XE
    username: system
    password: 1234
    ConnectionTestQuery: SELECT 1
    #连接池的配置信息
    initialSize: 10
    minIdle: 10
    maxActive: 100
    maxWait: 60000

    
    # mybatis XML映射配置
    mybatis:
      config-locations: mybatis/mybatis-config.xml
      mapper-locations: classpath*:/mapper/**/*.xml
      type-aliases-package: com.mon.project.model.*.vo

注意:mapper-locations的配置为 /mapper/**/*.xml, 中间有两个 *代表中间可以有任意层文件夹折叠,这边关心的只有最后叫.xml的文件,这里的driver-class-name: oracle.jdbc.OracleDriver要配置为这个,否则会有各种意想不到的问题,比如会报下面这个错误

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class


Action:

Consider the following:
	If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
	If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
6.4新增WelcomeDBDao.xml

这里用select 1 from dual登陆数据库即可
在这里插入图片描述

<?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.mon.project.model.welcomeDBDemo.dao.WelcomeDBDao">

    <select id="findWelcomeDB" resultType="java.lang.Integer" >
        select 1 from dual
    </select>


    <select id="findOperator" resultType="com.mon.project.model.welcomeDBDemo.vo.Operator">
        select id,dates,equpment,operators from operator where id =1

    </select>

</mapper>
6.5新增WelcomeDBController
 package com.mon.project.model.welcomeDBDemo.contoller;

import com.mon.project.model.welcomeDBDemo.dao.WelcomeDBDao;
import com.mon.project.model.welcomeDBDemo.vo.Operator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/welcomeDB")
public class WelcomeDBController {
    @Autowired
    WelcomeDBDao welcomeDBDao;

    @RequestMapping(value = "/getWelcomeDB",method = RequestMethod.GET)
    public int getWelcomeDB(){
        return welcomeDBDao.findWelcomeDB();
    }

    @RequestMapping(value = "/findOperator",method = RequestMethod.GET)
    public Operator findOperator(){
        return welcomeDBDao.findOperator();
    }

}

在这里插入图片描述

6.6启动类ProjectApplication中加扫描dao层注解

注意:启动类ProjectApplication中加扫描dao层注解 @MapperScan(basePackages = {“com.mon.project.**.dao”}),
否则启动就会报错找不到对应Controller中注入的dao,注意中间也有两个 **,这里扫描的也只关心com.mon.project中的以dao命名结尾的文件
在这里插入图片描述

6.7启动ProjectApplication访问页面

http://localhost:10001/welcomeDB/getWelcomeDB
在这里插入图片描述
访问http://localhost:10001/welcomeDB/findOperator
在这里插入图片描述

6.7总结

有几个注意点虽然文章里面有提到,但是因为中重要程度比较高,所以在最后在统一重复一下

  1. Dao层中的 @Repository注解对于dao层到xml的映射没有实质性帮助,即使不要,启动之后也不会报错找不到dao,但是这里加上是为了解决Dao注入Controller时,规避编译器会有红线检测异常
  2. mapper-locations的配置为 /mapper/**/*.xml, 中间有两个 *代表中间可以有任意层文件夹折叠,这边关心的只有最后叫.xml的文件,这里的driver-class-name: oracle.jdbc.OracleDriver要配置为这个,否则会有各种意想不到的问题,比如会报需要引入H2驱动
  3. 启动类ProjectApplication中加扫描dao层注解 @MapperScan(basePackages = {“com.mon.project.**.dao”}),
    否则启动就会报错找不到对应Controller中注入的dao,注意中间也有两个 **,这里扫描的也只关心com.mon.project中的以dao命名结尾的文件

以上知识点完成的项目层级结构如下:
在这里插入图片描述
git提交记录:
在这里插入图片描述

到此,搭建可以访问数据库的SpringWeb项目暂时告一段落,如果想了解其他知识点可以点击以下文章

因为一篇文章写完会太长,所以分为四篇文章进行拆分,其他知识点请看
1.使用Idea搭建SpringWeb项目初始环境
2.加入访问Html页面和静态资源
3.返回动态的Html页面处理
4.断言异常拦截处理以及自定义增加请求参数
5.引入logback日志记录(日志记录形式后期会有优化,具体优化会再贴一个模块)
6.数据库查询配置文件准备以及查询实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值