我用myEclipse连接mysql数据库查询,为什么结果集什么都不显示,新手。。。

packageconnDB;importjava.sql.*;importjava.text.SimpleDateFormat;importjava.util.Date;... package connDB;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class connect {
//String getName="com.microsoft.jdbc.sqlserver.SQLSercerDriver";
//String getUrl="jdbc.microsoft.sqlserver://localhost:1433;DatabaseName=dbName";
public static String driver=("com.mysql.jdbc.Driver");
public static String url="jdbc:mysql://localhost:3306/user";
public static String user="sa";
public static String password="jiahuime";

Connection conn=null;
Statement stat=null;

public void con(){
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,"root","jiahuime");
stat=conn.createStatement();
}
catch(Exception e){
e.printStackTrace();
}

//System.out.println(conn);
try{
conn.close();
}
catch(SQLException se){
se.printStackTrace();
}
}

public String select(String s){
String str=null;
String sql="select * from userinfo";
try{
ResultSet rs=stat.executeQuery(sql);
while(rs.next()){

String name=rs.getString(1);
//String date=rs.getString(2);
//str=(str+rs.getString(1)+rs.getString(2));
System.out.println("jieguo"+name);
}
}
catch(SQLException se){
se.printStackTrace();}
return str;

}

public static void main(String args[]){

//Date date=new Date();
//String sql="insert into userinfo values(null,'123','"+date+"')";

}
}
展开
 我来答
kaito_2st
2012-03-20 · TA获得超过181个赞
知道答主
回答量:116
采纳率:0%
帮助的人:68万
展开全部
主要原因main方法什么都没有
你得先调用con()获得statement 然后调用
然后调select方法,才能显示结果,
你的select方法的参数s没起作用,你是不是想传sql?而且没有写return
那你main方法
new con();
select(sql);就可以l了
更多追问追答
追问
用你的方法出错了。。Exception in thread "main" java.lang.NullPointerException
追答
好吧 我的问题 那个select方法根本不能获取connection和statement
Connection conn=null;
Statement stat=null;
加static
static Connection conn=null;
static Statement stat=null;
main里面这样写
new ProTest().con();
new ProTest().select();
三月的风吟
2012-03-22 · 超过10用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:23.5万
展开全部
真是弱爆了。
1.创建连接的代码和关闭连接的代码请分别写成单独的静态方法,这样好调用。
2.public String select(String s)这个方法里都没出现对创建连接的方法调用,怎么就用起了stat这个变量,况且你的Statement定义的变量还不是静态的。不过没必要写成静态的。

按我的第一步写,然后在select方法里调用创建连接的静态方法,查询显示结果后在调用关闭连接的静态方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kjhgop
2012-03-20
知道答主
回答量:5
采纳率:0%
帮助的人:4665
展开全部
确定你数据库中是否有user库,确认有userinfo表,确认表中有数据。在select(String s)方法中先调用con()方法,否则无法执行stat=conn.createStatement();stat对象处于null状态是无法执行数据库语句的。在外部调用select(String s)应该是会有结果的。其次发现楼主很多变量没使用,逻辑很混乱。建议如下修改:
package connDB;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class connect {
public static String driver=("com.mysql.jdbc.Driver");
public static String url="jdbc:mysql://localhost:3306/user";
public static String user="root";
public static String password="jiahuime";

public Statement con(){
Connection conn=null;
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,user,password);
return conn.createStatement();
}
catch(Exception e){
e.printStackTrace();
}catch(SQLException se){
se.printStackTrace();
}finally{
conn.close();
}
}

public void select(){
String sql="select * from userinfo";
Statement stat=con();
try{
ResultSet rs=stat.executeQuery(sql);
while(rs.next()){
String name=rs.getString(1);
System.out.println("jieguo"+name);
}
}
catch(SQLException se){
se.printStackTrace();
}finally{
rs.close();
stat.close();
}
}

public static void main(String args[]){

select();

}
}
追问
你写的这个有错误啊、、
追答
package connDB;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class connect {
public static String driver=("com.mysql.jdbc.Driver");
public static String url="jdbc:mysql://localhost:3306/user";
public static String user="root";
public static String password="jiahuime";

public void con(){
Connection conn=null;
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,user,password);
Statement ss = conn.createStatement();
select(ss);

}
catch(Exception e){
e.printStackTrace();
}catch(SQLException se){
se.printStackTrace();
}finally{
conn.close();
}
}

public void select(Statement stat){
String sql="select * from userinfo";
try{
ResultSet rs=stat.executeQuery(sql);
while(rs.next()){
String name=rs.getString(1);
System.out.println("jieguo"+name);
}
}
catch(SQLException se){
se.printStackTrace();
}finally{
rs.close();
stat.close();
}
}

public static void main(String args[]){

con();

}
}

上次代码没放到IDE里看,随手敲的,没看清。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式