首先构建新的项目。
在mysql中创建我们需要的表
- 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,'从进门到进牢');
注意:分段执行,不要一次性全部执行。
接着直接在IDEA中新建maven项目即可。

BookMapper(dao层接口)
- package com.Li.dao;
-
- import com.Li.pojo.Books;
- import org.apache.ibatis.annotations.Param;
-
- import java.util.List;
-
- public interface BookMapper {
-
- //增加一个Book
- int addBook(Books book);
-
- //根据id删除一个Book
- int deleteBookById(@Param("bookId") int id);
-
- //更新Book
- int updateBook(Books books);
-
- //根据id查询,返回一个Book
- Books queryBookById(@Param("bookId") int id);
-
- //查询全部Book,返回list集合
- List
queryAllBook(); -
- }
BookMapper.xml(编写dao层的映射文件,具体的sql语句。CRUD)
- "1.0" encoding="UTF-8" ?>
- mapper
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
- <mapper namespace="com.kuang.dao.BookMapper">
-
-
- <insert id="addBook" parameterType="Books">
- insert into ssmbuild.books(bookName,bookCounts,detail)
- values (#{bookName}, #{bookCounts}, #{detail})
- insert>
-
-
- <delete id="deleteBookById" parameterType="int">
- delete from ssmbuild.books where bookID=#{bookID}
- delete>
-
-
- <update id="updateBook" parameterType="Books">
- update ssmbuild.books
- set bookName = #{bookName},bookCounts = #{bookCounts},detail = #{detail}
- where bookID = #{bookID}
- update>
-
-
- <select id="queryBookById" resultType="Books">
- select * from ssmbuild.books
- where bookID = #{bookID}
- select>
-
-
- <select id="queryAllBook" resultType="Books">
- SELECT * from ssmbuild.books
- select>
-
- mapper>
Books(实体类的创建)
- package com.Li.pojo;
-
- import lombok.AllArgsConstructor;
- import lombok.Data;
- import lombok.NoArgsConstructor;
-
- @Data
- @AllArgsConstructor
- @NoArgsConstructor
- public class Books {
- private int bookID;
- private String bookName;
- private int bookCounts;
- private String detail;
- }
BookService(与dao层接口一样)
- package com.Li.service;
-
- import com.Li.pojo.Books;
- import org.apache.ibatis.annotations.Param;
-
- import java.util.List;
-
- public interface BookService {
-
- //增加一本书
- int addBook(Books book);
-
- //删除一本书
- int deleteBookById(int id);
-
- //更新一本书
- int updateBook(Books books);
-
- //查询一本书
- Books queryBookById(int id);
-
- //查询全部书
- List
queryAllBook(); -
- }
BookServiceImpl(引用了dao层,相当于是代理模式,代理了dao层。并且还可以在dao层的内容上加自己的内容)
- package com.Li.service;
-
- import com.Li.dao.BookMapper;
- import com.Li.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;
- }
-
- @Override
- public int addBook(Books book) {
- return bookMapper.addBook(book);//业务层调dao层
- }
-
- @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
queryAllBook() { - return bookMapper.queryAllBook();
- }
- }
mybatis-config.xml
- "1.0" encoding="UTF-8" ?>
- configuration
- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-config.dtd">
- <configuration>
-
-
- <typeAliases>
- <package name="com.Li.pojo"/>
- typeAliases>
-
- <mappers>
- <mapper class="com.Li.dao.BookMapper"/>
- mappers>
-
- configuration>
pom.xml
- "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.0modelVersion>
-
- <groupId>com.LigroupId>
- <artifactId>ssmbuildartifactId>
- <version>1.0-SNAPSHOTversion>
-
- <properties>
- <maven.compiler.source>8maven.compiler.source>
- <maven.compiler.target>8maven.compiler.target>
- properties>
-
-
-
- <dependencies>
-
- <dependency>
- <groupId>junitgroupId>
- <artifactId>junitartifactId>
- <version>4.12version>
- dependency>
-
- <dependency>
- <groupId>mysqlgroupId>
- <artifactId>mysql-connector-javaartifactId>
- <version>8.0.29version>
- dependency>
-
- <dependency>
- <groupId>com.mchangegroupId>
- <artifactId>c3p0artifactId>
- <version>0.9.5.2version>
- dependency>
-
-
- <dependency>
- <groupId>javax.servletgroupId>
- <artifactId>servlet-apiartifactId>
- <version>2.5version>
- dependency>
- <dependency>
- <groupId>javax.servlet.jspgroupId>
- <artifactId>jsp-apiartifactId>
- <version>2.2version>
- dependency>
- <dependency>
- <groupId>javax.servletgroupId>
- <artifactId>jstlartifactId>
- <version>1.2version>
- dependency>
-
-
- <dependency>
- <groupId>org.mybatisgroupId>
- <artifactId>mybatisartifactId>
- <version>3.5.2version>
- dependency>
- <dependency>
- <groupId>org.mybatisgroupId>
- <artifactId>mybatis-springartifactId>
- <version>2.0.2version>
- dependency>
-
-
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-webmvcartifactId>
- <version>5.1.9.RELEASEversion>
- dependency>
- <dependency>
- <groupId>org.springframeworkgroupId>
- <artifactId>spring-jdbcartifactId>
- <version>5.1.9.RELEASEversion>
- dependency>
-
-
- <dependency>
- <groupId>org.projectlombokgroupId>
- <artifactId>lombokartifactId>
- <version>1.18.24version>
- dependency>
- dependencies>
-
-
-
- <build>
- <resources>
- <resource>
- <directory>src/main/javadirectory>
- <includes>
- <include>**/*.propertiesinclude>
- <include>**/*.xmlinclude>
- includes>
- <filtering>falsefiltering>
- resource>
- <resource>
- <directory>src/main/resourcesdirectory>
- <includes>
- <include>**/*.propertiesinclude>
- <include>**/*.xmlinclude>
- includes>
- <filtering>falsefiltering>
- resource>
- resources>
- build>
-
- project>

这两个为spring层服务,所以mybatis层还不需要实现具体内容。
这就是mybatis层的实现。