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连接数据库,查询功能怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)