MyBatis整合(SpringBoot)

  1. 導入依賴
              <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.1.2</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.22</version>
            </dependency>

     

  2. 創建數據庫訪問層(Mapper)
    @Mapper
    public interface BookMapper {
        int addBook(Book book);
        int deleteBookById(Integer id);
        int updateBookById(Book book);
        Book getBookById(Integer id);
        List<Book> getAllBooks();
    }

     

  3. 創建對應的Mapper.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.batac.summer.Mapper.BookMapper">
        <insert id="addBook" parameterType="com.batac.summer.bean.Book">
            insert into book (name, author) values (#{name},#{author})
        </insert>
    
        <delete id="deleteBookById" parameterType="int">
            delete from book where id=#{id}
        </delete>
        <update id="updateBookById" parameterType="com.batac.summer.bean.Book">
            update book set name=#{name},author=#{author} where id=#{id}
        </update>
    
        <select id="getBookById" parameterType="int" resultType="com.batac.summer.bean.Book">
            select * from book where id=#{id}
        </select>
        <select id="getAllBooks" resultType="com.batac.summer.bean.Book">
            select * from book
        </select>
    </mapper>

     

  4. service與controller測試
    @Service
    public class BookService {
    
    //    @Autowired
    //    BookDao bookDao;
    
        @Autowired
        private  BookMapper bookMapper;
    
        public int addBoot(Book book){
            return bookMapper.addBook(book);
        }
    
        public int updateBook(Book book){
            return bookMapper.updateBookById(book);
        }
    
        public int deleteBookById(Integer id){
            return bookMapper.deleteBookById(id);
        }
    
        public Book getBookByID(Integer id){
            return bookMapper.getBookById(id);
        }
    
        public List<Book>getAllBooks(){
            return bookMapper.getAllBooks();
        }
    
    }
    @RestController
    public class BookController {
        @Autowired
        BookService bookService;
    
       @GetMapping("/bookOps")
        public void  bookOps(){
            Book b1 = new Book();
            b1.setName("西廂記");
            b1.setAuthor("王師傅");
            int i = bookService.addBoot(b1);
           System.out.println("addBoot>>>"+i);
    
           Book b2 = new Book();
           b2.setId(1);
           b2.setName("朝花夕拾");
           b2.setAuthor("魯迅");
           int i2=bookService.updateBook(b2);
           System.out.println("updateBook>>>"+i2);
    
           Book b3=bookService.getBookByID(1);
           System.out.println("getBookByID>>>"+b3);
    
           List<Book>list = bookService.getAllBooks();
           System.out.println("getAllBooks>>>"+list);
        }
        
    }

     

在Maven工程中, XML配置文件建議卸載resources目錄下, 但是上文中的Mapper.xml文件寫在了包下, Maven在運行時會忽略包下的XML文件, 因此需要在pom.xml文件中重新指明資源文件位置, 配置如下:

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
    </build>

 注意: 有兩種方式指明該類是一個Mapper: 第一種是如前面的代碼所示, 在BookMapper上添加@Mapper註解, 表明該接口是一個MyBatis中的Mapper, 這種方式要在每一個Mapper上都添加註解, 還有一種簡單的方式是在配置類上添加MapperScan("com.batac.summer.mapper")註解, 表示掃描com.batac.summer.mapper包下所有的接口作爲Mapper, 這樣就不用在每個接口上配置@Mapper註解了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章