我想用JAVA来实现一个查询功能,用户可以输入查询的条件,比如工号、姓名等,代码如下:
import java.io.*;
import java.sql.*;
public class selectHR_employee
{
public static void main(String args[]) throws Exception
{
byte aArray[]=new byte[128];
System.out.println("Please Enter the EmpID:");
System.in.read(aArray);
String id=new String(aArray);
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:SQLServer","","");
Statement stmt=conn.createStatement();
ResultSet rst=stmt.executeQuery("select EmpID,EmpName,Birthday,IDcard,CardNo,EmerAddress from HR_employee where EmpID=id");
while(rst.next())
{
System.out.println(rst.getString(1)+" "+rst.getString(2)+" "+rst.getString(3)
+" "+rst.getString(4)+" "+rst.getString(5)+" "+rst.getString(6));
}
rst.close();
conn.close();
}
}其中id用来记录输入数据,这样写不知对不对?
byte aArray[]=new byte[128];
System.out.println("Please Enter the EmpID:");
System.in.read(aArray);
String id=new String(aArray);
这样id变量为一字符串,在SQL查询中加了where EmpID=id,可是执行时提示错误,Exception in thread "main" java.sql.SQLException: [Microsoft][ODBC SQL Server Dr
iver][SQL Server]無效的資料行名稱 'id'。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(Unknown Source)
at selectHR_employee.main(selectHR_employee.java:15)请问该怎么写?如果要查询的是int或者其它类型应该怎么办?请高手指教,小弟是初学者,谢谢!
import java.io.*;
import java.sql.*;
public class selectHR_employee
{
public static void main(String args[]) throws Exception
{
byte aArray[]=new byte[128];
System.out.println("Please Enter the EmpID:");
System.in.read(aArray);
String id=new String(aArray);
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("jdbc:odbc:SQLServer","","");
Statement stmt=conn.createStatement();
ResultSet rst=stmt.executeQuery("select EmpID,EmpName,Birthday,IDcard,CardNo,EmerAddress from HR_employee where EmpID=id");
while(rst.next())
{
System.out.println(rst.getString(1)+" "+rst.getString(2)+" "+rst.getString(3)
+" "+rst.getString(4)+" "+rst.getString(5)+" "+rst.getString(6));
}
rst.close();
conn.close();
}
}其中id用来记录输入数据,这样写不知对不对?
byte aArray[]=new byte[128];
System.out.println("Please Enter the EmpID:");
System.in.read(aArray);
String id=new String(aArray);
这样id变量为一字符串,在SQL查询中加了where EmpID=id,可是执行时提示错误,Exception in thread "main" java.sql.SQLException: [Microsoft][ODBC SQL Server Dr
iver][SQL Server]無效的資料行名稱 'id'。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(Unknown Source)
at selectHR_employee.main(selectHR_employee.java:15)请问该怎么写?如果要查询的是int或者其它类型应该怎么办?请高手指教,小弟是初学者,谢谢!
Please Enter the EmpID:
21308
Exception in thread “main” java.sql.SQLExceiption:[Microsoft][ODBC SQL Server Driver][SQL Server]遺漏字元字串’21308’前面的引號。
不是已经很清楚了吗
Please Enter the EmpID:
21308Exception in thread "main"java.sql.SQLException:[Microsoft][ODBC SQL Server Dr
iver][SQL Server]遺漏字元串'21308'我也是那样想的,可是执行时出现上面的错误!
你不妨先在数据库里执行
select EmpID,EmpName,Birthday,IDcard,CardNo,EmerAddress from HR_employee where EmpID='id'
若通过则
ResultSet rst=stmt.executeQuery("select EmpID,EmpName,Birthday,IDcard,CardNo,EmerAddress from HR_employee where EmpID='"+id+"'");
若id字段为number
select EmpID,EmpName,Birthday,IDcard,CardNo,EmerAddress from HR_employee where EmpID=id
ResultSet rst=stmt.executeQuery("select EmpID,EmpName,Birthday,IDcard,CardNo,EmerAddress from HR_employee where EmpID="+id);
select EmpID,EmpName,Birthday,IDcard,CardNo,EmerAddress from HR_employee where EmpID='21308'
.
.
1.String sql="select EmpID,EmpName,Birthday,IDcard,CardNo,EmerAddress from
HR_employee where EmpID="+s;
2.System.out.println(sql);
3.ResultSet rst=stmt.executeQuery(sql);已经测试通过的,你自己再试试。。
已经成功!谢谢!
不过又有一个问题,当我输入别人的工号时却查不到!
F:\java>java selectHR_employee
Please Enter the EmpID:
21308
select EmpID,EmpName,Birthday,IDcard,CardNo,EmerAddress from HR_employee where E
mpID=21308
这条sql有错,你的EmpID字段是什么类型? Int?varchar?是数值的话
int id = 1;
String sql = "select EmpID,EmpName,Birthday,IDcard,CardNo,EmerAddress from HR_employee where EmpID="+id;即可如果是字符需要加''
String id = "001";
String sql = "select EmpID,EmpName,Birthday,IDcard,CardNo,EmerAddress from HR_employee where EmpID='"+id+"';
String id = "001";
String sql = "select EmpID,EmpName,Birthday,IDcard,CardNo,EmerAddress from HR_employee where EmpID='"+id+"';按照你这种写法就会出现下面的提示:Exception in thread "main"java.sql.SQLException:[Microsoft][ODBC SQL Server Dr
iver][SQL Server]遺漏字元串'21308'
String sql = "select EmpID,EmpName,Birthday,IDcard,CardNo,EmerAddress from HR_employee where EmpID="+id;
可以查到,可是输入别的工号就查不到了,真是邪!
我看资料上写如果是字符型应该这样:"sel.......where EmpID="+"'"+id+"'";我也觉得是这样,可是执行却现出什么遗漏引号!
select EmpID,EmpName,Birthday,IDcard,CardNo,EmerAddress from HR_employee where EmpID='21308
为什么会少一个单引号?我明明加进去了呀?????
我测试了一下,问题就出在System.int.read(aArray)上!请指教!