zoukankan      html  css  js  c++  java
  • JDBC获得数据库表中的auto_increment类主键

        在对表进行插入数据时,如果主键是自增长类型,那么我们可以不对主键那一列进行赋值,但是有时候,这个主键恰好是别的表的外键,那么我们需要知道这次自增长的值,当然我们可以执行一次查询语句,根据你插入的信息当条件,简便方法就是在执行插入sql语句后,可以直接返回该主键。

    package jdbc_preparement;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.sql.Blob;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class text_preparestartment {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
          Connection con=simplecon.getConnection();  //创建JDBC连接,用封装好的自定义类
          String sql="insert into t_user values(null,?,?,null);";try {
            PreparedStatement ps=con.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); //多一个参数,表示需要返回主键
            ps.setString(1, "mike");
            ps.setString(2, "4399");
            ps.execute();
            ResultSet re=ps.getGeneratedKeys();    //返回主键
            re.next();
            int n=re.getInt(1);
            System.out.println("自然增长的序号为"+n);  //输出主键
            simplecon.close(re);
            simplecon.close(ps);
            simplecon.close(con);
            
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    
        }
    
    }
    class simplecon
    {
        static Connection con;
        static Connection getConnection()
        {   
            try{
                con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","数据库用户名","数据库密码");    
            }catch(SQLException e){
                e.printStackTrace();
            }
            return con;
        }
        static void close(AutoCloseable a)
        {
            try {
                a.close();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    Java线上应用故障排查之一:高CPU占用【转】
    JAVA 之 Tomcat知识框架【转】
    FileZilla 配置备份与还原【转】
    linux删除第几天日志【原创】
    sar命令使用【转】
    Mysql Group Replication 简介及单主模式组复制配置【转】
    grep 中的正则表达式【转】
    java程序out of memory【转】
    Java笔记18:JUnit单元测试
    Java笔记17:导出可执行jar包
  • 原文地址:https://www.cnblogs.com/llsq/p/7744673.html
Copyright © 2011-2022 走看看