环境搭建
-
创建数据库
CREATE DATABASE ssmbuild; USE ssmbuild; CREATE TABLE `books`( `bookID` INT NOT NULL AUTO_INCREMENT COMMENT '书id', `bookName` VARCHAR(100) NOT NULL COMMENT '书名', `bookCounts` INT 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,'从进门到进牢');
-
导入Maven依赖
<!-- 单元测试--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!-- 数据库--> <dependency> <groupId>MysqL</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.17</version> </dependency> <!-- 连接数据库--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <!-- Spring整合Mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.2</version> </dependency> <!-- spring操作数据库--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.0.RELEASE</version> </dependency> <!-- Spring--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.0.RELEASE</version> </dependency> <!-- spring AOP--> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.4</version> </dependency>
-
导入资源过滤
<build> <resources> <resource> <!--指定配置文件所在的目录--> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <!--启用上面的过滤文件--> <filtering>true</filtering> </resource> <resource> <!--指定配置文件所在的目录--> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <!--启用上面的过滤文件--> <filtering>true</filtering> </resource> </resources> </build>
-
<?xml version="1.0" encoding="UTF8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> </configuration>
-
创建spring-dao.xml核心配置文件
<?xml version="1.0" encoding="UTF8"?> <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 https://www.springframework.org/schema/beans/spring-beans.xsd"> </beans>
-
创建实体类
package com.tian.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 + '\'' + '}'; } }
-
创建BookMapper接口
package com.tian.mapper; public interface BookMapper { }
-
创建BookMapper.xml配置文件
<?xml version="1.0" encoding="UTF8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.tian.mapper.BookMapper"> </mapper>
操作流程
-
在spring-dao.xml中导入数据库资源
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.MysqL.cj.jdbc.Driver"/> <property name="url" value="jdbc:MysqL://localhost:3306/ssmbuild? useUnicode=true&characterEncoding=UTF- 8&autoReconnect=true&failoverReadOnly=false&serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="123456"/> </bean>
-
<typeAliases> <typeAlias type="com.tian.pojo.Books" alias="Books"/> </typeAliases>
-
编写抽象方法
//查询所有书 List<Books> queryAllBook();
-
<select id="queryAllBook" resultType="Books"> select * from books; </select>
-
<mappers> <mapper class="com.tian.mapper.BookMapper"/> </mappers>
-
在spring-dao.xml中创建sqlSessionFactory
<bean id="sqlSessionFactory" class="org.mybatis.spring.sqlSessionfactorybean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="mybatis-config.xml"/> </bean>
-
在spring-dao.xml中创建sqlSession
<bean id="sqlSession" class="org.mybatis.spring.sqlSessionTemplate"> <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/> </bean>
-
测试
import com.tian.mapper.BookMapper; import com.tian.pojo.Books; import org.apache.ibatis.session.sqlSession; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClasspathXmlApplicationContext; import java.util.List; public class MyTest { @Test public void test(){ //获取sqlSession ApplicationContext context = new ClasspathXmlApplicationContext("spring-dao.xml"); sqlSession sqlSession = context.getBean("sqlSession", sqlSession.class); //获取mapper BookMapper mapper = sqlSession.getMapper(BookMapper.class); //执行查询 List<Books> books = mapper.queryAllBook(); //输出 for (Books book : books) { System.out.println(book); } } }