Spring整合Mybatis

环境搭建

  1. 创建数据库

    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,'从进门到进牢');
    
  2. 导入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>
    
  3. 导入资源过滤

    <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>
    
  4. 创建mybatis-config.xml核心配置文件

    <?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>
    
  5. 创建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>
    
  6. 创建实体类

    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 + '\'' +
                    '}';
        }
    }
    
  7. 创建BookMapper接口

    package com.tian.mapper;
    
    public interface BookMapper {
        
    }
    
  8. 创建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>
    

操作流程

  1. 在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&amp;characterEncoding=UTF- 	         							8&amp;autoReconnect=true&amp;failoverReadOnly=false&amp;serverTimezone=UTC"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>
    
  2. 在mybatis-config.xml中给实体类起别名

    <typeAliases>
        <typeAlias type="com.tian.pojo.Books" alias="Books"/>
    </typeAliases>
    
  3. 编写抽象方法

    //查询所有书
    List<Books> queryAllBook();
    
  4. 添加方法映射

    <select id="queryAllBook" resultType="Books">
        select * from books;
    </select>
    
  5. 添加配置文件的映射

    <mappers>
        <mapper class="com.tian.mapper.BookMapper"/>
    </mappers>
    
  6. 在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>
    
  7. 在spring-dao.xml中创建sqlSession

    <bean id="sqlSession" class="org.mybatis.spring.sqlSessionTemplate">
    	<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
    </bean>
    
  8. 测试

    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);
            }
        }
    }
    

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...
win11本地账户怎么改名?win11很多操作都变了样,用户如果想要...