一、数据库环境搭建
USE mybatis
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 , '从删库到跑路' ) ,
( 1 , 'Linux' , 5 , '从进门到进牢' ) ;
二、基本环境搭建
2.1、创建一个Maven项目
2.2、导入依赖
< dependencies>
< dependency>
< groupId> junit</ groupId>
< artifactId> junit</ artifactId>
< version> 4.11</ version>
</ dependency>
< dependency>
< groupId> mysql</ groupId>
< artifactId> mysql-connector-java</ artifactId>
< version> 5.1.47</ version>
</ dependency>
< dependency>
< groupId> com.mchange</ groupId>
< artifactId> c3p0</ artifactId>
< version> 0.9.5.2</ version>
</ dependency>
< dependency>
< groupId> javax.servlet</ groupId>
< artifactId> servlet-api</ artifactId>
< version> 2.5</ version>
</ dependency>
< dependency>
< groupId> javax.servlet</ groupId>
< artifactId> jstl</ artifactId>
< version> 1.2</ version>
</ dependency>
< dependency>
< groupId> org.mybatis</ groupId>
< artifactId> mybatis</ artifactId>
< version> 3.5.2</ version>
</ dependency>
< dependency>
< groupId> org.mybatis</ groupId>
< artifactId> mybatis-spring</ artifactId>
< version> 2.0.2</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-webmvc</ artifactId>
< version> 5.2.0.RELEASE</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-jdbc</ artifactId>
< version> 5.2.0.RELEASE</ version>
</ dependency>
</ dependencies>
2.3、解决资源导出问题
< build>
< resources>
< resource>
< directory> src/main/resources</ directory>
< includes>
< include> **/*.properties</ include>
< include> **/*.xml</ include>
</ includes>
< filtering> true</ filtering>
</ resource>
< resource>
< directory> src/main/java</ directory>
< includes>
< include> **/*.properties</ include>
< include> **/*.xml</ include>
</ includes>
< filtering> true</ filtering>
</ resource>
</ resources>
</ build>
2.4、编写mybatis-config.xml核心配置文件
<?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.massimo.pojo" />
</ typeAliases>
</ configuration>
2.5、编写实体类
package com. massimo. 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 + '\'' +
'}' ;
}
}
2.6、BookMapper接口
package com. massimo. dao ;
import com. massimo. pojo. Books ;
import org. apache. ibatis. annotations. Param ;
import java. util. List ;
public interface BookMapper {
int addBook ( Books books) ;
int deleteBookById ( @Param ( "bookId" ) int id) ;
int updateBook ( Books books) ;
Books queryBookById ( @Param ( "bookId" ) int id) ;
List < Books > queryAllBook ( ) ;
}
2.7、BookMapper.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" >
< mapper namespace = " com.massimo.dao.BookMapper" >
< insert id = " addBook" parameterType = " Books" >
insert into mybatis.books (bookName, bookCounts, detail)
VALUES (#{bookName},#{bookCounts},#{detail});
</ insert>
< delete id = " deleteBookById" parameterType = " int" >
delete from mybatis.books
where bookID = #{bookId}
</ delete>
< update id = " updateBook" parameterType = " Books" >
update mybatis.books
set bookName=#{bookName},bookCounts=#{bookCounts},detail=#{detail}
where bookID=#{bookID};
</ update>
< select id = " queryBookById" resultType = " Books" >
select * from mybatis.books
where bookID = #{bookID}
</ select>
< select id = " queryAllBook" resultType = " Books" >
select * from mybatis.books;
</ select>
</ mapper>
2.8、在mybatis-config.xml中注册Mapper
< mappers>
< mapper class = " com.massimo.dao.BookMapper" />
</ mappers>
2.9、编写BookService
package com. massimo. service ;
import com. massimo. pojo. Books ;
import java. util. List ;
public interface BookService {
int addBook ( Books books) ;
int deleteBookById ( int id) ;
int updateBook ( Books books) ;
Books queryBookById ( int id) ;
List < Books > queryAllBook ( ) ;
}
3.0、编写BookServiceImpl
package com. massimo. service ;
import com. massimo. dao. BookMapper ;
import com. massimo. pojo. Books ;
import java. util. List ;
public class BookServiceImpl implements BookService {
private BookMapper bookMapper;
public void setBookMapper ( BookMapper bookMapper) {
this . bookMapper = bookMapper;
}
public int addBook ( Books books) {
return bookMapper. addBook ( books) ;
}
public int deleteBookById ( int id) {
return bookMapper. deleteBookById ( id) ;
}
public int updateBook ( Books books) {
return bookMapper. updateBook ( books) ;
}
public Books queryBookById ( int id) {
return bookMapper. queryBookById ( id) ;
}
public List < Books > queryAllBook ( ) {
return bookMapper. queryAllBook ( ) ;
}
}
3.1、applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
< beans xmlns = " http://www.springframework.org/schema/beans"
xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instance"
xsi: schemaLocation= "
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd" >
</ beans>
3.2、database.properties
jdbc.driver=com.mysql.jdbc.Driver
# 如果使用的是MySQL8.0+ ,增加一个时区的配置; &serverTimezone=Asia/Shanghai
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123456
三、项目结构