SpringBoot快速上手——《二》:SpringBoot集成SSM,實現(xiàn)增刪改查功能

SpringBoot集成SSM校赤,實現(xiàn)增刪改查功能

一.先介紹創(chuàng)建模塊的另一種方式

1.點擊Maven -> 勾選Create from archetype -> 選擇 maven-archetype-quickstart

快速創(chuàng)建
快速創(chuàng)建
快速創(chuàng)建

有時會需要點擊 自動導(dǎo)入

快速創(chuàng)建

2.工程目錄

可以看到躁锡,這樣創(chuàng)建的模塊是相對干凈的午绳,需要我們手動的編寫程序啟動入口類、需要配置時還得創(chuàng)建配置文件映之。下一步見證拦焚。

目錄

3.完善模塊

添加依賴蜡坊,這種腳架添加模塊不會自動引入相關(guān)依賴。這里主要引入父級版本號和spring-boot-starter依賴耕漱。

<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>

<parent>

? <groupId>org.springframework.boot</groupId>

? <artifactId>spring-boot-starter-parent</artifactId>

? <version>2.2.2.RELEASE</version>

? <relativePath/> <!-- lookup parent from repository -->

</parent>

<groupId>xyz.java1024</groupId>

<artifactId>springboot-ssm</artifactId>

<version>1.0-SNAPSHOT</version>

<name>springboot-ssm</name>

<!-- FIXME change it to the project's website -->

<url>http://www.example.com</url>

<properties>

? <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

? <maven.compiler.source>1.8</maven.compiler.source>

? <maven.compiler.target>1.8</maven.compiler.target>

? <java.version>1.8</java.version>

</properties>

<dependencies>

? <dependency>

? ? <groupId>org.springframework.boot</groupId>

? ? <artifactId>spring-boot-starter-web</artifactId>

? </dependency>

? <dependency>

? ? <groupId>junit</groupId>

? ? <artifactId>junit</artifactId>

? ? <version>4.11</version>

? ? <scope>test</scope>

? </dependency>

</dependencies>

</project>

修改啟動類算色,添加注解和修改main啟動方法

@SpringBootApplication

public class App

{

? ? public static void main( String[] args )

? ? {

? ? ? ? SpringApplication.run(App.class,args);

? ? }

}

添加配置文件,先添加resouces文件夾螟够,在創(chuàng)建application.yml配置文件灾梦。

創(chuàng)建配置
創(chuàng)建配置

細心的同學(xué)可以發(fā)現(xiàn) resources 圖標沒有 黃色的橫線

創(chuàng)建配置

點擊上圖,進入如圖妓笙,選擇Modules -> 選中模塊若河, 接著選中resources再點擊Mark as 中 帶黃色橫線的Resources即可,點擊ok

創(chuàng)建配置
創(chuàng)建配置
創(chuàng)建配置

同時可見 yml后綴的配置文件的圖標也發(fā)生了改變

創(chuàng)建配置

下面我們開始配置文件寞宫,yml 提供更加簡潔的編程方式萧福,可讀性也極高。如下辈赋,配置端口號 和 應(yīng)用名稱鲫忍。

server:

? port: 8090

spring:

? application:

? ? name: springboot-ssm


4 改造完成,啟動入口類查看效果钥屈。

啟動日志

二.SpringBoot 集成SSM

1.引入依賴 connector,druid,mybatis

<!-- mysql mybatis -->

? ? <dependency>

? ? ? <groupId>mysql</groupId>

? ? ? <artifactId>mysql-connector-java</artifactId>

? ? ? <version>8.0.13</version>

? ? </dependency>

? ? <dependency>

? ? ? <groupId>com.alibaba</groupId>

? ? ? <artifactId>druid</artifactId>

? ? ? <version>1.1.18</version>

? ? </dependency>

? ? <dependency>

? ? ? <groupId>org.mybatis.spring.boot</groupId>

? ? ? <artifactId>mybatis-spring-boot-starter</artifactId>

? ? ? <version>1.3.2</version>

? ? </dependency>


2.創(chuàng)建數(shù)據(jù)庫 表

CREATE TABLE user(

? ? id int (11) NOT NULL AUTO_INCREMENT,

username varchar(64) NOT NULL,

tel VARCHAR(16) NOT NULL,

password VARCHAR(250) NOT NULL,

status TINYINT NOT NULL default 1,

? ? created_at timestamp not null default CURRENT_TIMESTAMP ,

? ? updated_at timestamp not null default CURRENT_TIMESTAMP ,

? ? PRIMARY KEY (id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

package xyz.java1024.vo;

import java.io.Serializable;

import java.sql.Timestamp;

public class User implements Serializable {

? ? private int id;

? ? private String username;

? ? private String tel;

? ? private String password;

? ? private int status;

? ? private Timestamp createdAt;

? ? private Timestamp updatedAt;


? ? //get set省略

3.配置

server:

? port: 8090

# 掃描mapper.xml文件

mybatis:

? mapper-locations:

? ? - classpath:mapping/*.xml

spring:

? application:

? ? name: springboot-ssm

? datasource:

? ? type: com.alibaba.druid.pool.DruidDataSource

? ? driver-class-name: com.mysql.cj.jdbc.Driver

? ? url: jdbc:mysql://127.0.0.1:3306/springboot?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false

? ? username: root

? ? password: 123zxc


3.mapper接口悟民,在mapper包下創(chuàng)建UserMapper接口

package xyz.java1024.mapper;

import xyz.java1024.vo.User;

import java.util.List;

public interface UserMapper {

? ? int deleteByPrimaryKey(Integer id);

? ? int insert(User record);

? ? User selectByPrimaryKey(Integer id);

? ? User selectByUsername(String username);

? ? int updateByPrimaryKey(User record);

? ? List<User> list();

}

4.在resources文件夾下創(chuàng)建mapping目錄用來存放mapper.xml文件,創(chuàng)建UserMapper.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="xyz.java1024.mapper.UserMapper">

? <resultMap id="BaseResultMap" type="xyz.java1024.vo.User">

? ? <!--@mbg.generated-->

? ? <id column="id" jdbcType="INTEGER" property="id" />

? ? <result column="username" jdbcType="VARCHAR" property="username" />

? ? <result column="tel" jdbcType="VARCHAR" property="tel" />

? ? <result column="password" jdbcType="VARCHAR" property="password" />

? ? <result column="status" jdbcType="TINYINT" property="status" />

? ? <result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />

? ? <result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />

? </resultMap>

? <sql id="Base_Column_List">

? ? <!--@mbg.generated-->

? ? id, username, tel, `password`, `status`, created_at, updated_at

? </sql>

? <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">

? ? <!--@mbg.generated-->

? ? select

? ? <include refid="Base_Column_List" />

? ? from user

? ? where id = #{id,jdbcType=INTEGER}

? </select>

? <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">

? ? <!--@mbg.generated-->

? ? delete from user

? ? where id = #{id,jdbcType=INTEGER}

? </delete>

? <insert id="insert" keyColumn="id" keyProperty="id" parameterType="xyz.java1024.vo.User" useGeneratedKeys="true">

? ? <!--@mbg.generated-->

? ? insert into user (username, tel, `password`,

? ? ? `status`, created_at, updated_at

? ? ? )

? ? values (#{username,jdbcType=VARCHAR}, #{tel,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},

? ? ? #{status,jdbcType=TINYINT},? #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}

? ? ? )

? </insert>

? <update id="updateByPrimaryKey" parameterType="xyz.java1024.vo.User">

? ? <!--@mbg.generated-->

? ? update user

? ? set username = #{username,jdbcType=VARCHAR},

? ? ? tel = #{tel,jdbcType=VARCHAR},

? ? ? `password` = #{password,jdbcType=VARCHAR},

? ? ? `status` = #{status,jdbcType=TINYINT},

? ? ? created_at = #{createdAt,jdbcType=TIMESTAMP},

? ? ? updated_at = #{updatedAt,jdbcType=TIMESTAMP}

? ? where id = #{id,jdbcType=INTEGER}

? </update>

? <select id="list" resultMap="BaseResultMap" >

? ? select

? ? <include refid="Base_Column_List" />

? ? from user

? </select>

5.掃描mapper接口,即在啟動類加@MapperScan注解

@SpringBootApplication

@MapperScan("xyz.java1024.mapper")

public class App

{

? ? public static void main( String[] args )

? ? {

? ? ? ? SpringApplication.run(App.class,args);

? ? }

}

6.編寫UserController篷就,省略service

@RestController

@RequestMapping("/user")

public class UserController {

? ? @Autowired

? ? private UserMapper userMapper;

? ? @RequestMapping("/listByUser")

? ? public List<User> listByUser() {

? ? ? ? return userMapper.list();

? ? }

? ? @RequestMapping("/getOneUser")

? ? public User getOneUser(int id) {

? ? ? ? return userMapper.selectByPrimaryKey(id);

? ? }

? ? @RequestMapping("/addUser")

? ? public int addUser(User user) {

? ? ? ? return userMapper.insert(user);

? ? }

? ? @RequestMapping("/deleteUser")

? ? public int deleteUser(int id) {

? ? ? ? return userMapper.deleteByPrimaryKey(id);

? ? }

}

7.啟動工程測試射亏,瀏覽器輸入localhost:8090/user/getOneUser?id=1

測試

四.總結(jié)

體驗完SpringBoot 的SSM后,比Spring下的SSM的確是方便的太多竭业,不僅省去了復(fù)雜的各種依賴智润,在配置方面也極大的得到簡化,這也是SpringBoot精妙之處未辆。

注意:@MapperScan("")是掃描mapper接口窟绷,而

mybatis:

mapper-locations:

- classpath:mapping/*.xml

是配置mapper.xml文件

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市咐柜,隨后出現(xiàn)的幾起案子兼蜈,更是在濱河造成了極大的恐慌,老刑警劉巖炕桨,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饭尝,死亡現(xiàn)場離奇詭異肯腕,居然都是意外死亡献宫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門实撒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來姊途,“玉大人涉瘾,你說我怎么就攤上這事〗堇迹” “怎么了立叛?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長贡茅。 經(jīng)常有香客問我秘蛇,道長,這世上最難降的妖魔是什么顶考? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任赁还,我火速辦了婚禮,結(jié)果婚禮上驹沿,老公的妹妹穿的比我還像新娘艘策。我一直安慰自己,他們只是感情好渊季,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布朋蔫。 她就那樣靜靜地躺著,像睡著了一般却汉。 火紅的嫁衣襯著肌膚如雪驯妄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天病涨,我揣著相機與錄音富玷,去河邊找鬼。 笑死既穆,一個胖子當(dāng)著我的面吹牛赎懦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播幻工,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼励两,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了囊颅?” 一聲冷哼從身側(cè)響起当悔,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎踢代,沒想到半個月后盲憎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡胳挎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年饼疙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慕爬。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡窑眯,死狀恐怖屏积,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情磅甩,我是刑警寧澤炊林,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站卷要,受9級特大地震影響渣聚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜僧叉,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一饵逐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧彪标,春花似錦倍权、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至题画,卻和暖如春默辨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背苍息。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工缩幸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人竞思。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓表谊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親盖喷。 傳聞我的和親對象是個殘疾皇子爆办,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容