1. 程式人生 > >mybatis 開發環境搭建

mybatis 開發環境搭建

不說廢話直接上程式碼,首先看下我的目錄機構:



紅色部分,表明你所需的jar包,已經配置檔案.

建立使用者表,以及插入資料.

create table books(id int (11) not null auto_increment,
                     image_url varchar(100) not null,
                     book_name varchar(50) not null,
                     author varchar(20) not null,
                     description varchar(255) not null,
                     primary key (id))ENGINE=InnoDB DEFAULT CHARSET=utf8;
                     
insert into  books(image_url,book_name,author,description) values('resources/images/english.jpg','考研英語','孫悟空','內容系統而全面,英語學習的好幫手!內容系統而全面,英語學習的好幫手!內容系統而全面,英語學習的好幫手!內容系統而全面,英語學習的好幫手!');       
insert into  books(image_url,book_name,author,description) values('resources/images/english.jpg','考研數學','劉詩詩','內容系統而全面,數學學習的好幫手,內容系統而全面,數學學習的好幫手內容系統而全面,數學學習的好幫手內容系統而全面,數學學習的好幫手');    

建立Book.java
package com.mybatis.model;

public class Book {
     private int id;
     private String imageUrl;
     private String name;
     private String author;
     private String description;
     
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getImageUrl() {
		return imageUrl;
	}
	public void setImageUrl(String imageUrl) {
		this.imageUrl = imageUrl;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAuthor() {
		return author;
	}
	public void setAuthor(String author) {
		this.author = author;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
     
}

 設定mybatis 配置檔案:configuration.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>
  <typeAliases>
    <!-- 給實體類去一個別名  -->
        <typeAlias type="com.mybatis.model.Book" alias="Book"/> 
  </typeAliases>
  
  <!-- 資料來源配置,這裡用MySQL資料庫 -->
  <environments default="development">
     <environment id="development">
         <transactionManager type="JDBC"/>
         <dataSource type="POOLED">
               <property name="driver" value="com.mysql.jdbc.Driver"/>
               <property name="url" value="jdbc:mysql://127.0.0.1:3306/test"/>
               <property name="username" value="root"/>
               <property name="password" value="123456"/>
         </dataSource>
     </environment>
  </environments>
  
  <mappers>
     <!-- book.xml裝載進來,等同於把Dao的實現類裝載進來 -->
       <mapper resource="com/mybatis/model/book.xml"/>
  </mappers>
  
</configuration>

建立與Book.java對應的對映檔案 book.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">
   <!--這塊等於Dao介面的實現 namespace必須和介面的類路徑一樣-->
   
<mapper namespace="com.mybatis.model.BookMapper">
  <!-- queryEmpById必須和介面中的方法名一樣, 返回一個Emp 就是剛才的別名 ,如果不用別名要連路徑一起寫,麻煩-->
     <select id="selectBookById"  parameterType="int" resultType="Book">
          select * from books where id=#{id}
     </select>
</mapper>
最後就讓我們編寫一個測試類,執行我們的程式
package com.mybatis.test;

import java.io.IOException;

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

import com.mybatis.model.Book;

public class Test {

	/***
	 * 獲得MyBatis SqlSessionFactory
	 * SqlSessionFactory 負責建立SqlSession ,一旦建立成功,就可以用SqlSession例項來執行對映語句
	 * ,commit,rollback,close等方法
	 * @return
	 */
	
	private static SqlSessionFactory getSessionFactory(){
		SqlSessionFactory sessionFactory=null;
		String resource="configuration.xml";
		 try {
			sessionFactory=new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(resource));
		} catch (IOException e) {
			e.printStackTrace();
		}
		return sessionFactory;
	}
	public static void main(String[] args) {
          SqlSession session=getSessionFactory().openSession();
          Book book=session.selectOne("com.mybatis.model.BookMapper.selectBookById", 2);
          System.out.println(book.getAuthor());
	}
}