1.在oracle中有sequence(序列),可用来实现自动生成主键,在mysql中没有,可以这样来实现

 
  
  1. public class AddServlet extends HttpServlet   
  2. {  
  3.  
  4.     int i=0;  
  5.     int n;  
  6.     protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
  7.             throws ServletException, IOException   
  8.     {  
  9.         this.doPost(req, resp);  
  10.     }  
  11.  
  12.     protected void doPost(HttpServletRequest req, HttpServletResponse resp)  
  13.             throws ServletException, IOException   
  14.     {  
  15.         boolean isSuccess=true;  
  16.         n=++i;  
  17.         System.out.println("插入主键="+i);  
  18.         String userId=n+"";  
  19.         //1.获得表单中的数据  
  20.         String username=req.getParameter("username");  
  21.           
  22.         String password=req.getParameter("password");  
  23.         String idcard=req.getParameter("idcard");  
  24.         String telnum=req.getParameter("telnum");  
  25.         System.out.println("username="+username+password+idcard+telnum);  
  26.          
在程序中定义一个变量i,变量为全局变量,

在向业务逻辑层传值的时候记得每次进行自动的修改,利用++i实现,每次把它赋值给n用作主键,不能用i++,因为获取修改后的值的顺序不同,所以必须用++i来实现主键的自己变化

注意:在重启服务器时,会导致设置的初值从设置的值开始,为防止这个情况,可以在进行插入操作之前进行一次查询,查询出当前作为主键中的那一列值中最大的值是多少,然后使这个值加1,就可以避免重启服务器时造成的这个错误了。