springboot----搭建springboot專案,完成資料庫的查詢處理
SpringBoot專案搭建
一、使用idea裡面,點選File->New->Project,來建立新專案、
之後按照步驟進行選擇,1->2->3
這塊是填寫你的包名,和一些jar的基本設定,根據自己的業務填寫Group和Artifact就可以了,其他的選中預設就可以了
之後是選擇對應的依賴包,可以選擇一些基本的,或者是根據一些自己的專案需求進行新增,下面是我選擇的一些基本的依賴,web裡面的web,SQL裡面的mysql和mybatis,以及nosql裡面的redis,之後選擇next,在選擇一些基本的專案儲存地址,點選結束就好了,這個時候,回自動的下載依賴,會需要一點時間,請等待一下。
之後就會生成如下的專案結構目錄,其中pom.xml檔案就是管理專案的依賴的。
下面添加了我對應的程式碼段,因為我要操作一些redis,所以我自己引入了兩個有關於redis的依賴,具體的我已經在註釋上寫好了。
<?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>這塊是你的專案的名字,不要借用我的喲</groupId> <artifactId>這塊是你的專案的名字,不要借用我的喲</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>這塊是你的專案的名字,不要借用我的喲</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.0.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <!--在建立springboot專案的時候選擇的redis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!--設定reids配置需要的依賴包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> <!--使用的是jedis這個類--> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>8.0.12</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--c3p0 這是我手動引入的 因為我需要連線資料庫--> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> </dependency> <!--fastjson 對於資料的基本操作--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.4</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
這個時候,應該修改yml檔案了,這個yml檔案在src->main->resources資料夾下面,這個時候你會很詫異因為根本沒有.yml檔案,其實.yml檔案是配置檔案,在專案創立的時候,是使用的.properties檔案,但是由於.yml檔案比較結構清晰,所以就使用的是.yml檔案,這個是吧不要慌,直接把application.properties檔案的字尾修改成.yml,就好了。
下面就是我的基本配置,配置之後在resources下面建立一個mapper的資料夾,對應的mapper-locations的路徑,對應好千萬不要出錯。
#mybatis的連線 mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: 你自己對應的包名,自己看你自己建立的 #資料庫連線池 spring: datasource: driver-class-name: com.mysql.jdbc.Driver username: root password: 123456 url: jdbc:mysql://192.168.1.200:3306/資料庫名字?rewriteBatchedStatements=true&serverTimezone=GMT%2B8 redis: host: 192.168.1.200 # password: 123456 port: 6379
這個時候,開始實現資料庫的一個簡單的查詢功能,在mapper資料夾下面建立好一個xml檔案,這個是mybatis的寫法了,自己去百度吧,之後建好上面的資料夾目錄,之後切記,在啟動類裡面上面新增一個註解,去讀取mapper裡面的介面,
在介面檔案裡面,一定要新增這個註解,
controller,裡面涉及到redis的東西,可以自行遮蔽
package cn.aimacademy.spy.spyserver.controller;
import cn.aimacademy.spy.spyserver.server.TextServer;
import cn.aimacademy.spy.spyserver.server.redisservice.RedisService;
import cn.aimacademy.spy.spyserver.server.redisservice.RedisUtilsService;
import cn.aimacademy.spy.spyserver.utils.CommonUtils;
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
import java.util.Set;
@RestController
@RequestMapping("/TextController")
public class TextController {
@Autowired
private TextServer textServer;
@Autowired
RedisUtilsService redisUtilsService;
@RequestMapping("/queryInfo")
public JSONObject queryInfo() {
JSONObject json = new JSONObject();
json.put("sqlData",textServer.queryInfo());
Set list = redisUtilsService.getZSetByName(CommonUtils.ENT_INFO_LIST,0,5);
json.put("list",list);
json.put("length",list.size());
json.put("size",redisUtilsService.getZSetSize(CommonUtils.ENT_INFO_LIST));
return json;
}
}
server裡面的,我做的是,面向介面程式設計,所以我又寫了一個介面
package cn.aimacademy.spy.spyserver.server.iml;
import cn.aimacademy.spy.spyserver.mapper.TextMapper;
import cn.aimacademy.spy.spyserver.server.TextServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
public class TextServerIml implements TextServer {
@Autowired
private TextMapper textMapper;
@Override
public List<Map<String, Object>> queryInfo() {
return textMapper.queryInfo();
}
}
介面
package cn.aimacademy.spy.spyserver.server;
import java.util.List;
import java.util.Map;
public interface TextServer {
List<Map<String,Object>> queryInfo();
}
mapper
package cn.aimacademy.spy.spyserver.mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Repository
public interface TextMapper {
List<Map<String,Object>> queryInfo();
}
xml檔案
<?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="cn.aimacademy.spy.spyserver.mapper.TextMapper">
<select id="queryInfo" resultType="java.util.Map">
查詢語句,自己寫一個
</select>
</mapper>
利用介面測試工具postman進行了資料的測試,成功