利用语句:String name=request.getParameter("item");
取得name=“C++”;
try
{
String driverName="com.mysql.jdbc.Driver";
String userName="root";
String userPasswd="123456";
String dbName="book";
String tableName="book";
String url2="jdbc:mysql://localhost:3306/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName(driverName).newInstance();
Connection conn2=DriverManager.getConnection(url2);
Statement stmt2=conn2.createStatement();
String sql2="update book set mount=1110 where bookname='name'";//此语句中的bookname='name'不能做bookname='C++'处理,有什么方法可以处理这个问题。
int row=stmt2.executeUpdate(sql2);
%>
<% 
stmt2.close();
conn2.close();
}
问题://String sql2="update book set mount=1110 where bookname='name'";//此语句中的bookname='name'不能当做bookname='C++'处理,有什么方法可以处理这个问题。

解决方案 »

  1.   

    字符串类型name="C++";
    有一个数据库项目如下:库存列表如下:
    书名bookname   简介content   作者author   价格price   库存mount 
    C++           C++           CCC         32         1111 
    Education    Education     Education    12         1000 我利用下面语句来修改书名为C++中的库存量mount,改为1110,但是没办法操作。
    String sql2="update book set mount=1110 where bookname='name';
    int row=stmt2.executeUpdate(sql2);如果用语句
    String sql2="update book set mount=1110 where bookname='C++';
    int row=stmt2.executeUpdate(sql2);
    则可以把改书名为C++中的库存量mount,改为1110。
    有什么办法可以把name的值传进去???????
      

  2.   

    String sql2="update book set mount=1110 where bookname='" + name + "'";
    拼接一个sql就行了撒....
      

  3.   


    正解
    sql处理字符串需要 用'',  用sql拼接即可
      

  4.   


    估计楼主是做php过来的吧?
      

  5.   

    不是,我是刚学jsp的。还有一个问题,
    下面两个语句为什么结果不是一样的?
    String sql2="update book set mount=10000 where bookname='"+name+"'";
    String sql2="update book set mount=num where bookname='"+name+"'";num是int类型的数值,为什么传不进去。要怎么样处理?
      

  6.   


    String sql2="update book set mount=num where bookname='"+name+"'";这里的num不会作为一个变量处理的,只是一个普通的num字符串处理,这条SQL执行会有SqlException。
    你可以这样写:String sql2="update book set mount=" + num + "where bookname='"+name+"'";
    或者直接用占位符:String sql2="update book set mount = ? where bookname='"+name+"'";然后再用stmt2.setInt(1, num)