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

时间:2020-11-29 04:29:54
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 查询语句的问题
请问该怎么弄?

10 个解决方案

#1


ResultSet rs=stmt.executeQuery("SELECT * FROM TABLE1 WHERE ID= id");

你这……数据库有ID=id的记录吗?没有就报错了,把id改为2

#2


还是错的, Java JDBC连接SQLserver 查询语句的问题
Java JDBC连接SQLserver 查询语句的问题这是数据库截图, Java JDBC连接SQLserver 查询语句的问题新出错。
我想要的是一个方法,值传递后,在数据库中查找这个值。

#3


id='2'试试,因为你的是char类型,不是Integer类型

#4


记录里只有1,2,3,哪里来的id?怎么还不明白

#5


Java JDBC连接SQLserver 查询语句的问题Java JDBC连接SQLserver 查询语句的问题
还是错的,帮我看下,我现在要上课去了,中午回来再试,谢谢。

#6


不知道你给2加个引号搞啥。

#7


把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("读取完毕");

#8


不知道解决了没。
你刚插入,然后就去查询,这样没有意思。 数据是需要持久化到数据库中,你需要重新链接就能查询出来了。jdbc的效率还是很快的。

#9


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

#10


除去注释,就可以了。但是如果我现在不知道ID值是多少,从其他方法导入ID值,在进行查询该怎么做?

#1


ResultSet rs=stmt.executeQuery("SELECT * FROM TABLE1 WHERE ID= id");

你这……数据库有ID=id的记录吗?没有就报错了,把id改为2

#2


还是错的, Java JDBC连接SQLserver 查询语句的问题
Java JDBC连接SQLserver 查询语句的问题这是数据库截图, Java JDBC连接SQLserver 查询语句的问题新出错。
我想要的是一个方法,值传递后,在数据库中查找这个值。

#3


id='2'试试,因为你的是char类型,不是Integer类型

#4


记录里只有1,2,3,哪里来的id?怎么还不明白

#5


Java JDBC连接SQLserver 查询语句的问题Java JDBC连接SQLserver 查询语句的问题
还是错的,帮我看下,我现在要上课去了,中午回来再试,谢谢。

#6


不知道你给2加个引号搞啥。

#7


把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("读取完毕");

#8


不知道解决了没。
你刚插入,然后就去查询,这样没有意思。 数据是需要持久化到数据库中,你需要重新链接就能查询出来了。jdbc的效率还是很快的。

#9


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

#10


除去注释,就可以了。但是如果我现在不知道ID值是多少,从其他方法导入ID值,在进行查询该怎么做?