JDBC学习总结(三)
package com.yyq.resultset;
import com.yyq.factory.CloseFactory;
import com.yyq.factory.ConnectionFactory;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* Created by gao on 16-4-13.
*/
public class ResultSetTest {
public static void testPager(int firstResult, int maxResults) {
Connection conn = ConnectionFactory.getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "select id,name,score,class from student";
try {
//可滚动的,只读的结果集
pstmt = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs = pstmt.executeQuery();
//光标移到最后一行
rs.absolute(-1); //rs.last();
//获取总记录数
int count = rs.getRow();
System.out.println("Recorder SUM:" + count);
//光标移到指定行的前一行
rs.absolute(firstResult - 1);
for (int i = 0; i < maxResults; i++) {
if (rs.next()) {
System.out.println(rs.getInt(1) + ", " + rs.getString(2) + ", " + rs.getString(4) + ", " + rs.getInt(3));
} else {
break;
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
CloseFactory.close(pstmt, conn);
}
}
public static void main(String[] args) {
ResultSetTest.testPager(6, 12);
}
}
package com.yyq.resultset;
import com.yyq.factory.CloseFactory;
import com.yyq.factory.ConnectionFactory;
import java.sql.*;
/**
* Created by gao on 16-4-13.
*/
public class ResultSetMetaDataTest {
public static void test() {
Connection conn = ConnectionFactory.getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "select * from student";
try {
//可滚动的,只读的结果集
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
//在结果集上获取元数据
ResultSetMetaData rsmd = rs.getMetaData();
int count = rsmd.getColumnCount(); //获取总列(字段)数
System.out.println("ColumnCount:" + count);
for (int i = 1; i <= count; i++) {
System.out.println("No:" + i);
System.out.println("Catalog Name:" + rsmd.getCatalogName(i));
System.out.println("Data Type Class:" + rsmd.getColumnClassName(i));
System.out.println("ColumnDisplaySize:" + rsmd.getColumnDisplaySize(i));
System.out.println("ColumnLabel:" + rsmd.getColumnLabel(i));
System.out.println("Column Type:" + rsmd.getColumnType(i));
System.out.println("Column Type Name:" + rsmd.getColumnTypeName(i));
System.out.println("Precision:" + rsmd.getPrecision(i));
System.out.println("Scale"+rsmd.getScale(i));
System.out.println("SchemaName:"+rsmd.getSchemaName(i));
System.out.println("Table Name:"+rsmd.getTableName(i));
System.out.println("IsAutoIncrement:"+rsmd.isAutoIncrement(i));
System.out.println("IsCurrency:"+rsmd.isCurrency(i));
System.out.println("IsNullable:"+rsmd.isNullable(i));
System.out.println("IsReadOnly:"+rsmd.isReadOnly(i));
System.out.println("isSearchable:"+rsmd.isSearchable(i));
System.out.println();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
CloseFactory.close(pstmt, conn);
}
}
public static void main(String[] args) {
ResultSetMetaDataTest.test();
}
}
JDBC学习总结(三)的更多相关文章
- JDBC学习笔记(三)
获取数据库的元信息metadata,里面有数据库特性的描述信息,如是否支持事务,是否支持批处理等. Connection conn = DriverManager.getConnection(url, ...
- Quartz定时任务学习(二)web应用/Quartz定时任务学习(三)属性文件和jar
web中使用Quartz 1.首先在web.xml文件中加入 如下内容(根据自己情况设定) 在web.xml中添加QuartzInitializerServlet,Quartz为能够在web应用中使用 ...
- MyBatis学习系列三——结合Spring
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring MyBatis在项目中应用一般都要结合Spring,这一章主要把MyBat ...
- JDBC学习笔记(2)——Statement和ResultSet
Statement执行更新操作 Statement:Statement 是 Java 执行数据库操作的一个重要方法,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句.Statement ...
- JDBC学习笔记(1)——JDBC概述
JDBC JDBC API是一个Java API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据.JDBC代表Java数据库连接. JDBC库中所包含的API任务通常与数据库使用: 连接到数 ...
- 【转】MyBatis学习总结(三)——优化MyBatis配置文件中的配置
[转]MyBatis学习总结(三)——优化MyBatis配置文件中的配置 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的con ...
- 【转】JDBC学习笔记(2)——Statement和ResultSet
转自:http://www.cnblogs.com/ysw-go/ Statement执行更新操作 Statement:Statement 是 Java 执行数据库操作的一个重要方法,用于在已经建立数 ...
- 【转】JDBC学习笔记(1)——JDBC概述
转自:http://www.cnblogs.com/ysw-go/ JDBC JDBC API是一个Java API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据.JDBC代表Java数据 ...
- jdbc学习总结
jdbc学习总结: 一.简介: jdbc,直译为java连接数据库.实际为java为很好的操作数据库而提供的一套接口,接口的实现(即驱动)由各个数据库厂商提供. 二.知识要点: 连接5要素,3 ...
随机推荐
- Python脚本控制的WebDriver 常用操作 <二十七> 文件下载
测试用例场景 webdriver允许我们设置默认的文件下载路径.也就是说文件会自动下载并且存在设置的那个目录中. Python脚本 测试用Python代码: # coding=gbk ''' Crea ...
- Jquery LigerUI框架学习(二)之Tree于Tab标签实现iframe功能
LigerUI框架Tree于Tab标签动态使用,当点击Tree后动态创建Tab标签,和通常用的iframe框架功能类似 Tree中的关键代码 //Tree初始化 $("#tree1" ...
- C# 命名参数【转】
命名参数(Named Arguments)就是说在调用函数时可以通过指定参数名称的方式来调用参数.它最大的好处就是方便调用参数时按调用者的需要来排列顺序,而不必死守函数声明时的顺序(相对于“位置参数” ...
- java项目中读取src目录下的文件
private void getUser(String tmpfile){ Properties props = new Properties(); props.load(DbTask.class.g ...
- linux创建线程之pthread_create
说明:本文转自多线程编程之pthread_create函数应用,在此基础上笔者做了些许改动. pthread_create函数 函数简介 pthread_create是UNIX环境创建线程函数 头文件 ...
- View模版的设计
一个Action多套View模版的设计 回到目录 模块化 这个问题是在做模块化设计时出现的,在Lind.DDD.Plugins模块里,需要对应的模块实体,模块管理者,模块标识接口等,开发时,如果你 ...
- 让CALayer的shadowPath跟随bounds一起做动画改变-b
在iOS开发中,我们经常需要给视图添加阴影效果,最简单的方法就是通过设置CALayer的shadowColor.shadowOpacity.shadowOffset和shadowRadius这几个属性 ...
- 我今天坑了我们公司的IT程序猿。。。
今天在在公司邮箱发现了一个很神奇的事情! 同事的邮箱下面有个微博链接的签名. 光这个当然不是神器的,如果只是个图片加链接我也会,关键是他的这个链接和他的微博是实时交互的,他在微博上的状态会在链接里动态 ...
- 1934: [Shoi2007]Vote 善意的投票 - BZOJ
Description幼儿园里有n个小朋友打算通过投票来决定睡不睡午觉.对他们来说,这个问题并不是很重要,于是他们决定发扬谦让精神.虽然每个人都有自己的主见,但是为了照顾一下自己朋友的想法,他们也可以 ...
- 清除目录下的SVN信息
今天需要迁移一个版本库中的子目录到新的版本库中,以为不需要保留日志信息,所以只需拿最新的代码提交就可以. 对于清除目录下的SVN信息,在网上找一些方法,并实践执行了下: 在linux下 删除这些目录是 ...