jsp操作mysql数据库的问题
我是想做一个什么事呢:就是在jsp里用statement的executeQuery(string)来向数据库增加数据,数据库为hanshuangwu,表为infor,其中...
我是想做一个什么事呢:就是在jsp里用statement的executeQuery(string)来向数据库增加数据,数据库为hanshuangwu,表为infor,其中只有两个属性:id、name。执行下面的代码后,显示在“****”标记的代码处有“Unknown column 'idString' in 'field list' ”错误,菜鸟求解,请高手不吝赐教啊^_^ <% int idString=1;//Integer.parseInt(request.getParameter("id") ); String nameString="呵呵";//request.getParameter("name"); //out.print("ID:"+id); //out.println("name:"+name); String driverClass="com.mysql.jdbc.Driver"; String url="jdbc:mysql://localhost:3306/hanshuangwu"; String username="root"; String password="161006"; try{ Class.forName(driverClass); }catch(ClassNotFoundException e) { System.out.println("加载数据库驱动程序时异常(不就是失败嘛!!!)内容如下:"); e.printStackTrace(); } Connection con=DriverManager.getConnection(url, username, password); Statement stmt=con.createStatement(); ***** int rtn=stmt.executeUpdate("insert into infor(id,name) values(idString,nameString)"); ResultSet rs = stmt.executeQuery("select * from infor "); rs.next(); while(rs.next() ){ out.println("id:"+rs.getInt(1)+"name:"+rs.getString(2)); }
展开
展开全部
insert
into
infor(id,name)
values(idString,nameString)
这一句话的意思是给id赋值为“idString”,name赋值为"nameString",并不是上面的变量,数据库的id属性是int,而传进去的是一个字符串,当你rs.getInt(1)
的时候,id与idString不匹配,所以报“Unknown
column
'idString'
in
'field
list'
”错误
这里写SQL语句的时候,应该用字符串拼接:"insert
into
infor(id,name)
values(
'
"+idString+"
','
"+nameString+"
')"
如果你觉得这样的字符串拼接方式容易出错而且很麻烦,我建议你使用PreparedStatement
用法如下:
String
sql
=
"insert
into
users
(name,password)
values(?,?)";
PreparedStatement
ps
=
conn.prepareStatement(sql)
try
{
ps.setString(1,
"admin");
ps.setString(2,
"111");
int
result
=
ps.executeUpdate();
}
catch
(SQLException
e)
{
e.printStackTrace();
}
1,2代表values()里面对应的问号索引,从1开始
我现在一般都用PreparedStatement看着清晰并且免去了字符串拼接的臃肿代码,减少出错
into
infor(id,name)
values(idString,nameString)
这一句话的意思是给id赋值为“idString”,name赋值为"nameString",并不是上面的变量,数据库的id属性是int,而传进去的是一个字符串,当你rs.getInt(1)
的时候,id与idString不匹配,所以报“Unknown
column
'idString'
in
'field
list'
”错误
这里写SQL语句的时候,应该用字符串拼接:"insert
into
infor(id,name)
values(
'
"+idString+"
','
"+nameString+"
')"
如果你觉得这样的字符串拼接方式容易出错而且很麻烦,我建议你使用PreparedStatement
用法如下:
String
sql
=
"insert
into
users
(name,password)
values(?,?)";
PreparedStatement
ps
=
conn.prepareStatement(sql)
try
{
ps.setString(1,
"admin");
ps.setString(2,
"111");
int
result
=
ps.executeUpdate();
}
catch
(SQLException
e)
{
e.printStackTrace();
}
1,2代表values()里面对应的问号索引,从1开始
我现在一般都用PreparedStatement看着清晰并且免去了字符串拼接的臃肿代码,减少出错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询