老师现在教的是jdbc.odbc连接数据库,我做的是jsp网页更新数据库操作(简单程度):
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch(ClassNotFoundException e){out.println(e.getMessage());}
try{Connection conn=DriverManager.getConnection ("jdbc:odbc:logon","sa","sa");
String leixing=request.getParameter("leixing");
String ipt=Bytes(request.getParameter("ipt"));
String account=request.getParameter("account");
PreparedStatement pst=conn.prepareStatement("update user1 set ?=? where account=?");
pst.setString(1,ipt);
pst.setString(2,account);
其实我想问,sql语句set后面的问号为什么没起作用,我的leixing是从另外一个表单取到值了的,但是就是无法更新sql里面的数据。(account是另一个页面用户输入的学号,leixing是另一个界面用户选择要修改哪一列数据,取到的列名和sql里的列名一样,ipt指把那一列某个数据改成ipt从用户输入取到的数据)但是就是leixing有值,第一个问号得不到取的值,但是把第一个问号改成要修改的列名数据库就能更新,我就不知道怎么解决了。
如果按照你这样写,那应该有三个参数,第一个是列名,第二个是列名对应的值,第三个是account对应的值。不过一般情况下都是写好列名,然后set列名对应的值,就像你where后面的account就是直接写好的。
页问号是参数,你去查参数化查询
一个问好对应一个setString ,总共有三个问好,你需要设置三个 pst.setString();方法