public ResultSet selectUser(String tableName, String userName, String passWd)
^这里是不是打了个回车? throws SQLException
^这里是不是打了个回车? throws SQLException
解决方案 »
- SimpleDateFormat 问题,setLenient(false)以后,解析出错
- java字符流问题
- 紧急求救!!!!
- 哪个java反编译器比较好?哪个反编译器支持的版本高?
- 求助?sql列名无效
- 一个关于线程概念的菜鸟问题?求救
- 我想用UML描述一个文件系统,想征集一些构思!
- 一个动态界面设计上的问题,可能关于JTextArea或者JScrollPane!!
- 誠心想問關于圖上面寫文字的問題!!!大家一起進了,在線等!!
- 香港公司购买一个在线 GAME 的软件,出价 3.5万-4万 ,用JAVA编写或类似技术,有大虾自己有现成可以出售吗?
- 一个简单的搜索变量的问题
- 如何关闭Connection与数据库的连接。
现在我把程序改成这样:
public ResultSet selectUser(String tableName, String userName, String passWd) throws SQLException{
String query = "SELECT username FROM " + tableName + " WHERE username=" +"'"+username+"'";
String query1= "select username from" + tableName + " WHERE username=" +"'"+username+"'"+"and password="+"'"+passWd+"'";
System.out.print(query + "\n");
ResultSet rs = stmt.executeQuery(query);
if (rs.getString(1)==null)
return -1;
else{
ResultSet rs = stmt.executeQuery(query1);
if (rs.getString(1)==null)
return -1;
else
return 1;
}
}还是报错如下:
$ javac ExecuteSQL2.java
ExecuteSQL2.java:50: illegal start of expression
public ResultSet selectUser(String tableName, String userNam
e, String passWd) throws SQLException{
^
1 error
“throws SQLException”确实有个回车,我现在把他们连上了,还是报错,咋回事?????
之后
要
rs.next();
然后再rs.getString();
public ResultSet selectUser(String tableName, String userName, String passWd) throws SQLException{
String query = "SELECT username FROM " + tableName + " WHERE username=" +"'"+username+"'";
String query1= "select username from" + tableName + " WHERE username=" +"'"+username+"'"+"and password="+"'"+passWd+"'";
System.out.print(query + "\n");
ResultSet rs = stmt.executeQuery(query);
rs.next();
if (rs.getString(1)==null)
return -1;
else{
ResultSet rs = stmt.executeQuery(query1);
rs.next();
if (rs.getString(1)==null)
return -1;
else
return 1;
}
}我改了,编译没用,还是报:
ExecuteSQL2.java:49: illegal start of expression
public ResultSet selectUser(String tableName, String userN
ame, String passWd) throws SQLException{这个错,就是说我写的方法的开始有错,那位能说说错在哪????????????
throws SQLException {
String query = "SELECT username FROM " + tableName
+ " WHERE username=" + "'" + username + "'";
String query1 = "select username from" + tableName
+ " WHERE username=" + "'" + username + "'" + "and password="
+ "'" + passWd + "'";
System.out.print(query + "\n");
ResultSet rs = stmt.executeQuery(query);
rs.next();
if (rs.getString(1) == null)
return -1; // 返回类型是 ResultSet,不能返回 int
else {
ResultSet rs = stmt.executeQuery(query1); // rs 重复定义
rs.next();
if (rs.getString(1) == null)
return -1; // 返回类型是 ResultSet,不能返回 int
else
return 1; // 返回类型是 ResultSet,不能返回 int
} }
import java.io.*;
import java.util.Vector;
import java.net.*;public class ExecuteSQL2{
public static void main(String[] args){
Connection conn=null;
try{
Vector results = new Vector();
String url = "jdbc:oracle:thin:@192.168.0.240:1521:bakkgl";
String driver="oracle.jdbc.driver.OracleDriver";
String query = "select * from tb_device";
if (url ==null) throw new IllegalArgumentException("No database specified");
if (driver!=null) Class.forName(driver);
conn=DriverManager.getConnection(url,"wyj","wyj");
Statement stmt=conn.createStatement();
// BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
ResultSet rs = stmt.executeQuery(query);
while (rs.next ()) {
System.out.println (rs.getString (1) + " " +
rs.getString (2)+" "+rs.getString (3)+" "+rs.getString (4)+" "+rs.getString (5)+" "+rs.getString (6)+" "+rs.getString (7)+" "+rs.getString (8)+" "+rs.getString (9));
}
/**
验证输入的用户是否存在
@param tableName 用户表的表名
@param userName 要查询的用户
@param passWd 指定要查询用户的密码
*/
public ResultSet selectUser(String tableName, String userName, String passWd) throws SQLException{
String query = "SELECT username FROM " + tableName + " WHERE username=" +"'"+username+"'";
String query1= "select username from" + tableName + " WHERE username=" +"'"+username+"'"+"and password="+"'"+passWd+"'";
System.out.print(query + "\n");
ResultSet rs = stmt.executeQuery(query);
rs.next();
if (rs.getString(1)==null)
return rs;
else{
ResultSet rs = stmt.executeQuery(query1);
rs.next();
if (rs.getString(1)==null)
return rs;
else
return rs;
}
}
stmt.close();
}
catch (Exception e){
System.err.println(e);
if (e instanceof SQLException)
System.err.println("SQL State:"+((SQLException)e).getSQLState());
}
finally{
try{conn.close();}
catch (Exception e){}
}
}
}
全部代码就这些,你看看是咋回事????????
如果JDK的版本是1.4x或以后的,请给你的类加上包名,这样就可以编译通过了,这是JDK1.4版本的俗成约定,所有类就必须有包名。
你的程序我看得太头晕了,建立你仔细研究研究 java 程序的结构。
在一个方法内是不能定义另一个方法的,只能调用另一个方法。而且调用都会受到一些限制,这个三言两语就说不清楚了。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;public class ExecuteSQL2 {
/**
* 验证输入的用户是否存在
*
* @param tableName
* 用户表的表名
* @param userName
* 要查询的用户
* @param passWd
* 指定要查询用户的密码
*
*/
public ResultSet selectUser(Statement stmt, String tableName,
String userName, String passWd) throws SQLException {
String query = "SELECT username FROM " + tableName
+ " WHERE username=" + "'" + userName + "'";
String query1 = "select username from" + tableName
+ " WHERE username=" + "'" + userName + "'" + "and password="
+ "'" + passWd + "'";
System.out.print(query + "\n");
ResultSet rs = stmt.executeQuery(query);
rs.next();
if (rs.getString(1) == null)
return rs;
else {
ResultSet rs1 = stmt.executeQuery(query1);
rs1.next();
if (rs1.getString(1) == null)
return rs1;
else
return rs1;
} } public static void main(String[] args) {
Connection conn = null;
try { Vector results = new Vector();
String url = "jdbc:oracle:thin:@192.168.0.240:1521:bakkgl";
String driver = "oracle.jdbc.driver.OracleDriver";
String query = "select * from tb_device";
if (url == null)
throw new IllegalArgumentException("No database specified"); if (driver != null)
Class.forName(driver); conn = DriverManager.getConnection(url, "wyj", "wyj");
Statement stmt = conn.createStatement();
// BufferedReader in=new BufferedReader(new
// InputStreamReader(System.in)); ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
System.out.println(rs.getString(1) + " " + rs.getString(2)
+ " " + rs.getString(3) + " " + rs.getString(4) + " "
+ rs.getString(5) + " " + rs.getString(6) + " "
+ rs.getString(7) + " " + rs.getString(8) + " "
+ rs.getString(9));
} stmt.close(); } catch (Exception e) {
System.err.println(e);
if (e instanceof SQLException)
System.err.println("SQL State:"
+ ((SQLException) e).getSQLState()); } finally {
try {
conn.close();
} catch (Exception e) {
} }
}
}
$ javac ExecuteSQL2.java
ExecuteSQL2.java:36: unreported exception java.lang.ClassNotFoundException; must
be caught or declared to be thrown
if (driver!=null) Class.forName(driver);
^
1 error
$
程序的源码如下:
package app.com.web;import java.sql.*;
import java.io.*;
import java.util.Vector;
import java.net.*;public class ExecuteSQL2{
/**
验证输入的用户是否存在
@param tableName 用户表的表名
@param userName 要查询的用户
@param passWd 指定要查询用户的密码
*/
public int selectUser(String tableName, String userName, String passWd) throws SQLException
{
Connection conn=null;
Statement stmt = null;
ResultSet rs = null;
int result = 0 ;
String url = "jdbc:oracle:thin:@192.168.0.240:1521:bakkgl";
//String query = "SELECT username FROM " + tableName + " WHERE username=" +"'"+username+"'";
String query = "SELECT username FROM " + tableName + " WHERE username=" +userName+"and password="+passWd;
//Debug.println("[GradeDAOImpl]DAO SQLString is===============>: "+ queryStr);
System.out.print(query + "\n");
try {
Vector results = new Vector();
String driver="oracle.jdbc.driver.OracleDriver";
if (url ==null) throw new IllegalArgumentException("No database specified");
if (driver!=null) Class.forName(driver);
conn=DriverManager.getConnection(url,"wyj","wyj");
stmt=conn.createStatement();
rs = stmt.executeQuery(query);
if (rs.next())
result = 1;
else
result=-1;
} catch(SQLException e) {
System.err.println(e);
if (e instanceof SQLException)
System.err.println("SQL State:"+((SQLException)e).getSQLState());
} finally {
try{
rs.close();
stmt.close();
conn.close();
}
catch (SQLException e)
{ }
}
return result;
}
public static void main(String[] args){
Connection conn=null;
try{
// String driver=null,url=null,user="",password="";
// for(int n=0;n<args.length;n++){
// if (args[n].equals("-d")) driver=args[++n];
// else if (args.equals("-u")) user=args[++n];
// else if (args.equals("-p")) password=args[++n];
// else if (url == null) url=args[n];
// else throw new IllegalArgumentException("Unknown argument.");
// }
Vector results = new Vector();
String url = "jdbc:oracle:thin:@192.168.0.240:1521:bakkgl";
String driver="oracle.jdbc.driver.OracleDriver";
String query = "select * from tb_device";
if (url ==null) throw new IllegalArgumentException("No database specified");
if (driver!=null) Class.forName(driver);
conn=DriverManager.getConnection(url,"wyj","wyj");
Statement stmt=conn.createStatement();
// BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
ResultSet rs = stmt.executeQuery(query);
while (rs.next ()) {
System.out.println (rs.getString (1) + " " +
rs.getString (2)+" "+rs.getString (3)+" "+rs.getString (4)+" "+rs.getString (5)+" "+rs.getString (6)+" "+rs.getString (7)+" "+rs.getString (8)+" "+rs.getString (9));
}
stmt.close();
}
catch (Exception e){
System.err.println(e);
if (e instanceof SQLException)
System.err.println("SQL State:"+((SQLException)e).getSQLState());
}
finally{
try{conn.close();}
catch (Exception e){}
}
}
}
为啥这次driver老是给我报错,我在main方法里面用的driver也是没错呀?咋回事??????
if (driver != null) {
try {
Class.forName(driver);
} catch (ClassNotFoundException e1) {
System.out.println("Cannot found class : " + driver);
e1.printStackTrace();
return -1;
}
}
Class.forName 可能抛出 ClassNotFoundException,所以你应该处理这个异常。这个异常在 JVM 没有打开指定的类时抛出,如下代码:这句话中的“打开”应该是“找到”,笔误,修改后:Class.forName 可能抛出 ClassNotFoundException,所以你应该处理这个异常。这个异常在 JVM 没有找到指定的类时抛出,如下代码: