为什么java连接数据库后查询的结果与预期的结果不一致,并且简单的查询结果执行很慢?

为什么java连接数据库后查询的结果与预期的结果不一致,并且简单的查询结果执行很慢?代码如下:packagepackage2;importjava.sql.*;publi... 为什么java连接数据库后查询的结果与预期的结果不一致,并且简单的查询结果执行很慢?代码如下:
package package2;
import java.sql.*;
public class Query1 {
String datasources;
String tablename;
String SQL;
int columu;
public Query1(String datasource,String tablename,String SQL,int column){
this.datasources=datasource.trim();
this.tablename=tablename.trim();
this.SQL=SQL.trim();
this.columu=column;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){
System.out.println(e);
}
}
public void queryInputResult(){
Connection con;
Statement statement;
ResultSet re;
String uri="jdbc:odbc:"+datasources;
try{
con=DriverManager.getConnection(uri,"sa","6308742742hanweiwei");
statement=con.createStatement();
re=statement.executeQuery(SQL);
while(re.next()){
for(int k=1;k<=columu;k++)
System.out.print("***** "+re.getString(k)+"***** ");
System.out.println("");
}
con.close();
}
catch(SQLException e){
System.out.println("请输入正确的表名"+e);
}
}
}

package package2;

public class 数据库编程1 {
public static void main(String args[]){
String datasources="mydata1";
int column=3;
String SQL="SELECT Cno 课程编号 Cname 课程名 Credit 学分 FROM Course";
String tablename="Course";
Query1 query=new Query1(datasources,tablename,SQL,column);
query.queryInputResult();
}
}
预期执行结果:
课程编号 课程名 学分
1***** 数据库***** 4
2***** JAVA****** 3
3***** 离散数学***** 3
4***** 马原***** 6
实际执行结果:1数据库4
2JAVA3
3离散数学3
4马原6
展开
 我来答
百度网友8a627e7
推荐于2017-10-06 · TA获得超过304个赞
知道小有建树答主
回答量:705
采纳率:50%
帮助的人:462万
展开全部
把Connection con;
保存为类变量,只调用,或者使用池

查询慢就是因为连接数据库需要时间,主要的时候就花费在建立连接上面了
追问
把它设定为static Connection con 还是行不通啊?可以说具体点吗?我是一只小菜鸟,又如何解决连接慢的问题呢?
追答
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DbDemo {
static final String uri = "jdbc:odbc:mydata1";
static final String user = "sa";
static final String pwd = "6308742742hanweiwei";
static Connection con = null;
static final SimpleDateFormat sdf = new SimpleDateFormat(
"yyyyMMddhhmmssSSS");

public void Query(String sql) throws Exception {
Statement statement = con.createStatement();
ResultSet re = statement.executeQuery(sql);
while (re.next()) {
for (int k = 1; k <= re.getMetaData().getColumnCount(); k++)
System.out.print("***** " + re.getString(k) + "***** ");
}
re.close();
statement.close();
re = null;
statement = null;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式