错误在 PreparedStatement 中找不到符号
error cannot find symbol in PreparedStatement
为什么找不到符号
PreparedStatement ps = connection.prepareStatement(sql);
^
variable connection
但是变量连接已经声明如下:
*我输入了正确的用户名、密码和url
try {
Class.forName("org.postgresql.Driver");
}
catch (java.lang.ClassNotFoundException e) {
System.out.println(e.getMessage());
}
try {
String url = "jdbc:postgresql://stampy.db.elephantsql.com/";
String username = "";
String password = "";
Connection connection = DriverManager.getConnection(url, username, password);
List<AdvDetail> list = new ArrayList();
} catch(SQLException e) {
System.out.println(e.getMessage());
}
我有导入库
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.*;
import a1.kmita.com.model.Adv;
import a1.kmita.com.model.AdvDetail;
import a1.kmita.com.listener.ExceptionListener;
import a1.kmita.com.model.Response;
和其他 spring 个图书馆
这里是代码
try {
String sql = "INSERT INTO advert (ad_title, ad_desc, ad_price, ad_image1,) VALUES (?, ?, ?, ?)"; /* this is the query */
PreparedStatement ps = connection.prepareStatement(sql); /* this is error */
ps.setString(1, product_name);
ps.setString(2, product_desc);
ps.setInt(3, product_price);
ps.setString(4, image1);
ps.executeUpdate();
ps.close();
} catch(SQLException e) {
System.out.println(e.getMessage());
}
您在使用前没有创建连接对象。检查此示例:
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(DB_URL,USERNAME,PASS);
connection
是一个变量,必须使用您的连接属性对其进行初始化。仅导入包是不够的。
你可以这样做(例如 postgresql):
Connection connection = null;
try{
Class.forName("org.postgresql.Driver");
String connectionString = "jdbc:postgresql://" + dbhost + ":" + dbport + "/" + dbname;
connection = DriverManager.getConnection(connectionString, dbuser, dbpassword)
}catch (Exception e){
//...
}
编辑:变量的声明必须在try块之前,否则变量在try块的范围内。看看我的例子,你如何做到这一点。
为什么找不到符号
PreparedStatement ps = connection.prepareStatement(sql);
^
variable connection
但是变量连接已经声明如下: *我输入了正确的用户名、密码和url
try {
Class.forName("org.postgresql.Driver");
}
catch (java.lang.ClassNotFoundException e) {
System.out.println(e.getMessage());
}
try {
String url = "jdbc:postgresql://stampy.db.elephantsql.com/";
String username = "";
String password = "";
Connection connection = DriverManager.getConnection(url, username, password);
List<AdvDetail> list = new ArrayList();
} catch(SQLException e) {
System.out.println(e.getMessage());
}
我有导入库
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.*;
import a1.kmita.com.model.Adv;
import a1.kmita.com.model.AdvDetail;
import a1.kmita.com.listener.ExceptionListener;
import a1.kmita.com.model.Response;
和其他 spring 个图书馆
这里是代码
try {
String sql = "INSERT INTO advert (ad_title, ad_desc, ad_price, ad_image1,) VALUES (?, ?, ?, ?)"; /* this is the query */
PreparedStatement ps = connection.prepareStatement(sql); /* this is error */
ps.setString(1, product_name);
ps.setString(2, product_desc);
ps.setInt(3, product_price);
ps.setString(4, image1);
ps.executeUpdate();
ps.close();
} catch(SQLException e) {
System.out.println(e.getMessage());
}
您在使用前没有创建连接对象。检查此示例:
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(DB_URL,USERNAME,PASS);
connection
是一个变量,必须使用您的连接属性对其进行初始化。仅导入包是不够的。
你可以这样做(例如 postgresql):
Connection connection = null;
try{
Class.forName("org.postgresql.Driver");
String connectionString = "jdbc:postgresql://" + dbhost + ":" + dbport + "/" + dbname;
connection = DriverManager.getConnection(connectionString, dbuser, dbpassword)
}catch (Exception e){
//...
}
编辑:变量的声明必须在try块之前,否则变量在try块的范围内。看看我的例子,你如何做到这一点。