eclipse中用JDBC连接mysql,无法通过sql语句中的where字句条件取得varchar类型数据
数据库已经连好,是在一个servlet页面里面,sql语句是这样的Class.forName("com.mysql.jdbc.Driver").newInstance()...
数据库已经连好,是在一个servlet页面里面,sql语句是这样的
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/mysql?user=root&password=root");
stmt = conn.createStatement();
String sql = "select uname,upassword from examuser where uname = "+ uname;
//“+”号后面的uname是上面定义的通过getParameter取得的提交值
rs = stmt.executeQuery(sql);
rs.next();
执行之后前台输入uname后台无法取得值错误是这个 SQLException:Unknown column 'cancer' in 'where clause' cancer是前台jsp输入的值
但是当我把sql语句改成这样 String sql = "select uname,upassword from examuser where uname = 'cancer ' "; 直接在语句里写死一个where语句 前台就能取出来工作就正常。新手刚接触JDBC两天,我看视频里where语句就是这样在双引号外边+上变量的,视频里是int类型,我的是varchar型可是我的就不行希望有人能给解答一下
还有下面我用rs.getString()取出值。
这个的目的就是前台输入账号密码,后台连接数据库通过用户名取得密码比对一下。还是学生刚看几个视频应用下,如果有其他的写法能实现的也可以,谢谢啦 展开
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/mysql?user=root&password=root");
stmt = conn.createStatement();
String sql = "select uname,upassword from examuser where uname = "+ uname;
//“+”号后面的uname是上面定义的通过getParameter取得的提交值
rs = stmt.executeQuery(sql);
rs.next();
执行之后前台输入uname后台无法取得值错误是这个 SQLException:Unknown column 'cancer' in 'where clause' cancer是前台jsp输入的值
但是当我把sql语句改成这样 String sql = "select uname,upassword from examuser where uname = 'cancer ' "; 直接在语句里写死一个where语句 前台就能取出来工作就正常。新手刚接触JDBC两天,我看视频里where语句就是这样在双引号外边+上变量的,视频里是int类型,我的是varchar型可是我的就不行希望有人能给解答一下
还有下面我用rs.getString()取出值。
这个的目的就是前台输入账号密码,后台连接数据库通过用户名取得密码比对一下。还是学生刚看几个视频应用下,如果有其他的写法能实现的也可以,谢谢啦 展开
2个回答
展开全部
String sql = "select uname,upassword from examuser where uname = '"+ uname+"'"; 试试
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询