为什么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 展开
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 展开
展开全部
把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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询