摘要:
该文为需要搭建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总结
有几个注意点虽然文章里面有提到,但是因为中重要程度比较高,所以在最后在统一重复一下
- Dao层中的 @Repository注解对于dao层到xml的映射没有实质性帮助,即使不要,启动之后也不会报错找不到dao,但是这里加上是为了解决Dao注入Controller时,规避编译器会有红线检测异常
- mapper-locations的配置为 /mapper/**/*.xml, 中间有两个 *代表中间可以有任意层文件夹折叠,这边关心的只有最后叫.xml的文件,这里的driver-class-name: oracle.jdbc.OracleDriver要配置为这个,否则会有各种意想不到的问题,比如会报需要引入H2驱动
- 启动类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.数据库查询配置文件准备以及查询实现
本文为搭建SpringWeb项目的同学提供参考,涵盖使用Idea搭建初始环境、处理静态与动态页面、异常拦截、日志记录等功能,重点介绍数据库查询配置文件准备及查询实现,包括引入依赖、新增dao层和xml文件、配置文件、添加注解等步骤,还强调了关键注意点。

979

被折叠的 条评论
为什么被折叠?



