SpringMVC(5)-ssm整合實現增刪改查-mybatis層

来源:https://www.cnblogs.com/XiaoMaGuai/archive/2022/05/14/16218031.html
-Advertisement-
Play Games

mybatis層編寫完畢後的項目目錄 1.右鍵SpringMVC2項目-》new-》Modual-》選擇maven項目(我的項目名為Study09_ssm),輸入模塊名,點擊Finish 2.第二部的操作就是將idea的基本運行環境搞定,包括:添加web支持,配置tomcat,配置project s ...


mybatis層編寫完畢後的項目目錄

1.右鍵SpringMVC2項目-》new-》Modual-》選擇maven項目(我的項目名為Study09_ssm),輸入模塊名,點擊Finish

2.第二部的操作就是將idea的基本運行環境搞定,包括:添加web支持,配置tomcat,配置project structure

  2.1添加web支持:右鍵項目名為Study09_ssm,選擇Add Framework Support,勾選Web Application,點擊ok

  2.2配置tomcat(註意:如果第一步沒有配置的話,tomcat裡邊不會出現這個項目的)

  2.3配置project structure,選擇idea菜單欄File->project structure->Artifact->找到自己的這個項目點擊->在WEB-INF下新建一個lib文件夾(預設是沒有的),然後點擊加號,選擇所有的依賴,點擊ok

3.新建一個資料庫命名為ssm_crud,新建一個查詢視窗,執行如下的sql代碼

USE `ssm_crud`;
DROP TABLE IF EXISTS `books`;
CREATE TABLE `books` (
  `bookID` INT(10) NOT NULL AUTO_INCREMENT COMMENT '書id',
  `bookName` VARCHAR(100) NOT NULL COMMENT '書名',
  `bookCounts` INT(11) NOT NULL COMMENT '數量',
  `detail` VARCHAR(200) NOT NULL COMMENT '描述',
  KEY `bookID` (`bookID`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT  INTO `books`(`bookID`,`bookName`,`bookCounts`,`detail`)VALUES 
(1,'Java',1,'從入門到放棄'),
(2,'MySQL',10,'從刪庫到跑路'),
(3,'Linux',5,'從進門到進牢');

4.讓idea連接上MySql資料庫,具體步驟如下:找到ida右側的database選項,點擊加號-》data source-》mysql,打開data source and driver視窗,也就是第二張圖,根據步驟做完即可,完成後會出現第四張圖的樣子。

5.建立項目目錄結構,如下圖所示:Java文件夾下的四個包,web模塊不用創建

6.resources文件夾下創建下麵的三個文件

7.database.properties文件為資料庫連接串,mybatis-config.xml文件為mybatis配置,這裡只寫別名和mappers即可,其他的讓spring來做,至此mybatis層的resources文件夾下的內容搞定,applicationContext.xml是用來整合各層的配置文件的,這個最後配置。

jdbc.driver=com.mysql.jdbc.Driver
#mysql8.0+的話,要加一個時區設置&serverTimezone=Asia/Shanghai
jdbc.url=jdbc:mysql://localhost:3306/ssm_crud?useSSL=true&useUnicode=true&characterEncoding=utf8&serverTimezone=CST
jdbc.username=root
jdbc.password=123456
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <typeAliases>
        <package name="com.xiaoma1.pojo"/>
    </typeAliases>

    <mappers>
        <mapper class="com.xiaoma1.dao.BookMapper"></mapper>
    </mappers>
</configuration>

8.下麵來做Java文件夾下的東西,包括:實體類,dao層的mapper介面和mapper.xml配置文件,service層的介面和實現類(我們這裡主要實現對書籍的增刪改查)

   8.1編寫實體類:屬性名和資料庫欄位名一一對應,這裡的get、set方法、有參無參構造通過三個註解來實現,分別是@Data、@NoArgsConstructor、@AllArgsConstructor

package com.xiaoma1.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * Author:xiaoma
 * FileName:Books
 * Data:2022/5/3 10:21
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Books {
    private int bookID;
    private String bookName;
    private int bookCounts;
    private String detail;
}  

  8.2編寫dao層的mapper介面和mapper對應的xml文件,xml文件中編寫sql語句實現和資料庫的交互,下麵為xml配置文件代碼和介面代碼

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--綁定介面BookMapper-->
<mapper namespace="com.xiaoma1.dao.BookMapper">
    <!--//增加一本書-->
    <insert id="addBook" parameterType="Books">
        insert into books (bookName,bookCounts,detail)
        values (#{bookName},#{bookCounts},#{detail});
    </insert>

    <!--/刪除一本書-->
    <delete id="deleteBookById" parameterType="int">
        delete
        from books
        where bookID=#{id};
    </delete>

    <!--//更新一本書-->
    <update id="updateBook" parameterType="Books">
        update books
        set bookName = #{bookName},bookCounts = #{bookCounts},detail=#{detail}
        where bookID = #{bookID};
    </update>

    <!--//查詢一本書-->
    <select id="queryBookById" resultType="Books" parameterType="int">
        select *
        from books
        where bookID=#{id};
    </select>

    <!--//查詢全部的書-->
    <select id="queryAllBook" resultType="Books">
        select * from books;
    </select>

</mapper>
package com.xiaoma1.dao;

import com.xiaoma1.pojo.Books;

import java.util.List;

/**
 * Author:xiaoma
 * FileName:BookMapper
 * Data:2022/5/3 10:23
 */
public interface BookMapper {
    //增加一本書
    int addBook(Books books);

    //刪除一本書
    int deleteBookById(int id);

    //更新一本書
    int updateBook(Books books);

    //根據id查詢一本書
    Books queryBookById(int id);

    //查詢全部的書
    List<Books> queryAllBook();
}

  8.3編寫service層的介面和實現類,這裡service'層的介面和dao層的mapper介面是一樣的

package com.xiaoma1.service;

import com.xiaoma1.pojo.Books;

import java.util.List;

/**
 * Author:xiaoma
 * FileName:BookService
 * Data:2022/5/3 10:45
 */
public interface BookService {
    //增加一本書
    int addBook(Books books);

    //刪除一本書
    int deleteBookById(int id);

    //更新一本書
    int updateBook(Books books);

    //根據id查詢一本書
    Books queryBookById(int id);

    //查詢全部的書
    List<Books> queryAllBook();
}
package com.xiaoma1.service;

import com.xiaoma1.dao.BookMapper;
import com.xiaoma1.pojo.Books;

import java.util.List;

/**
 * Author:xiaoma
 * FileName:BookServiceImpl
 * Data:2022/5/3 10:45
 */

public class BookServiceImpl implements BookService{
    //業務層調用dao層,組合dao
    public BookMapper bookMapper;
    public void setBookMapper(BookMapper bookMapper) {
        this.bookMapper = bookMapper;
    }

    @Override
    public int addBook(Books books) {
        return bookMapper.addBook(books);
    }

    @Override
    public int deleteBookById(int id) {
        return bookMapper.deleteBookById(id);
    }

    @Override
    public int updateBook(Books books) {
        return bookMapper.updateBook(books);
    }

    @Override
    public Books queryBookById(int id) {
        return bookMapper.queryBookById(id);
    }

    @Override
    public List<Books> queryAllBook() {
        return bookMapper.queryAllBook();
    }
}

至此mybatis層實現完畢!!!!!!!!!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • zset底層的數據結構為什麼使用調表而不是紅黑樹 前言 Redis中使用到的數據結構以及各個數據對象的底層數據結構在上一篇文章已經寫得非常詳細,這裡不再贅述。 https://www.cnblogs.com/ruigedada/p/16248689.html zset的底層數據結構是壓縮列表和跳錶, ...
  • 一、基礎知識 1、xml:元素、屬性和值。 2、xpath:定址語言,類似Windows目錄的查找。 語法格式: 1)"."表示自己,".."表示父親,"/"表示兒子,"//"表示後代,"name"表示按名字查找,"@name"表示按屬性查找。 2)"集合[條件]" 表示根據條件取集合的子集,條件可 ...
  • 這個問題出現在多表關聯時, 如一張商品表,其中的單位的字元串表示是在單位表中, 但這個單位的id之後進行了刪除,並且不再奏效。 如下: select * from (select pg0.id,pg0.init_size,pg0.goods_id, pg0.goods_move_size,pg0.e ...
  • 今天發現之前學的愛前端的課中JS部分函數等不全,果斷換了一個課——渡一的《Web前端開發JavaScript高薪課堂》接著學習,不過廢話有點多 1、條件語句 語法: 1、單if,條件成立,執行語句體 if (條件){ 語句體; } 2、if else,條件成立,執行if後的語句體,否則執行else的 ...
  • JS 頁面演示背景 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ivanlee</title> <link rel="shortcut icon" href="ab_favicon.ico"> <styl ...
  • 一、概述 Scala是一門多範式的編程語言,一種類似java的編程語言 ,設計初衷是實現可伸縮的語言 、並集成面向對象編程和函數式編程的各種特性。Spark就是使用Scala編寫的。因此為了更好的學習大數據開發, 需要掌握Scala這門語言,當然Spark的興起,也帶動Scala語言的發展!官方文檔 ...
  • 實踐是唯一的真理。 #變數 ##變數的定義 變數就是可以變化的量。 JAVA變數是程式中最基礎的程式單元,其要素包括變數名,變數類型及作用域。 寫程式要註意程式的可讀性 如圖所示,可以一行寫多個對象,但是不建議。 代碼也能使用Ctrl+F搜索,方便排錯。 ##註意事項: 每個變數都有類型,類型可以是 ...
  • GO的環境配置? GOPATH GOROOT 都是幹嘛用的? 配置環境跟java對比有點奇怪 https://blog.csdn.net/weixin_40563757/article/details/115476327 語言特性 協程? 建立一個協程很簡單 加一個go關鍵字就可以 package ...
一周排行
    -Advertisement-
    Play Games
  • 用例演示 - 創建實體 本節將演示一些示例用例並討論可選場景。 創建實體 從實體/聚合根類創建對象是實體生命周期的第一步。聚合/聚合根規則和最佳實踐部分 建議為Entity類創建一個主構造函數,以保證創建一個有效的實體。因此,無論何時我們需要創建實體的實例,我們都應該使用那個構造函數 參見下麵的問題 ...
  • 領域邏輯 & 應用邏輯 如前所述,領域驅動設計中的業務邏輯分為兩部分(層):領域邏輯和應用邏輯: 領域邏輯由系統的核心領域規則組成,應用邏輯實現應用特定的用例 雖然定義很明確,但實現起來可能並不容易。您可能無法決定哪些代碼應該位於應用程式層,哪些代碼應該位於領域層。本節試圖解釋其中的差異 多個應用程 ...
  • 表弟大學快畢業了,學了一個學期Python居然還不會寫學生管理系統,真的給我丟臉啊,教他又不肯學,還讓我直接給他寫,我真想兩巴掌上去,最終還是寫了給他,誰讓他是我表弟呢,關鍵時候還是得幫他一把! 寫完了放在那也是放著,所以今天分享給大家吧! 話不多說,咱們直接開始吧! 代碼解析 一、登錄頁面 1、定 ...
  • Zookeeper3.7源碼剖析 能力目標 掌握Zookeeper中Session的管理機制 能基於Client進行Debug測試Session創建/刷新操作 能搭建Zookeeper集群源碼配置 掌握集群環境下Leader選舉啟動過程 能說出Zookeeper選舉過程中的概念 能說出Zookeep ...
  • 前言 今天給大家分享一下我自己寫的筆記,純純的都是乾貨,關於字好像也能看。這是我學python整理出來的一些資料,希望對大家 有用。想要更多的資料那就的給一個關註了… python學習交流Q群:903971231### #導入Counter from collections import Count ...
  • Hi,大家好,我是Mic 一個工作5年的粉絲找到我。 他說: “Mic老師,你要是能回答出這個問題,我就佩服你” 我當場就懵了,現在打賭都這麼隨意了嗎? 我問他問題是什麼,他說“Kafka如何避免重覆消費的問題!” 下麵看看普通人和高手的回答! 普通人: Kafka怎麼避免重覆消費就是我們可以通過 ...
  • 前言 Steam是由美國電子游戲商Valve於2003年9月12日推出的數字發行平臺,被認為是電腦游戲界最大的數位發行平臺之一,Steam平臺是全球最大的綜合性數字發行平臺之一。玩家可以在該平臺購買、下載、討論、上傳和分享游戲和軟體。 而每周的steam會開啟了一輪特惠,可以讓游戲打折,而玩家就會 ...
  • 本篇內容將在上一篇已有的內容基礎上,進一步的聊一下項目中使用JPA的一些高階複雜場景的實踐指導,覆蓋了主要核心的JPA使用場景,可以讓你在需求開發的時候對JPA的使用更加的游刃有餘。 ...
  • 1.路徑處理 1.找模塊:sys.path import sys print(sys.path) - 1.理解 - 1.是python去查找包或模塊 - 2.項目開始根目錄,python內置的目錄 - 3.雖然說python的安裝目錄下也可以存放我們寫的模塊,但是不建議(太多了,不大好找) - 4. ...
  • Go 語言入門練手項目系列 01 基於命令行的圖書的增刪查改 02 文件管理 持續更新中... > 本文來自博客園,作者:Arway,轉載請註明原文鏈接:https://www.cnblogs.com/cenjw/p/gobeginner-proj-bookstore-cli.html 介紹 這是一 ...