step1:构造连接
ClassforName("commysqljdbcDriver");
Connection con = DriverManagergetConnection("jdbc:mysql://127001:3306/db","root","123");
step2:构造语句
String sql = "select username,password from t_user where username=";
PreparedStatement stmt = conprepareStatement(sql);
stmtsetString(1, "zhangshan"); //给SQL的""(问号)传值。
step3:执行查询
ResultSet rs = stmtexecuteQuery(); //rs就是SQL查询语句返回的结果集
step4:处理结果(java 获取SQL查询语句返回的结果)
List list = new ArrayList();
//遍历结果集,这样写就可以了,就是一个循环,有多少条记录,这里就会循环多少次,
//一次就是一条记录,想像一下就像一个表的一条记录
//在这里可以做查询出来的数据处理,可以封装成对象之类的(就是把值给它)
if(rsnext()) { //遍历结果集,这样写就可以了
User u = new User();
String username = rsgetString("username");
String address = rsgetString("password ");
usetUsername(username);
usetAddress(address);
listadd(u);
}
//上面这个例子意思是,把每一条记录封装成了一个User对象,然后这些User对象都放存入到了一个list
step4:关闭连接等
读取mysql数据库文本字段的值方法如下:
publicvoidread(){
try{
//连接数据库
conn=JdbcUtils();
//查询resume字段,text格式
Stringsql="selectresumefromtestclobwhereid=1";
pt=conn(sql);
//执行查询并返回结果
rs=pt();
if(rsnext()){
//rs读取该字段
Readerreader=rs("resume");
//定义字符数组来存放读取值
charbuffer[]=newchar[1024];
while((readerread(buffer))!=-1){
//打印
Systemoutprintln(buffer);
}
readerclose();
}
}catch(Exceptione){
e();
}finally{
JdbcUtilsrelease(conn,pt,rs);
}
}
两种方式
第一步先执行这个if(rsnext()) 然后是下面的
第一种
rsget(0) 第一个字段
rsget(1)第二个字段
第二种
rsget('name') 此处的字段名称以实际为准
rsget('sex') 此处的字段名称以实际为准
USERS表是建立在那个Schema上的,把Schema的名字也加到SQL语句上,“select from SchemaUSERS”
下面是SQLSTATE=42704的解释。
SQL0204N "<名称>" 是一个未定义的名称。
解释:
此错误由以下之一引起:
o 未在数据库中定义由 "<名称>" 标识的对象。
o 在表上未定义由 "<名称>" 标识的数据分区。
o 正在使用某个数据类型。此错误可能是由于下
列原因而发生的:
- 如果 "<名称>"
是限定名称,则具有此名称的数据类型在数据
库中不存 在。
- 如果 "<名称>"
是非限定名称,则用户的函数路径不包含期望
的数据类 型所属于的模式。
- 该数据类型在创建时间戳记早于程序包绑定时
间的数据库中不存在(适用于静态语句)。
- 如果数据类型在 CREATE TYPE 语句的 UNDER
子句中,则该类型名可能与正定义的类型相同
,这 是无效的。
o 下列其中一项中正在引用某个函数:
- DROP FUNCTION 语句
- COMMENT ON FUNCTION 语句
- CREATE FUNCTION 语句的 SOURCE 子句
如果 "<名称>"
是限定名称,则函数不存在。如果
"<名称>"
是非限定名称,则当前函数路径的任何模式中
都不存 在
此名称的函数。注意,函数不能以
COALESCE、 NULLIF 或 VALUE
内置函数作为源函数。
o 在 CREATE SECURITY LABEL COMPONENT 语句中 UNDER
子句右边使用了名为“名称”的元素,但尚未
将该 元素定义为 ROOT
或者在其他某个元素下方(UNDER)。
o 下列其中一个标量函数指定了“名称”标识的
安全策略,但在数据库中未定义该安全策略。
- SECLABEL
- SECLABEL_TO_CHAR
- SECLABEL_BY_NAME
可为任何类型的数据库对象生成此返回码。
联合系统用户:在数据库中未定义由 "<名称>"
标识的对象,或者 "<名称>" 不是 DROP NICKNAME
语句中的昵称。
某些数据源不向 "<名称>"
提供适当的值。在这些情况下,消息标记将具有以下格
式: "OBJECT:<数据源>
TABLE/VIEW",指示指定数据源的实际值未知。
不能处理该语句。
用户响应:
确保在 SQL 语句中正确指定了对象名(包括任何必需
的限定符),并且它存在。
如果该名称表示一个数据分区,则查询目录表
SYSCATDATAPARTITIONS
以找到一个表的所有数据分区。对于 SOURCE
子句中缺少的数据类型或函数,可能是该对象不存
在,或该对象处于某模式中,
以上就是关于jdbc中同时执行两条查询sql语句,获得结果怎么写全部的内容,包括:jdbc中同时执行两条查询sql语句,获得结果怎么写、读取mysql数据库文本字段的值方法(mysql获取表字段信息)、Java编程 如何获取从数据库中获取的一条数据中一个一个数据 啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)