关于preparedstement中setXX的错误
来源:互联网 发布:电脑软件网站 编辑:程序博客网 时间:2024/06/06 20:46
这个问题困扰了我很久,源码如下
private Connect c = new Connect();
@Override
public String userLogin(String username) {
String pass_db="";
try {
Connection conn = c.getConnection();
String sql = "select password from user where username=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(2, username);
ResultSet rs = ps.executeQuery();
while(rs.next()){
pass_db = rs.getString(3);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
·我的User如下
private int id;
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
结果报错Parameter index out of range (2 > number of parameters, which is 1).
如果将ps.setString(2, username);改为ps.setString(1, username);
就会报错:java.sql.SQLException: Column Index out of range, 3 > 1.
将pass_db = rs.getString(3);改为pass_db = rs.getString(1);就完美结局了
综上,所得的原因我认为是sql语句的问题,我的sql语句写的是select password from user where username=?查询的一个内容password,因此没有必要讲user中的所有属性或者是其中第几个的属性的问题,查询有几个属性就应该在setString()中写几.
终于解决了困扰我许久的问题。查了很多原因没有解决,归根结底是sql语句问题和preparedstatement知识有缺陷,还是得继续加油!
努力看源码,努力再努力!!
- 关于preparedstement中setXX的错误
- Matrix的prexx、postxx、setxx方法理解
- 取值函数getXX()、赋值函数setXX()的用法
- new AlertDialog.Builder(this).setxx引发的胡思乱想
- 关于Spring开发中遇到的错误
- NDK中关于llenter错误的问题
- 关于multiset中遇到的一个错误
- 关于js中几个错误的处理
- 关于工作中常见的类型错误
- 以下关于汇编语言的叙述中,错误的是
- 关于vs2013中printf printf_s的错误问题的解决方法
- 以下关于STL的描述中,错误的有
- 关于JS中乘法的浮点错误解决方法
- 关于MVC架构中错误处理的问题
- 孙鑫XML视频教程中关于DOM例子的一点错误
- 关于Visio2000Enterprise和VisioforEnterpriseArchitects版本中模型的翻译错误!
- VC6.0 msdn 文章中关于更改m_pszAppName的错误
- 关于SSH集成开发中nullPointer错误的总结
- Linux下段错误 coredump设置
- 数据库事务(Transaction)的ACID特性解释
- JavaWeb工作原理
- 杨辉三角
- Google官方支持的MVVM架构框架Data Binding使用入门
- 关于preparedstement中setXX的错误
- CCF-NOIP2016 PJ T2
- poj3311 状压DP
- java数组
- 【Flask】Flask-Admin修改成中文显示
- 润乾报表通过ajax实现参数的动态过滤
- win10+VS2013+CPU配置caffe(windows分支)
- Maven 如何为不同的环境打包 —— 开发、测试和生产环境
- 我的屌丝生涯