Java Sqlite代码中的自动增量ID
我试图将SQLite与java一起使用,我编写了一段代码,给出了三个字符串Java Sqlite代码中的自动增量ID,java,sql,sqlite,Java,Sql,Sqlite,我试图将SQLite与java一起使用,我编写了一段代码,给出了三个字符串 名字 陷阱1 陷阱2 必须填充表 |---------------------| |ID|NAME|SNAME1|SNAME2| |1 |Ale |test |test2 | |---------------------| 如何自动增加ID?我尝试在创建表时使用auto_increment,但在填充表时出现异常,因此我正在寻找一种好方法 从代码中可以看出,每次执行程序时,我只能插入
- 名字
- 陷阱1
- 陷阱2
|---------------------|
|ID|NAME|SNAME1|SNAME2|
|1 |Ale |test |test2 |
|---------------------|
如何自动增加ID?我尝试在创建表时使用auto_increment,但在填充表时出现异常,因此我正在寻找一种好方法
从代码中可以看出,每次执行程序时,我只能插入一行
package database;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
/**
*
* @author MITROTTA
*/
public class Database {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws SQLException {
Connection c = null;
Statement stmt = null;
String sql;
//Variabili Database
String name;
String sname1, sname2;
Scanner in = new Scanner(System.in);
try {
Class.forName("org.sqlite.JDBC");
c = DriverManager.getConnection("jdbc:sqlite:test.db");
c.setAutoCommit(false);
System.out.println("Opened database successfully");
//Creazione tabella
stmt = c.createStatement();
sql = "CREATE TABLE IF NOT EXISTS COMPANY " +
"(ID INT PRIMARY KEY NOT NULL," +
" NAME CHAR(30) NOT NULL, " +
" SNAME1 CHAR(30) NOT NULL, " +
" SNAME2 TEXT)";
stmt.executeUpdate(sql);
System.out.print("Type name: ");
name = in.nextLine();
System.out.print("Type sname1: ");
sname1 = in.nextLine();
System.out.print("Type sname2: ");
sname2 = in.nextLine();
sql = "INSERT INTO COMPANY (ID,NAME,SNAME1,SNAME2) " +
"VALUES (2, '" + name + "','" + sname1 + "','" + sname2 + "');";
stmt.executeUpdate(sql);
ResultSet rs = stmt.executeQuery( "SELECT * FROM COMPANY;" );
while ( rs.next() ) {
int id = rs.getInt("ID");
String name1 = rs.getString("NAME");
String name2 = rs.getString("SNAME1");
String name3 = rs.getString("SNAME2");
System.out.println( "ID = " + id );
System.out.println( "Name = " + name1 );
System.out.println( "SName1 = " + name2 );
System.out.println( "SName3 = " + name3 );
System.out.println();
}
rs.close();
stmt.close();
c.commit();
c.close();
} catch ( Exception e ) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
System.exit(0);
}
System.out.println("Table created successfully");
}
}
插入时只需使用
NULL
值而不是id
,您可能不应该将其声明为notnull
来源:插入时只需使用
NULL
值而不是id
,可能您不应该将其声明为非NULL
来源:若要获取,需要将其声明为
整数主键
(而不是INT
)
然后,您可以只插入一个空值,或者从insert语句中省略该列。若要获得一个值,您需要将其声明为整数主键(而不是INT
)
然后,您可以只插入一个空值,或者从insert语句中省略该列。在insert userowid
中,而不是2
。在insert userowid
中,而不是2
。