最近在学习JAVA,经朋友介绍和自己网上了解,买了孙老师的《JAVA面向对象编程》《TOMCAT和JAVAWEB开发》以及
飞思出的《JSP应用开发详解》,看了一段日子,于是开始写些JSP小程序,发现问题多多,很多东西都没理解,特在此总结起来发问,
希望前辈们指点或是也刚学的朋友一起探讨。
问题一;数据库表中通常有个primary key名为xxid的列名,大多时候是int型auto_increment属性的,请问这个键主要是用来做什么用的呢?
        我发现程序中的form都没有提交这个值,也没有哪里提交或是调用过这个值吧,
        那么他要不要在对应的javabean中书写setter和getter方法,如果要写怎么写,这种int型变量如何书写setter和getter方法,是不是要转换?
        如果不写的话,那么在数据库中插入数据比如"insert into table_name(?,?,?)"时,第一个?号对应的就是id,我们怎么插入
        数据或者插入什么数据?
        说了这么多,真是不好意思,谁叫我是菜鸟,希望大家帮助,谢谢。

解决方案 »

  1.   

    primary key关键字列,表示该字段值不能有重复。例如建立一个学生信息表,学号是唯一的,就可以把学号这个字段设置为primary key,这样表中就不会有两个学号相同的记录了。
    大多时候是int型auto_increment属性的,这样的字段不用手工插入值,由数据库自动添加。
    如果不写的话,那么在数据库中插入数据比如"insert into table_name(?,?,?)"时,第一个?号对应的就是id,我们怎么插入数据或者插入什么数据?
    这个时候第一个?号不要。后面也不需要赋值。
      

  2.   

    楼上的朋友,你说的第一个?不要是什么意思,比如说下面代码
     String sql = "insert into CDinfo values(?,?,?)";
                prepar = conn.prepareStatement(sql);
                prepar.setString(2, db.getUserName());
                prepar.setString(3, db.getEmail());
    是不是就是这样把第一个?留出来但不给值,没有给第一个?插值程序能通过吗,如果这样,那他的初始值是0吗,然后每插入一条数据第一个?就会自动+1呢?
      

  3.   

    String sql = "insert into CDinfo values(?,?)";
    prepar = conn.prepareStatement(sql);
    prepar.setString(1, db.getUserName());
    prepar.setString(2, db.getEmail());初始值的大小可以指定,一般为1
      

  4.   

    primary key关键字列,表示该字段值不能有重复。例如建立一个学生信息表,学号是唯一的,就可以把学号这个字段设置为primary key,这样表中就不会有两个学号相同的记录了。但是当你要系统自动增长的时候你就必须的让的成为自动增长列,也就是identity(初始值,增长系数),这个时候就必须的定义字段为整型,例如int,smallint类型
    在sql中自动增长的列你就可以不用指定了
      

  5.   

    谢谢liaoxiaoqi(天崖), zhangshiy() 两位朋友,经过你们解释,我基本明白了,问完最后这个问题就结贴发分了,我知道了primary key关键字列是标识唯一属性的字段,那可不可以不要这个字段列呢,如果一定要的话那他是在什么时候才用到或调用的呢?可不可以举个例子