String sql="select * from ?";
ResultSet rst=SqlHelper.select(sql,"Product");
while(rst.next()){
System.out.println(rst.getString(1));
}
[Microsoft][ODBC Microsoft Access Driver] Parameter 'Pa_RaM000' specified where a table name is required.这个问号的地方写的有问题吗???我换了别的方法也是现实sql语句出错
ResultSet rst=SqlHelper.select(sql,"Product");
while(rst.next()){
System.out.println(rst.getString(1));
}
[Microsoft][ODBC Microsoft Access Driver] Parameter 'Pa_RaM000' specified where a table name is required.这个问号的地方写的有问题吗???我换了别的方法也是现实sql语句出错
解决方案 »
- 想写一个聊天室的程序,关于数据传输的问题??
- 笔试题目java算法求解
- 求Thinking in java第三版课后习题答案.谢谢.
- 用鼠标拖动JFrame框架改变大小时,不释放鼠标,系统如何实现实时更新JFrame?
- 一个棘手的java字符串"1110100101010010"的问题
- 我正在开发的小工具,关于JNI的。不知大家是否感兴趣
- java 中怎样在命令行获取变量的值???
- JBuilder中连接Employee.jds的密码和用户名
- Applet小问题?
- 测试一下HashSet类中对象无序无重复的问题,当我打印输出的时候发现输出居然有序,请问,哪里出了问题?
- java的问题
- java如何从字节数组显示gif图片?
import java.io.IOException;
import java.sql.*;
import java.util.Properties;public class SqlHelper { // =======定义需要的变量=========
private static Connection con = null;
//在大多数情况下,我们使用的是preparedstatement来替代statement
private static PreparedStatement ps=null;
private static ResultSet rst = null; // 连接数据库参数
static String url = "";
static String username = "";
static String driver = ""; static Properties pp = null;
static FileInputStream files = null; static{
try {
// 从dbinfo文件中读取配置信息
pp = new Properties();
files = new FileInputStream("dbinfo.properties");
pp.load(files);
url = pp.getProperty("url");
driver = pp.getProperty("driver"); Class.forName(url); } catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
files=null;
}
// 得到链接
public static Connection getCon(){
try
{
con = DriverManager.getConnection(driver);
}catch(Exception e){
e.printStackTrace();
}
return con;
}
//=============先写一个Update /delete / insert=======
//sql格式:update 表名 set ziduanming=? where ziduan=?
public void executeUpdate(String sql, String[] parameters){
try{
con=getCon();
ps=con.prepareStatement(sql);
if(parameters!=null){
for(int i=0;i<parameters.length;i++){
ps.setString(i+1,parameters[i]);
}
}
//执行
ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();//开发阶段
//抛出异常
throw new RuntimeException(e.getMessage());
}
}
public static ResultSet select(String sql,String parameters){
try{con=getCon();
ps=con.prepareStatement(sql);
//给问号赋值
// if(parameters!=null){
// for(int i=0;i<parameters.length;i++){
// ps.setString(i+1,parameters[i]);
// }
// }
ps.setString(1,parameters);
rst=ps.executeQuery();
}catch(Exception e){
e.printStackTrace();//开发阶段
//抛出异常
throw new RuntimeException(e.getMessage());
}
return rst;
}
}
JdbcTest1.javapackage jdbc1;import java.sql.ResultSet;
import java.sql.SQLException;import org.junit.*;public class JdbcTest1 { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//测试sqlhelper是否能正常使用
}
@Test
public void testSql() throws SQLException {
String sql="select * from ?";
ResultSet rst=SqlHelper.select(sql,"Product");
while(rst.next()){
System.out.println(rst.getString(1));
}
}}
String sql="select * from Product";
ResultSet rst=SqlHelper.select(sql,"");
while(rst.next()){
System.out.println(rst.getString(1));
}
}
写成这样子试试 ?
try{con=getCon();
ps=con.prepareStatement(sql);
//给问号赋值
// if(parameters!=null){
// for(int i=0;i<parameters.length;i++){
// ps.setString(i+1,parameters[i]);
// }
// }
ps.setString(1,parameters);
rst=ps.executeQuery();
}catch(Exception e){
e.printStackTrace();//开发阶段
//抛出异常
throw new RuntimeException(e.getMessage());
}
return rst;
}
修改成public static ResultSet select(String sql,String parameters){
try{con=getCon();
ps=con.prepareStatement(sql);
//给问号赋值
if (!"".equals(parameters))
ps.setString(1,parameters);
rst=ps.executeQuery();
}catch(Exception e){
e.printStackTrace();//开发阶段
//抛出异常
throw new RuntimeException(e.getMessage());
}
return rst;
}
从来没那样写过,不过看你的错误,a table name is required,那应该是不可以了,找不到表名。
select * from 'Product';
可以执行么