环境:
IDEA
MySQL 5.7.19
Tomcat 9
Maven 3.6
(1)数据库环境
创建一个存放书籍数据的数据库表,需要注意是一个行模块进行执行,不要全部一起,会报错
CREATE DATABASE ssmbuild;
USE ssmbuild;
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,‘从进门到进牢’);
基本环境搭建
(2)新建一Maven项目!ssmbuild
(3)导入相关的pom依赖
javax.servlet
servlet-api
2.5
javax.servlet.jsp
jsp-api
2.2
javax.servlet
jstl
1.2
org.mybatis
mybatis
3.5.9
org.mybatis
mybatis-spring
2.0.6
org.springframework
spring-webmvc
5.3.19
org.springframework
spring-jdbc
5.3.19
org.projectlombok
lombok
1.18.24
输入账户密码,测试是否成功!
选择创建的数据库(ssmbuild)
(6)建立基本结构和配置框架
com.gt.pojo
com.gt.mapper
com.gt.service
com.gt.controller
mybatis-config.xml
applicationContext.xml Mybatis层编写 (7)数据库配置文件 database.properties jdbc.driver=com.mysql.jdbc.Driver # 如果使用的是MySQL8.0+,增加一个时区的配置; &serverTimezone=Asia/Shanghai jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=false&useUnicode=true&characterEncoding=utf8 jdbc.username=root jdbc.password=123456 (8)在mybatis-config中配置别名 (9)idea关联数据库 (若前面连接的时候关联就不需要管它) (10)编写数据库表对应的实体类 Books 这里用到lombok插件,要提前把项目包导入pom当中 org.projectlombok lombok 1.16.10 (11)创建pojo中创建Books,编写有参无参构造 @Data @NoArgsConstructor @AllArgsConstructor public class Books { private int bookID; private String bookName; private String bookCounts; private String detail; } 左边可以查看构造出的函数,有有参、无参、toString()方法等!(12)编写dao层的mapper接口,只要有一个pojo下一步就是在dao层编写接口
后面在删除和查询一本书的时候需要加上@Param(“bookID”)
package com.gt.dao;
import com.gt.pojo.Books;
import java.util.List;
public interface BookMapper {
// 增加一本书
int addBook(Books books);
// 删除一本书
int deleteBook(Books book);
// 更新一本书
int updateBook(Books books);
// 查询一本书
Books queryBook(int id);
// 查询全部的书
List queryAllBook();
}
(13)编写接口对应的Mapper.xml文件(BookMapper.xml),需要导入mybatis的包
记住创建了BookMapper接口后下一步骤就是创建BookMapper.xml文件!
insert into ssmbuild.books (bookName,bookCounts,detail)
values (#{bookName},#{bookCounts},#{detail})
delete from ssmbuild.books where bookID = #{bookId}
updated ssmbuild.books
set bookName=#{bookName},bookCount=#{bookCounts},delails=#{delail}
where bookID=#{bookId}
select * from ssmbuild.books
记得删除和查询一本书都需要加上@Param(“bookId”)
(15)去mybatis-config.xml中记得注册
(16)编写service业务层的接口和实现类
BookService.java
package com.gt.service;
import com.gt.pojo.Books;
import java.util.List;
public interface BookService {
//增加一本书
int addBook(Books books);
//删除一本书
int deleteBook(int id);
//更新一本书
int updateBook(Books books);
//查询一本书
Books queryBookById(int id);
//查询全部的书
List queryAllBook();
}
BookServiceImpl.java
package com.gt.service;
import com.gt.dao.BookMapper;
import com.gt.pojo.Books;
import java.util.List;
public class BookServiceImpl implements BookService{
// service调用dao层:组合Dao
private BookMapper bookMapper;
public void setBookMapper(BookMapper bookMapper) {
this.bookMapper = bookMapper;
}
public int addBook(Books books) {
return bookMapper.addBook(books);
}
public int deleteBook(int id) {
return bookMapper.deleteBook(id);
}
public int updateBook(Books books) {
return bookMapper.updateBook(books);
}
public Books queryBookById(int id) {
return bookMapper.queryBookById(id);
}
public List queryAllBook() {
return bookMapper.queryAllBook();
}
}
Spring层
(17)配置spring整合mybatis,我们这里数据源使用c3p0连接池,在resources中创建spring-dao.xml,添加到上一个就行
spring-dao.xml
(18)我们去编写spring整合mybatis的相关的配置文件 spring-dao.xml
前提是要导入c3p0的包
在配置连接池的时候,要对应database.properties
spring-dao.xml
(19)spring整合service层 spring-service.xml
spring-service.xml
如果bookMapper报错,证明三个xml文件没有关联起来可以通过配置applicationContext来配置
加入@Service、@Autowired注入成功
SpringMVC层
(20)添加web项目
(21)web.xml
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-mvc.xml
1
springmvc
/
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
encodingFilter
/*
15
(22)spring-mvc.xml
(21)spring配置整合文件 applicationContext.xml
总代码
BookMapper:
package com.gt.dao;
import com.gt.pojo.Books;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface BookMapper {
// 增加一本书
int addBook(Books books);
// 删除一本书
int deleteBook(@Param("bookId") int id);
// 更新一本书
int updateBook(Books books);
// 查询一本书
Books queryBookById(@Param("bookId") int id);
// 查询全部的书
List queryAllBook();
}
BookMapper.xml :
insert into ssmbuild.books (bookName,bookCounts,detail)
values (#{bookName},#{bookCounts},#{detail})
delete from ssmbuild.books where bookID = #{bookId}
updated ssmbuild.books
set bookName=#{bookName},bookCount=#{bookCounts},delails=#{delail}
where bookID=#{bookId}
select * from ssmbuild.books
Books:
package com.gt.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Books {
private int bookID;
private String bookName;
private String bookCounts;
private String detail;
}
BookService:
package com.gt.service;
import com.gt.pojo.Books;
import java.util.List;
public interface BookService {
//增加一本书
int addBook(Books books);
//删除一本书
int deleteBook(int id);
//更新一本书
int updateBook(Books books);
//查询一本书
Books queryBookById(int id);
//查询全部的书
List queryAllBook();
}
BookServiceImpl:
package com.gt.service;
import com.gt.dao.BookMapper;
import com.gt.pojo.Books;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class BookServiceImpl implements BookService{
// service调用dao层:组合Dao
@Autowired
private BookMapper bookMapper;
public void setBookMapper(BookMapper bookMapper) {
this.bookMapper = bookMapper;
}
public int addBook(Books books) {
return bookMapper.addBook(books);
}
public int deleteBook(int id) {
return bookMapper.deleteBook(id);
}
public int updateBook(Books books) {
return bookMapper.updateBook(books);
}
public Books queryBookById(int id) {
return bookMapper.queryBookById(id);
}
public List queryAllBook() {
return bookMapper.queryAllBook();
}
}
applicationContext:
database.properties:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=false&useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123456
mybatis-config:
spring-dao.xml:
spring-mvc:
mvc:annotation-driven
mvc:default-servlet-handler
spring-service:
文章转自:整合SSM(Mybatis-Spring-SpringMVC层)_Java-答学网
作者:答学网,转载请注明原文链接:http://www.dxzl8.com/