java怎样通过查询语句获得数据库里的数据

java怎样通过查询语句获得数据库里的数据,第1张

Statement stm=conncreateStatement();

ResultSet rs=stmexecute("查询语句");

他会返回一个ResultSet 结果集

然后通过rsnext()方法便利结果集中的值

代码示例:

ClassforName("驱动地址");

Connection con=DriverManagergetConnection("数据库地址","用户名","密码");

Statement stm=concreateStatement();

ResultSet rs=stmexecute("查询语句");

while(rsnext()){

String str=rsgetString("对应的列名");

String str1=rsgetString(2);

int i=rsgetInt(3);

}

获得某表所有列的信息:

String sql = select from tname;//tname为某一表名

Connection conn = ;

Statement st = conncreateStatement();

ResultSet rs = strs = stexecuteQuery(sql);

ResultSetMetaData rsmd = rsgetMetaData();

int colcount = rsmdgetColumnCount();//取得全部列数

for(int i=0;i<colcount;i++){

String colname = rsmdgetColumnName(i);//取得全部列名

}

以上为某表字段具体查询,如果是查询表的信息,如在mysql服务器上那样的查询结果的话,可以用一下代码:

ResultSetexecuteQuery("show tables")可以的到所有的表信息。

ResultSetexecuteQuery("describe tname")可以得到表的字段信息。//tname为表名

ps :同样适用于jsp。

public class JdbcNoarg {

//查询一行数据

public void getQueryNoargOne(){

JdbcMysqlPool jdbc = new JdbcMysqlPool();

Connection con=null;

Statement st = null;

String sql;

ResultSet rst = null;

try {

//获取数据库连接

con = jdbcgetConnection();

//在连接里打开一条通道createStatement,返回Statement对象

st = concreateStatement();

sql = "select from student";

//把我们想要结果sql语句发送给数据库,数据库返回的数据用java ResultSet来接收

rst= stexecuteQuery(sql);

//获取结果集的第一行数据9

rstfirst();

//获取结果集指定列的数据

String name = rstgetString("name");

String interest = rstgetString("interest");

Systemoutprintln("name:"+name+";interest:"+interest);

} catch (Exception e) {

eprintStackTrace();

}finally {

try {

if(rst!=null)

rstclose();

if(st!=null)

stclose();

if(con!=null)

conclose();

} catch (Exception e2) {

e2printStackTrace();

}

}

}

import javasqlConnection;

import javasqlDriverManager;

import javasqlPreparedStatement;

import javasqlResultSet;

import javasqlSQLException;

//stmtexecuteUpdate("create table People(name varchar(255),A int,B int)");

//stmtexecuteUpdate("insert into People values('张三',1,0)");

//stmtexecuteUpdate("insert into People values('李四',2,1)");

//stmtexecuteUpdate("insert into People values('王五',3,1)");

//stmtexecuteUpdate("insert into People values('赵云',4,2)");

//stmtexecuteUpdate("insert into People values('张飞',5,3)");

public class Test {

private static void query(Connection conn,String sql,int a) {

PreparedStatement stmt = null;

ResultSet rs = null;

try {

stmt = connprepareStatement(sql);

stmtsetInt(1, a);

rs = stmtexecuteQuery();

while (rsnext()) {

Systemoutprintln(rsgetString("name")+":"+rsgetInt("A"));

query(conn,sql,rsgetInt("A"));

}

} catch (SQLException e) {

eprintStackTrace();

} finally {

if (rs != null) {

try {

rsclose();

rs=null;

Systemoutprintln(a+":rs closed");

} catch (SQLException e) {

eprintStackTrace();

}

}

if (stmt != null) {

try {

stmtclose();

stmt=null;

Systemoutprintln(a+":stmt closed");

} catch (SQLException e) {

eprintStackTrace();

}

}

}

Systemoutprintln("===============================");

}

public static void main(String[] args) {

Connection conn = null;

try {

conn = DriverManagergetConnection("jdbc:derby:E:/Derby/test");

String sql="select from people where B=";

query(conn,sql, 1);

} catch (SQLException e) {

eprintStackTrace();

} finally {

if (conn != null) {

try {

connclose();

Systemoutprintln("Connection关闭。");

} catch (SQLException e) {

eprintStackTrace();

}

}

}

}

}

不建议这样做,一般不符合开发规范,如果这样的话,你想想在业务量多的情况下,多个线程如果不控制,数据库连接会将数据库服务器爆掉的,会影响业务的

常规做法:数据库连接池(durid了解一下),据某些统计哈,真正用来做查询的资源不超过整个查询数据库的生命周期的30%,大部分时间都用开创建连接关闭连接等 *** 作,如果这个时候建立数据库连接池的话,可以有效的将这部分时间释放掉

以上就是关于java怎样通过查询语句获得数据库里的数据全部的内容,包括:java怎样通过查询语句获得数据库里的数据、java如何查询数据库某表某列的所有值、JAVA连接数据库,查询功能怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9789762.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存