Maven+mybatis+mysql項目實踐

Maven+mybatis+mysql項目實踐

準備工作
– Maven搭建與工程建立
– mysql安裝


1、資料庫建測試表

這裡寫圖片描述

2、修改pom.xml文件

添加以下代碼,加入依賴:


    
        mysql
        mysql-connector-java
        5.1.38
    
    
        org.apache.logging.log4j
        log4j-core
        2.6.1
    
    
        org.mybatis
        mybatis
        3.4.1
    
    
        junit
        junit
        4.10
    

完整pom.xml


    4.0.0
    com.qwk
    spring_mybatis_1
    0.0.1-SNAPSHOT
    war

    
        
            mysql
            mysql-connector-java
            5.1.38
        
        
            org.apache.logging.log4j
            log4j-core
            2.6.1
        
        
            org.mybatis
            mybatis
            3.4.1
        
        
            junit
            junit
            4.10
        
    

3、創建實體類,配合資料庫

這裡寫圖片描述

package com.qwk.entity;
public class Book {

    private int id;
    private String bookName;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

}

4、創建訪問接口 BookDaoI.java

這裡寫圖片描述

package com.qwk.dao;
import java.util.List;
import com.qwk.entity.*;

public interface BookDaoI {
    public List getAllBook();
}

5、新建映射文件 BookMapper.xml

這裡寫圖片描述

6、新建MyBatis配置文件 MyBatisCfg.xml

這裡寫圖片描述

新增db.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=123456

新增MyBatisCfg.xml




    
      

    
    
        
    

     
        
            
            
                
                
                
                
            
        
    


    
        
        
    

7、新增MyBatisUtil工具類

這裡寫圖片描述

package com.qwk.util;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;


public class MyBatisUtil {

    /**
     * 獲取SqlSessionFactory
     * @return SqlSessionFactory
     */
    public static SqlSessionFactory getSqlSessionFactory() {
        String resource = "MyBatisCfg.xml";
        InputStream is = MyBatisUtil.class.getClassLoader().getResourceAsStream(resource);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
        return factory;
    }

    /**
     * 獲取SqlSession
     * @return SqlSession
     */
    public static SqlSession getSqlSession() {
        return getSqlSessionFactory().openSession();
    }

    /**
     * 獲取SqlSession
     * @param isAutoCommit 
     *         true 表示創建的SqlSession對象在執行完SQL之後會自動提交事務
     *         false 表示創建的SqlSession對象在執行完SQL之後不會自動提交事務,這時就需要我們手動調用sqlSession.commit()提交事務
     * @return SqlSession
     */
    public static SqlSession getSqlSession(boolean isAutoCommit) {
        return getSqlSessionFactory().openSession(isAutoCommit);
    }
}

8、創建Impl類實現接口

這裡寫圖片描述

package com.qwk.dao.impl;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.qwk.dao.BookDaoI;
import com.qwk.entity.Book;
import com.qwk.util.MyBatisUtil;

public class BookImpl implements BookDaoI{

    public List getAllBook() {
        //獲得會話對象
        SqlSession session= MyBatisUtil.getSqlSession(true); 
        try {          
            BookDaoI bookDao = session.getMapper(BookDaoI.class);
            return bookDao.getAllBook();
        } finally {
            session.close();
        }
    }
}

9、新增log4j2.xml配置文件

可以進行日志的記錄,因為前面的導入,不添加的話項目會出現錯誤
這裡寫圖片描述



    
    
        
            
                
    

                
        
            
        
    

測試: 創建類TestBookImpl.java

這裡寫圖片描述

package com.qwk.test;

import static org.junit.Assert.*;
import java.util.List;
import org.junit.BeforeClass;
import org.junit.Test;
import com.qwk.dao.BookDaoI;
import com.qwk.dao.impl.BookImpl;
import com.qwk.entity.Book;

public class TestBookImpl {
    static BookDaoI bookDao;

    @BeforeClass
    public static void beforeClass() {
        bookDao = new BookImpl();
    }

    @Test
    public void testGetAllBookTypes(){
        List books = bookDao.getAllBook();
        for(Book book:books){
            System.out.println(book.getBookName());
        }
        assertNotNull(books);
    }
}

項目右鍵->Run As->JUnit Test,可以看到成功輸出

這裡寫圖片描述


這樣就實現瞭 Maven+mybatis+mysql 的一個小項目實例瞭!!

感受:
mybatis與直接的JDBC區別,就在於mybatis將對資料庫的sql語句訪問都放在瞭一個配置文件中,這樣拆分瞭代碼部分,隻需要配置一下就可以實現資料庫的sql訪問瞭。

You May Also Like