CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  MySQL/Postgresql

jdbc连接数据库问题

楼主gefieder()2006-06-02 08:47:54 在 其他数据库开发 / MySQL/Postgresql 提问

写了段代码,连接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

相关问题

关键词

得分解答快速导航

  • 帖主:gefieder

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo