個人電腦操做系統版本爲Win7旗艦版(ServicePack1),Oracle版本爲Oracle11gjava
程序使用的jar包有:mybatis-3.2.2.jar、ojdbc14-10.2.0.2.0.jarsql
本例中使用的配置文件mybatis-config.xml,能夠參見個人另外一篇Blog《一個簡單的MyBatis鏈接Oracle數據庫的例子》(http://my.oschina.net/Tsybius2014/blog/626206)數據庫
如今Oracle數據庫中創建一個新表RANK_LIST並插入一些數據,SQL以下:apache
CREATE TABLE RANK_LIST ( ID NUMBER(12,0) PRIMARY KEY, COMPETITION VARCHAR2(20) NOT NULL, RANK NUMBER(5, 0) NOT NULL, NAME VARCHAR(20) NOT NULL, INPUT_DATE NUMBER(10,0) DEFAULT TO_NUMBER(TO_CHAR(sysdate,'yyyymmdd')), INPUT_TIME NUMBER(10,0) DEFAULT TO_NUMBER(TO_CHAR(sysdate,'hh24miss')) ); INSERT INTO RANK_LIST (ID, COMPETITION, RANK, NAME) VALUES (1, 'COMP1', 1, 'TSYBIUS'); INSERT INTO RANK_LIST (ID, COMPETITION, RANK, NAME) VALUES (2, 'COMP1', 2, 'GALATEA'); INSERT INTO RANK_LIST (ID, COMPETITION, RANK, NAME) VALUES (3, 'COMP1', 3, 'GAIUS'); INSERT INTO RANK_LIST (ID, COMPETITION, RANK, NAME) VALUES (4, 'COMP1', 4, 'JULIA'); INSERT INTO RANK_LIST (ID, COMPETITION, RANK, NAME) VALUES (5, 'COMP2', 1, 'TSYBIUS'); INSERT INTO RANK_LIST (ID, COMPETITION, RANK, NAME) VALUES (6, 'COMP2', 2, 'GAIUS'); INSERT INTO RANK_LIST (ID, COMPETITION, RANK, NAME) VALUES (7, 'COMP2', 3, 'MARCUS'); INSERT INTO RANK_LIST (ID, COMPETITION, RANK, NAME) VALUES (8, 'COMP3', 1, 'QUINTUS'); INSERT INTO RANK_LIST (ID, COMPETITION, RANK, NAME) VALUES (9, 'COMP3', 2, 'MARCUS'); COMMIT; /
這個表中,ID爲主鍵,COMPETITION爲賽事,RANK爲選手在這項賽事中取得的名次,NAME爲選手的姓名。從PL/SQL中看到的RANK_LIST表內容以下:session
如今要將得到了名次的選手按字母順序正序取出,main函數調用代碼以下:mybatis
import java.io.InputStream; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; /** * MyBatis使用測試 * @author Tsybius2014 * @date 2016年3月14日 * @time 下午10:55:12 * @remark * */ public class MyBatisTest { public static void main(String[] args) { try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); try { RankListMapper mapper = session.getMapper(RankListMapper.class); List<String> productList = mapper.getWinnerList(); System.out.println(productList); } finally { session.close(); } } catch (Exception ex) { ex.printStackTrace(); } } }
RankListMapper.java代碼以下:app
import java.util.List; public interface RankListMapper { /** 獲取在RANK_LIST表中榜上有名者的列表 */ List<String> getWinnerList(); }
RankListMapper.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="RankListMapper"> <select id="getWinnerList" resultType="java.lang.String" > SELECT NAME FROM RANK_LIST GROUP BY NAME ORDER BY NAME </select> </mapper>
上面的main函數,執行結果爲:測試
[GAIUS, GALATEA, JULIA, MARCUS, QUINTUS, TSYBIUS]
ENDui