jdbc连接数据库问题
写了段代码,连接mysql数据库。表名是zxinfo内有3个属性 id(int),name(int),age(decimal),把name属性取出和一个int类型50常量相加再写回name属性中。现在的问题是,可以取出但不能写入。望高手指点一二,不胜感激,代码入下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class testbill
{
public static void main(String[] args)
{
try
{
Connection conn = null;
Statement st = null;
ResultSet rs = null;
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=zx&password=zx");
System.out.println("ke yi");
String sql = "select id,name,age from zxinfo";
String zxsql = "update zxinfo set id=?,name=?,age=? where id=2";
st = conn.createStatement();
rs = st.executeQuery(sql);
PreparedStatement ps = conn.prepareStatement(zxsql);
if (rs.next())
{
int xx = rs.getInt("name");
xx = xx+50;
System.out.println("keyi o");
ps.setInt(2,xx);
System.out.println("keyi oo");
ps.executeUpdate();
System.out.println("keyi ooo");
System.out.println(xx);
}
}
catch (ClassNotFoundException ex)
{
System.out.println(ex);
}
catch(SQLException ex)
{
System.out.println("bu xing");
}
}
}
问题点数:20、回复次数:12Top
1 楼default_class()回复于 2006-06-02 09:03:22 得分 0
数据权限应该设成可以update的Top
2 楼chouy(chouy)回复于 2006-06-02 18:41:49 得分 0
你的程序报的什么错?Top
3 楼gefieder()回复于 2006-06-05 17:29:04 得分 0
有update权限。
程序只是throw出了错误,上面就打印出“bu xing”Top
4 楼skyairmj(方外)回复于 2006-06-05 18:34:42 得分 0
update zxinfo set id=?,name=?,age=? where id=2
下面只有..
ps.setInt(2,xx);
肯定报错了
而且如果id是自增的,这样也是会报错的Top
5 楼skyairmj(方外)回复于 2006-06-05 18:36:56 得分 0
看你的意思,只是要将岁数增2,应该
update zxinfo set age=? where id=2
这样就ok了Top
6 楼gefieder()回复于 2006-06-06 09:53:28 得分 0
这段代码意思是,把id为2的name属性加50后再写回name属性里
String zxsql = "update zxinfo set id=?,name=?,age=? where id=2";
应该是没有错误的。Top
7 楼awolf168(蓝品)回复于 2006-06-07 17:40:17 得分 0
有update权限。
程序只是throw出了错误,上面就打印出“bu xing”
程序中都没有“bu xing”
怎么能打印出来?????。。。
Top
8 楼gefieder()回复于 2006-06-07 17:55:26 得分 0
有“不行”的仔细看看Top
9 楼ales7887(初出庐山)回复于 2006-06-08 13:46:55 得分 0
你只要修改name的值,那你写id=?和age=?是做什么用的?
你只有写了一个问号,就要为这个参数赋值的
Top
10 楼gefieder()回复于 2006-06-08 15:53:49 得分 0
写了3个?必须为3个都赋值吗?好象不是吧,就算不赋值也不会报错。Top
11 楼chouy(chouy)回复于 2006-06-09 11:56:25 得分 0
是语句中有几个问号就要有几个SET
还有楼主的异常处理方法真是非常不好!
本来是可以返回一些有用信息的,你这样处理错在什么地方都不知道,什么错也不知道.Top
12 楼gefieder()回复于 2006-06-09 16:46:06 得分 0
那该怎么处理异常呢?Top




