MyBatis 入門

MyBatis是由原來的iBatis改名而來,目前已近發佈了3.0.1版本。可以在官方網站http://www.mybatis.org下載

MyBatis作爲持久層框架,其主要思想是將程序中的大量sql語句剝離出來,配置在配置文件中,實現sql的靈活配置。這樣做的好處是將sql與程序代碼分離,可以在不修改程序代碼的情況下,直接在配置文件中修改sql。下面給個簡單的入門例子。

下面的例子實現從數據庫中查詢商品表(Goods)中id爲1的商品,並打印出商品名稱。

數據庫建表腳本如下:

DROP TABLE GOODS;

CREATE TABLE GOODS(

ID INT PRIMARY KEY,

CATE_ID INT,

NAME VARCHAR(50),

PRICE DECIMAL(16,2),

DESCRIPTION VARCHAR(100),

ORDER_NO INT,

UPDATE_TIME TIMESTAMP

);

數據庫初始化腳本:

INSERT INTO GOODS(ID,CATE_ID,NAME,PRICE,DESCRIPTION,ORDER_NO,UPDATE_TIME) VALUES (1,1,'諾基亞N85',3010,'內置RealPlayer播放器',1,CURRENT_TIMESTAMP);

INSERT INTO GOODS(ID,CATE_ID,NAME,PRICE,DESCRIPTION,ORDER_NO,UPDATE_TIME) VALUES (2,1,'金立 A30',2000,'標準鋰電池兩塊',2,CURRENT_TIMESTAMP);

一、configuration.xml配置文件

首先在工程中導入mybatis-3.0.1.jar包。然後編寫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 alias="Goods" type="com.oryx.mybatis.Goods"/>

typeAliases>

<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://localhost:3306/test"/>

<property name="username" value="root"/>

<property name="password" value="root"/>

dataSource>

environment>

environments>

<mappers>

<mapper resource="com/oryx/mybatis/GoodsMapper.xml"/>

mappers>

configuration>

 

二、Mapper.xml配置文件

接着編寫GoodsMapper.xml配置文件。Mapper配置文件主要是實現POJO類和sql之間的映射。

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.oryx.mybatis.GoodsMapper">

<select id="selectGood" parameterType="int" resultType="Goods">

select * from Goods where id = #{id}

select>

mapper>

其中#{id}是需要傳入的參數,parameterType是參數的類型,resultType是查詢返回的結果類。這地方的Goods是一個別名,可以在configuration.xml文件中找到它對應的具體類。

 

由此可知查詢結果集將保存在com.oryx.mybatis.Goods中返回。

三、Goods類

在工程中新建com.oryx.mybatis.Goods.java類。

package com.oryx.mybatis;

import java.sql.Timestamp;

public class Goods {

private String id;

private String cateId;

private String name;

private double price;

private String description;

private int orderNo;

private Timestamp updateTime;

/**

* @return the goodsid

*/

public String getId() {

return id;

}

/**

* @param goodsid the goodsid to set

*/

public void setId(String id) {

this.id = id;

}

/**

* @return the cateId

*/

public String getCateId() {

return cateId;

}

/**

* @param cateId the cateId to set

*/

public void setCateId(String cateId) {

this.cateId = cateId;

}

/**

* @return the name

*/

public String getName() {

return name;

}

/**

* @param name the name to set

*/

public void setName(String name) {

this.name = name;

}

/**

* @return the price

*/

public double getPrice() {

return price;

}

/**

* @param price the price to set

*/

public void setPrice(double price) {

this.price = price;

}

/**

* @return the description

*/

public String getDescription() {

return description;

}

/**

* @param description the description to set

*/

public void setDescription(String description) {

this.description = description;

}

/**

* @return the orderNo

*/

public int getOrderNo() {

return orderNo;

}

/**

* @param orderNo the orderNo to set

*/

public void setOrderNo(int orderNo) {

this.orderNo = orderNo;

}

/**

* @return the updateTime

*/

public Timestamp getUpdateTime() {

return updateTime;

}

/**

* @param updateTime the updateTime to set

*/

public void setUpdateTime(Timestamp updateTime) {

this.updateTime = updateTime;

}

}

 

四、測試用例

package com.oryx.mybatis;

import java.io.IOException;

import java.io.Reader;

import java.sql.SQLException;

import org.apache.ibatis.io.Resources;

import org.apache.ibatis.session.SqlSession;

import org.apache.ibatis.session.SqlSessionFactory;

import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class TestMyBatis {

public static void main(String[] args) throws SQLException, IOException{

String resource = "com/oryx/mybatis/configuration.xml";

Reader reader = Resources.getResourceAsReader(resource);

SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);

SqlSession session = sessionFactory.openSession();

try{

Goods goods = (Goods)session.selectOne("com.oryx.mybatis.GoodsMapper.selectGoods",1);

System.out.println("good name:"+goods.getName());

}finally{

session.close();

}

}

}
發佈了27 篇原創文章 · 獲贊 25 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章