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()取出值。
这个的目的就是前台输入账号密码,后台连接数据库通过用户名取得密码比对一下。还是学生刚看几个视频应用下,如果有其他的写法能实现的也可以,谢谢啦
展开
 我来答
ldx1018
2013-05-23 · 超过12用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:30.3万
展开全部
String sql = "select uname,upassword from examuser where uname = '"+ uname+"'"; 试试
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
U盘启动23
2013-05-23 · TA获得超过177个赞
知道答主
回答量:515
采纳率:0%
帮助的人:173万
展开全部
需要设置参数
String sql = "select uname,upassword from examuser where uname = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1,uname);
pstmt.executeUpdate();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式