ssm整合案例MyBatis(1)

ssm和SpringMVC整合案例

1.数据库搭建

打开SQLyog,测试连接,测试成功后创建数据库
ssm整合案例MyBatis(1)_第1张图片ssm整合案例MyBatis(1)_第2张图片
这里需要注意箭头所指的两栏分别选择utf8utf8_general_ci,选择完成后点击创建
ssm整合案例MyBatis(1)_第3张图片可以看到数据库创建成功,之后我们在数据库下创建
ssm整合案例MyBatis(1)_第4张图片ssm整合案例MyBatis(1)_第5张图片ssm整合案例MyBatis(1)_第6张图片
这里需要注意字符集核对两栏分别选择utf8utf8_general_ci引擎选择InnoDB,表名称可以按照自己的意愿来命名
ssm整合案例MyBatis(1)_第7张图片填入我们创建的表中的一些信息,点击保存,表创建完成

当然这是使用SQLyog来进行数据库的创建,图形化界面使得数据库的创建更加便捷,当然我们也可以使用SQL语句来进行创建

CREATE TABLE `books` (
  `bookID` int(10) NOT NULL AUTO_INCREMENT COMMENT '书籍ID',
  `bookName` varchar(100) NOT NULL COMMENT '书籍名字',
  `bookCounts` int(20) NOT NULL COMMENT '书籍数量',
  `detail` varchar(200) NOT NULL COMMENT '描述',
  KEY `bookID` (`bookID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

我们在已经创建好的表中添加一些书籍的信息
ssm整合案例MyBatis(1)_第8张图片书籍信息添加完成后点击刷新也就是箭头所指的按钮

至此,第1步数据库的搭建完成

2.创建项目

这里需要创建Maven的Web项目,所以在创建的时候需要选择模板,关于Maven的Web项目的创建Maven普通项目的创建以及相关的注意事项在我之前的两篇博客《MyBatis框架的使用3(代码的编写)》《SpringMVC的简单讲解》中都有讲解,读者自行查阅

创建完成的项目如下图所示
ssm整合案例MyBatis(1)_第9张图片项目创建完成后就需要导包、连接数据库以及资源过滤问题

1.连接数据库
ssm整合案例MyBatis(1)_第10张图片ssm整合案例MyBatis(1)_第11张图片在测试连接成功后点击箭头所指的按钮,在里面选择我们之前创建好的数据库
ssm整合案例MyBatis(1)_第12张图片选择我们之前创建好的叫做ssmbuild的数据库,之后点击OK,数据库连接完成
ssm整合案例MyBatis(1)_第13张图片在IDE中再次确认我们之前创建的数据库没有问题
ssm整合案例MyBatis(1)_第14张图片数据库连接完成,之后就该导入我们在编写项目时必须的一些包

我们先导入一些开始时候需要的包,后面的包在用到的时候我们在进行添加

    
    
      mysql
      mysql-connector-java
      5.1.47
    

    
    
      org.mybatis
      mybatis
      3.4.6
    

将上面的依赖写入到pom.xml文件的dependencies标签中,写入完成后查看项目结构
ssm整合案例MyBatis(1)_第15张图片可以看到两个包导入完成,导入完成后就可以编写类了

目录结构如图所示
ssm整合案例MyBatis(1)_第16张图片
在实体类pojo的包中新建一个Books类,把每本书都作为一个对象,用Books类来创建书的对象

在这里插入图片描述
Books类中的代码为:

package com.westos.pojo;

public class Books {
    private int bookID;
    private String bookName;
    private int bookCounts;
    private String detail;

    public Books() {
    }

    public Books(int bookID, String bookName, int bookCounts, String detail) {
        this.bookID = bookID;
        this.bookName = bookName;
        this.bookCounts = bookCounts;
        this.detail = detail;
    }

    public int getBookID() {
        return bookID;
    }

    public void setBookID(int bookID) {
        this.bookID = bookID;
    }

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public int getBookCounts() {
        return bookCounts;
    }

    public void setBookCounts(int bookCounts) {
        this.bookCounts = bookCounts;
    }

    public String getDetail() {
        return detail;
    }

    public void setDetail(String detail) {
        this.detail = detail;
    }

    @Override
    public String toString() {
        return "books{" +
                "bookID=" + bookID +
                ", bookName='" + bookName + '\'' +
                ", bookCounts=" + bookCounts +
                ", detail='" + detail + '\'' +
                '}';
    }
}

其实要编写上面这段代码非常简单,使用ALT+Inster键查看代码结构,在里面可以选择现成的有参构造、无参构造、get方法、set方法以及toString方法,选中后IDE自动生成,所以这段代码看起来非常多,但是使用快捷键后会编写起来会非常简单

在编写完pojo层以后实体类层建立完毕,我们就需要编写dao层了,dao层主要负责接收上一层的请求来对数据库进行相关操作
在这里插入图片描述
在dao包下,我们必须先要创建一个接口,名字就是BookDao

接口中的内容中就是通过外界能够对数据库进行的一些操作

package com.westos.dao;

import com.westos.pojo.Books;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface BookDao {

    //增加一本Books
    int addBook(Books books);

    //根据id删除Books
    int deleteBookByID(@Param("bookID") int id);

    //更新Books
    int updateBook(Books books);

    //根据id查询Books
    Books queryBookByID(@Param("bookID") int id);

    //查看全部book
    List queryAllBook();
}

在写完dao层的接口代码后,我们就需要写一个和MyBatis相关的配置文件
在这里插入图片描述
因为我们使用Maven来构建项目,所以在之前的pom.xml中导入了mybatis的依赖后,我们还需要在resources目录下的MyBatis的配置文件中写入下面的代码,这段代码在官网上直接复制粘贴即可




  
    
      
      
        
        
        
        
      
    
  
  
    
  

因为environments 标签里面的内容IDE会自动生成,所以我们可以删除它

在上面的配置文件代码中我们还需要添加别名,也就是


    

注意,这个标签和标签同级,这样我们的实体类就都会有别名

添加完别名后我们就需要修改 标签后面的 resource后面的路径,这个路径就是dao层下面的xml映射文件的路径
在这里插入图片描述
dao层下面的xml映射文件的头部和resources目录下的MyBatis的配置文件的头部一样,只需要做一点改动
ssm整合案例MyBatis(1)_第17张图片dao层下面的xml映射文件中的代码为




    

这样dao层下面的xml映射文件和接口就已经关联上了

关联上后将resources目录下的MyBatis的配置文件补充完整





    
        
    

    
        
    


至此,MyBatis的配置文件配置完成,如果我们有新的xml映射文件只需要在resources目录下的MyBatis的配置文件中的标签中添加新的映射即可

然后我们就可以在dao层下的xml映射文件中编写语句来完成对接口中功能的实现





    
    
        insert into ssmbuild.books(bookID, bookName, bookCounts, detail) values
        (#{bookID}, #{bookName}, #{bookCounts}, #{detail})
    

    
    
        delete  from ssmbuild.books where bookID = #{bookID}
    
    
    
    
        update ssmbuild.books
        set bookName = #{bookName}, bookCounts = #{bookCounts}, detail = #{detail}
        where bookID = #{bookID}
    
    
    
    
    
    
    

在编辑完dao层的xml映射文件后,dao层结束,这里需要注意一些语句的细节

之后我们需要编辑service层
ssm整合案例MyBatis(1)_第18张图片
因为这个项目比较简单,service层的功能也就是增删改查,所以service层的功能接口我们可以直接复制dao层的BookDao接口中的功能

下面是代码

package com.westos.service;

import com.westos.pojo.Books;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface BookService {
    //增加一本Books
    int addBook(Books books);

    //根据id删除Books
    int deleteBookByID(@Param("bookID") int id);

    //更新Books
    int updateBook(Books books);

    //根据id查询Books
    Books queryBookByID(@Param("bookID") int id);

    //查看全部book
    List queryAllBook();
}

在编写完接口后我们在service包下继续创建这个接口的实现类
在这里插入图片描述
因为dao层就是接受service层发送过来的请求区对数据库进行操作,所以我们在这个实现类中需要建立和dao层xml映射文件的关联

在BookServiceImpl中添加代码

private BookDao bookDao;

//为了方便注入,我们需要设置一个set方法
public void setBookDao(BookDao bookDao) {
    this.bookDao = bookDao;
}

添加这段代码后我们就可以调用dao层的东西

BookServiceImpl类的完整代码为

package com.westos.service;

import com.westos.dao.BookDao;
import com.westos.pojo.Books;

import java.util.List;

public class BookServiceImpl implements BookService{


    private BookDao bookDao;

    //为了方便注入,我们需要设置一个set方法
    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }

    @Override
    public int addBook(Books books) {
        //如果有其他的业务,我们添加在相应的方法中即可,因为这个项目比较简单,所以业务只有一句话        
        return bookDao.addBook(books);
    }

    @Override
    public int deleteBookByID(int id) {
        return bookDao.deleteBookByID(id);
    }

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

    @Override
    public Books queryBookByID(int id) {
        return bookDao.queryBookByID(id);
    }

    @Override
    public List queryAllBook() {
        return bookDao.queryAllBook();
    }
}

至此,service层也编写完成,当然这篇博客讲到的主要是Mybatis,可看做对Mybatis的回顾,关于SpringMVC的整合,我后续会再写一篇博客

你可能感兴趣的:(新手求指教,求一起探讨,Spring,MVC,Java,MyBatis)