首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

Java JDBC连接SQLserver 查询语句的有关问题

2013-04-09 
Java JDBC连接SQLserver 查询语句的问题package simpleimport java.sql.*public class T{public static

Java JDBC连接SQLserver 查询语句的问题
package simple;
import java.sql.*;   

public class T{  

public static void main(String[] args) 
{
String JDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";//SQL数据库引擎
String connectDB="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Mydb";//数据源
try
{
Class.forName(JDriver);//加载数据库引擎,返回给定字符串名的类
}catch(ClassNotFoundException e)
{
//e.printStackTrace();
System.out.println("加载数据库引擎失败");
System.exit(0);
}     
System.out.println("数据库驱动成功");

try
{
char id = '2';
String user="sa";
String password="sa";
Connection con=DriverManager.getConnection(connectDB,user,password);//连接数据库对象
System.out.println("连接数据库成功");
Statement stmt=con.createStatement();//创建SQL命令对象
/*//创建表
System.out.println("开始创建表");
String query="create table TABLE1(ID NCHAR(2),NAME NCHAR(10))";//创建表SQL语句
stmt.executeUpdate(query);//执行SQL命令对象
System.out.println("表创建成功");

//输入数据
System.out.println("开始插入数据");
String a1="INSERT INTO TABLE1 VALUES('1','旭哥')";//插入数据SQL语句
String a2="INSERT INTO TABLE1 VALUES('2','伟哥')";
String a3="INSERT INTO TABLE1 VALUES('3','张哥')";
stmt.executeUpdate(a1);//执行SQL命令对象
stmt.executeUpdate(a2);   
stmt.executeUpdate(a3);
System.out.println("插入数据成功");
*/
//读取数据
System.out.println("开始读取数据");
ResultSet rs=stmt.executeQuery("SELECT * FROM TABLE1 WHERE ID=id");//返回SQL语句查询结果集(集合)
//循环输出每一条记录
//while(rs.next())
//{
////输出每个字段
System.out.println(rs.getString("ID")+"\t"+rs.getString("NAME"));
//}
System.out.println("读取完毕");

//关闭连接
stmt.close();//关闭命令对象连接
con.close();//关闭数据库连接
}
catch(SQLException e)
{
e.printStackTrace();
//System.out.println("数据库连接错误");
System.exit(0);
}
}



我想实现查询一个id=2的信息,数据库里面两个列的属性都是nchar,运行后报错
Java JDBC连接SQLserver 查询语句的有关问题
请问该怎么弄?
[解决办法]
把rs.next()注释解开,
ID = id 改成 ID = '2'


//读取数据
System.out.println("开始读取数据");
ResultSet rs=stmt.executeQuery("SELECT * FROM TABLE1 WHERE ID='2'");//返回SQL语句查询结果集(集合)
//循环输出每一条记录
 while(rs.next())
 {
 //输出每个字段
System.out.println(rs.getString("ID")+"\t"+rs.getString("NAME"));
 }
System.out.println("读取完毕");

[解决办法]
你应该先判断rs是否为空rs.next(),然后才可以取得的值;
你可以用if或者while都可以判断是否为空,然后在获取对应字段值!

热点排行