❶ java 如何获取ResultSet 中各项的数据类型
JAVA中Resultset是一个类 而不是一个方法。记住啊。
结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等。
结果集读取数据的方法主要是getXXX(),它的参数可以是整型,表示第几列(是从1开始的),还可以是列名。返回的是对应的XXX类型的值。如果对应那列时空值,XXX是对象的话返回XXX型的空值,如果XXX是数字类型,如Float等则返回0,boolean返回false。使用getString()可以返回所有的列的值,不过返回的都是字符串类型的。XXX可以代表的类型有:基本的数据类型如整型(int),布尔型(Boolean),浮点型(Float,Double)等,比特型(byte),还包括一些特殊的类型,如:日期类型(java.sql.Date),时间类型(java.sql.Time),时间戳类型(java.sql.Timestamp),大数型(BigDecimal和BigInteger等)等。还可以使用getArray(int colindex/String columnname),通过这个方法获得当前行中,colindex所在列的元素组成的对象的数组。使用getAsciiStream(
int colindex/String colname)可以获得该列对应的当前行的ascii流。也就是说所有的getXXX方法都是对当前行进行操作。
结果集从其使用的特点上可以分为四类,这四类的结果集的所具备的特点都是和Statement语句的创建有关,因为结果集是通过Statement语句执行后产生的,所以可以说,结果集具备何种特点,完全决定于Statement,当然我是说下面要将的四个特点,在Statement创建时包括三种类型。首先是无参数类型的,他对应的就是下面要介绍的基本的ResultSet对应的Statement。下面的代码中用到的Connection并没有对其初始化,变量conn代表的就是Connection对应的对象。SqlStr代表的是响应的SQL语句。
1、 最基本的ResultSet。
之所以说是最基本的ResultSet是因为,这个ResultSet他起到的作用就是完成了查询结果的存储功能,而且只能读去一次,不能够来回的滚动读取。这种结果集的创建方式如下:
Statement st = conn.CreateStatement
ResultSet rs = Statement.excuteQuery(sqlStr);
由于这种结果集不支持,滚动的读去功能所以,如果获得这样一个结果集,只能使用它里面的next()方法,逐个的读去数据。
2 可滚动的ResultSet类型。
这个类型支持前后滚动取得纪录next()、previous(),回到第一行first(),同时还支持要去的ResultSet中的第几行absolute(int n),以及移动到相对当前行的第几行relative(int n),要实现这样的ResultSet在创建Statement时用如下的方法。
Statement st = conn.createStatement(int resultSetType, int resultSetConcurrency)
ResultSet rs = st.executeQuery(sqlStr)
其中两个参数的意义是:
resultSetType是设置ResultSet对象的类型可滚动,或者是不可滚动。取值如下:
ResultSet.TYPE_FORWARD_ONLY只能向前滚动
ResultSet.TYPE_SCROLL_INSENSITIVE和Result.TYPE_SCROLL_SENSITIVE这两个方法都能够实现任意的前后滚动,使用各种移动的ResultSet指针的方法。二者的区别在于前者对于修改不敏感,而后者对于修改敏感。
resultSetConcurency是设置ResultSet对象能够修改的,取值如下:
ResultSet.CONCUR_READ_ONLY 设置为只读类型的参数。
ResultSet.CONCUR_UPDATABLE 设置为可修改类型的参数。
所以如果只是想要可以滚动的类型的Result只要把Statement如下赋值就行了。
Statement st = conn.createStatement(Result.TYPE_SCROLL_INSENITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs = st.excuteQuery(sqlStr);
用这个Statement执行的查询语句得到的就是可滚动的ResultSet。
3、 可更新的ResultSet
这样的ResultSet对象可以完成对数据库中表的修改,但是我知道ResultSet只是相当于数据库中表的视图,所以并不时所有的ResultSet只要设置了可更新就能够完成更新的,能够完成更新的ResultSet的SQL语句必须要具备如下的属性:
a、只引用了单个表。
b、不含有join或者group by子句。
c、那些列中要包含主关键字。
具有上述条件的,可更新的ResultSet可以完成对数据的修改,可更新的结果集的创建方法是:
Statement st = createstatement(Result.TYPE_SCROLL_INSENSITIVE,Result.CONCUR_UPDATABLE)
4、 可保持的ResultSet
正常情况下如果使用Statement执行完一个查询,又去执行另一个查询时这时候第一个查询的结果集就会被关闭,也就是说,所有的Statement的查询对应的结果集是一个,如果调用Connection的commit()方法也会关闭结果集。可保持性就是指当ResultSet的结果被提交时,是被关闭还是不被关闭。JDBC2.0和1.0提供的都是提交后ResultSet就会被关闭。不过在JDBC3.0中,我们可以设置ResultSet是否关闭。要完成这样的ResultSet的对象的创建,要使用的Statement的创建要具有三个参数,这个Statement的创建方式也就是,我所说的Statement的第三种创建方式。如下:
Statement st=createStatement(int resultsetscrollable,int resultsetupdateable,int resultsetSetHoldability)
ResultSet rs = st.excuteQuery(sqlStr);
前两个参数和两个参数的createStatement方法中的参数是完全相同的,这里只介绍第三个参数:
resultSetHoldability表示在结果集提交后结果集是否打开,取值有两个:
ResultSet.HOLD_CURSORS_OVER_COMMIT:表示修改提交时,不关闭数据库。
ResultSet.CLOSE_CURSORS_AT_COMMIT:表示修改提交时ResultSet关闭。
❷ \请问java中如何获得数据类型
您好,提问者:
//如果要得到一个类的具体什么类型,需要进行反射操作,实例代码:
Stringstr="123";
System.out.println(str.getClass().getName());
输出:java.lang.String
可以查看一下API文档
❸ java中的数据类型
java中的数据类型分两大类分别是基本类型和引用数据类型。
一、基本类型
1)Java中的数据类型有八种,即基本类型。具体如下:
数据类型 位数 取值范围:
Boolean 1 True|False
Byte 8 -128~127
Short 16 -32768~32767
Int 32 -2e31~2e31-1
Long 64 -2e63~2e63-1
Float 32 略
Double 64 略
Char 16 0~65535
‘ /u0000’ ~’uFFFF‘
二、引用数据类型
1)定义一个byte变量 如:byte b= -256;
由于-256超出了’Byte’的取值范围,所以要使程序不报错,有一下几种解决方法:
A:更改变量的数据类型(如:将byte改为int);
B:更改变量名的赋值,使其包括在变量的数据类型的值域内;
C:进行强制转换:如: byte b=(byte)-256:
‘进行强制转换后,虽然程序不在报错,但是有可能会使原值的精度收到影响’
D:定义一个浮点类型数时,记得要在数值的后面加上“f”或“F”。(如:Float f=10000.0f;)
E:若定义 Char c=a;定义 int n=c;则输出的n值为“a“的ASCII值,即97。
2)引用数据类型的定义
A:对象都是引用数据类型
B:应用类型使用NEW调用构造方法进行赋值
C:在Java中,除了基本数据类型以外,其余的全都属于引用数据类型, 如:
a:API中的类,如String,File等;
b:数据;
c:自定义的类,如Cars,Student
d:对象全部是引用数据类型。
(3)java如何显示数据类型扩展阅读
其他数据类型:
在java中,String本身也提供了很多的方法供我们使用:
获取到指定索引位置的字符:char c = 字符串.charAt(索引位置);
获取到指定索引位置的字符:char c = 字符串.charAt(索引位置);
获取第一次出现在字符串中的字符:int index = 字符串.index('a');
获取在字符串中字符的索引位置:int index = 字符串.index('a',1);
如果想比较两个字符串是否相等:字符串.equeals(字符串);
判断字符串是否为空:字符串.isEmpty();
获取字符串的长度:字符串.length();
根据某一个条件,将字符串进行分割:字符串.split("abc");
根据条件取出内容:字符串.substring(开始位置,结束位置);
❹ java 获取对象的数据类型的方法
使用getClass方法可以获取一个对象的类型类,然后在调用该类的方法可以获取该类的相关信息,比如父类的名字,该类的名字等等:
packagetest;
importjava.lang.reflect.Field;
importjava.lang.reflect.Method;
publicclassDemo2{
Stringusername="sss";
publicstaticvoidmain(String[]args),IllegalAccessException,NoSuchFieldException,SecurityException,NoSuchMethodException{
Demo2t=newDemo2();
if(Demo2.class==t.getClass()){
System.out.println("equal");
}
//获取类名
System.out.println(t.getClass().getName());
//获取父类名
System.out.println(t.getClass().getSuperclass());
//获取类中某个属性
Fieldf=t.getClass().getField("username");
//获取类中某个方法
Methodm=t.getClass().getDeclaredMethod("main",String[].class);
}
}
❺ java怎么判断一个数据是什么类型
先得到对象的类字节码Class对象,通过Class对象再得到类型,而后进行判断是不原始类型方法可能是isPrimitive或数组isArray()。