A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© CrazyProgram 中级黑马   /  2013-4-11 15:19  /  1351 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. //使用元数据+反射优化CURD操作
  2. public class Demo2 {
  3.        
  4.         public static void main(String[] args) throws SQLException {
  5.                
  6.                 String sql = "insert into user(username,password,birthday,salary) values(?,?,?,?)";
  7.                 Object[] params = {"xixi","00","1999-11-23",9000};
  8.                 update(sql,params);
  9.         }
  10.        
  11.         public static void update(String sql,Object[] params) throws SQLException{
  12.                 Connection conn = JdbcUtil.getMySqlConnection();
  13.                 PreparedStatement pstmt = conn.prepareStatement(sql);
  14.                 //取得参数元数据
  15.                 ParameterMetaData pmd = pstmt.getParameterMetaData();
  16.                 //取得参数个数
  17.                 int size = pmd.getParameterCount();
  18.                 System.out.println(size);
  19.                 //为什么打印的是4,id那列它不读的吗?这又是为什么呢?
  20.                 for(int i=0;i<size;i++){
  21.                         pstmt.setObject(i+1, params[i]);
  22.                         System.out.println(params[i]);
  23.                 }
  24.                 pstmt.executeUpdate();
  25.         }

  26. }
复制代码
id那列有的,虽然是自动增长,但是int size = pmd.getParameterCount();读取不到那列!

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

2 个回复

倒序浏览
String sql = "insert into user(username,password,birthday,salary) values(?,?,?,?)";从这可以看出你做预处理的参数只有四个,因此
int size = pmd.getParameterCount();返回的结果个数就为四个,不会包括ID的,这句返回的就是预处理的参数个数

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
getParameterCount

int getParameterCount()
                      throws SQLException

    检索 PreparedStatement 对象中的参数的数量,此 ParameterMetaData 对象包含了该对象的信息。

    返回:
        参数的数量
    抛出:
        SQLException - 如果发生数据库访问错误


你可以看看这里http://www.cjsdn.net/Doc/JDK50/java/sql/ParameterMetaData.html#getParameterCount%28%29

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马