文档章节

一个使用MyBatis将数据库表中的一列内容放到List<String>的例子

北风其凉
 北风其凉
发布于 2016/03/14 23:30
字数 536
阅读 2249
收藏 1

我的电脑操作系统版本为Win7旗舰版(ServicePack1),Oracle版本为Oracle11g

程序使用的jar包有:mybatis-3.2.2.jar、ojdbc14-10.2.0.2.0.jar

本例中使用的配置文件mybatis-config.xml,可以参见我的另一篇Blog《一个简单的MyBatis连接Oracle数据库的例子》(http://my.oschina.net/Tsybius2014/blog/626206

现在Oracle数据库中建立一个新表RANK_LIST并插入一些数据,SQL如下:

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表内容如下:

现在要将获得了名次的选手按字母顺序正序取出,main函数调用代码如下:

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代码如下:

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]

END

© 著作权归作者所有

北风其凉

北风其凉

粉丝 119
博文 498
码字总数 463468
作品 4
朝阳
程序员
私信 提问
oracle 11g下的行转列pivot填坑--xmlType转clob或String

临近年关,我们给全公司用的API平台也到了要装逼的时刻,然而装逼利器还没搞完,那就是报表呈现,于是leader说你来搞一下吧。 echarts肯定是要的,报表呈现还是很完美的。然后就是数据库层面...

checkboxMan
2018/12/10
0
0
BeetlSQL,简单和强大数据库访问工具(更新)

beetlsql 特点 BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应用。 无需注解,自动生成大量...

闲大赋
2015/08/17
0
61
企业项目开发--本地缓存guava cache(2)

此文已由作者赵计刚授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 AdminCacheKey: package com.xxx.vo.userManagement; /** * guava cache的key */public clas...

网易云
2018/12/18
0
0
MyBatis练习:查询表中单个数据列中用分隔符隔开的数据

我的电脑操作系统版本为Win7旗舰版(ServicePack1),Oracle版本为Oracle11g,PL/SQL版本为7.0.1.1066 程序使用的jar包有:mybatis-3.2.2.jar、ojdbc14-10.2.0.2.0.jar 本例中使用的配置文件...

北风其凉
2016/05/21
341
0
Mybatis3.3.x技术内幕(十四):Mybatis之KeyGenerator

在Mybatis中,执行insert操作时,如果我们希望返回数据库生成的自增主键值,那么就需要使用到KeyGenerator对象。 需要注意的是,KeyGenerator的作用,是返回数据库生成的自增主键值,而不是生...

祖大俊
2016/05/11
890
3

没有更多内容

加载失败,请刷新页面

加载更多

如何使用 rsync 备份 Linux 系统的一些介绍

备份一直是 Linux 世界的热门话题。回到 2017,David Both 为 Opensource.com 的读者在使用 rsync 备份 Linux 系统方面提了一些建议,在这年的更早时候,他发起了一项问卷调查询问大家,在 ...

Linux就该这么学
23分钟前
2
0
以太坊私有链搭建

https://blog.csdn.net/Blockchain_lemon/article/details/80589123

Moks角木
今天
3
0
自律给我自信-为什么要自律

为什么要自律 混一天和努力一天 看不到任何差别 3天看不到任何变化 7天也看不到任何效果 但是 1个月后, 会看到话题不同 3个月后, 会看到气场不同 6个月后, 会看到距离不同 3年后, 会看到...

周大壮
今天
4
0
读书replay计划说明

突然脑袋一闪,我有了这样一个主意:通过写博客的方式,将我阅读的书中的内容replay出来。 我一般会找着我感兴趣的书去读,一般也会读书中我感兴趣的章节,或者当下对我有用的章节,所以这个...

wanxiangming
今天
1
0
CentOS7安装xrdp环境可实现远程桌面访问

CentOS7安装xrdp环境可实现远程桌面访问 2018-07-14 06:39:28 分类:运维 阅读(2051) 评论(0) 在"Ubuntu系统安装xrdp桌面客户端及实现远程连接桌面"文章中有分享过在Ubuntu系统中安装XRDP环境...

linjin200
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部