ssm整合-MyBatis
阿新 • • 發佈:2022-01-14
1.搭建資料庫:
CREATE DATABASE ssmbuild; USE ssmbuild; 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,'JAVASCRIPT',1,'從入門到放棄'), (2,'MySQL',10,'從刪庫到跑路'), (3,'Linux',5,'從進門到進牢')
2.新建一個普通maven專案,匯入依賴
pom.xml:
<?xml version="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.0</modelVersion> <groupId>com.kakafa</groupId> <artifactId>ssmbuild</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <!--依賴--> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency> <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --> <!--資料庫連線池--> <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.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</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.6</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.13</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.3.14</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </dependency> </dependencies> <!--解決靜態資源匯出問題--> <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build> </project>
3.連線資料庫
4.建立mybatis需要的檔案目錄
5.編寫Mybatis程式碼
books:
package com.kakafa.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; //java裡面有一個Book類,為了避免衝突,所以這裡取名為Books @Data @AllArgsConstructor @NoArgsConstructor public class Books { private int bookID; private String bookName; private int bookCounts; private String detail; }
database.properties:
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatistest?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT
username=root
password=123456
BookMapper介面:
package com.kakafa.mapper;
import com.kakafa.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();
}
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.kakafa.mapper.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" parameterType="_int" parameterMap="books">
select * from ssmbuild.books
where bookID=#{bookID};
</select>
<select id="queryAllBook" parameterMap="">
select * from ssmbuild.books;
</select>
</mapper>
BookService介面:
package com.kakafa.service;
import com.kakafa.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();
}
BookServiceImpl實現類:
package com.kakafa.service;
import com.kakafa.mapper.BookMapper;
import com.kakafa.pojo.Books;
import java.util.List;
public class BookServiceImpl implements BookService{
//service層要呼叫dao層(即mapper)
private 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核心配置檔案: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>
<!--配置資料來源,可以交給spring去做-->
<!--別名-->
<typeAliases>
<package name="com.kakafa.pojo"/>
</typeAliases>
<mappers>
<mapper class="com.kakafa.mapper.BookMapper"/>
</mappers>
</configuration>