尚硅谷之JDBC

发布时间:2018年11月28日作者:yafei浏览次数:811

BeanHandler实现类

/*

 * BeanHandler: 把结果集的第一条记录转为创建 BeanHandler 对象时传入的 Class参数对应的对象.

 * 当JavaBean的属性名与字段名不一致时,可以通过指定别名告知属性名

 */

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

//1、连接池

DataSource ds = new ComboPooledDataSource(“mypool”);

//2、直接使用QueryRunner

QueryRunner qr = new QueryRunner(ds);

String sql = “select pid as id,pname,price,description from t_goods where pid =?”;

Goods goods = qr.query(sql, new BeanHandler<Goods>(Goods.class), 1);

System.out.println(goods);

}

BeanListHandler实现类

/*

 * BeanListHandler: 把结果集转为一个 List, 该 List 不为 null, 但可能为空集合(size() 方法返回 0) 若

 * SQL 语句的确能够查询到记录, List 中存放创建 BeanListHandler 传入的 Class对象对应的对象.

 */

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

//1、连接池

DataSource ds = new ComboPooledDataSource(“mypool”);

//2、直接使用QueryRunner

QueryRunner qr = new QueryRunner(ds);

String sql = “select pid as id,pname,price,description from t_goods”;

List<Goods> query = qr.query(sql, new BeanListHandler<Goods>(Goods.class));

for (Goods goods : query) {

System.out.println(goods);

}

}

MapHandler实现类

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

// 1、连接池

DataSource ds = new ComboPooledDataSource(“mypool”);

// 2、直接使用QueryRunner

QueryRunner qr = new QueryRunner(ds);

String sql = “select did,count(*) from employee where did = 1”;

Map<String, Object> map = qr.query(sql, new MapHandler());

Set<Entry<String, Object>> entrySet = map.entrySet();

for (Entry<String, Object> entry : entrySet) {

// System.out.println(entry.getKey() +”–>” + entry.getValue());

if (“did”.equals(entry.getKey())) {

System.out.println(“部门编号:” + entry.getValue());

} else {

System.out.println(“人数:” + entry.getValue());

}

}

}

MapListHandler实现类

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

//1、连接池

DataSource ds = new ComboPooledDataSource(“mypool”);

//2、直接使用QueryRunner

QueryRunner qr = new QueryRunner(ds);

String sql = “select did,count(*) from employee group by did”;

/*

 * did count(*)

 *  1   7

 *  2   3

 *  3   1

 *  

 *  List:

 *  map:

 *    key(did) value(1)

 *    key(count(*) value(7)

 * 第二行

 *  map:

 *    key(did) value(2)

 *    key(count(*) value(3)

 * 第三行

 * map:

 *    key(did) value(3)

 *    key(count(*) value(1)

 *

 */

List<Map<String, Object>> query = qr.query(sql, new MapListHandler());

for (Map<String, Object> map : query) {

Set<Entry<String, Object>> entrySet = map.entrySet();

for (Entry<String, Object> entry : entrySet) {

//System.out.println(entry.getKey() +”–>” + entry.getValue());

if(“did”.equals(entry.getKey())){

System.out.println(“部门编号:” + entry.getValue());

}else{

System.out.println(“人数:” + entry.getValue());

}

}

}

}

ScalarHandler实现类

/*

 * ScalarHandler: 把结果集转为一个数值(可以是任意基本数据类型和字符串, Date 等)返回

 * ScalarHandler()只取第一行第一列

 * ScalarHandler(int columnIndex):取第一行的第columnIndex列

 * ScalarHandler(String columnName):取第一行的列名为columnName列的值

 */

@Test

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

//1、连接池

DataSource ds = new ComboPooledDataSource(“mypool”);

//2、直接使用QueryRunner

QueryRunner qr = new QueryRunner(ds);

// String sql = “select count(*) from t_goods”;

String sql = “select max(price) from t_goods”;

Object query = qr.query(sql, new ScalarHandler());

System.out.println(query);

}


上一篇:
下一篇:
相关课程

java培训 大数据培训 前端培训 UI/UE设计培训

关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园2号楼3层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)

西安市高新区和发智能大厦(西安校区)