Friday 15 July 2011

netbeans - How to auto Increment a primarykey in JDBC sql -



netbeans - How to auto Increment a primarykey in JDBC sql -

can please guys help me, i'm having problem on making primary key auto-increment, table name books , column want auto-increment serial_no primary key.

public class donate extends javax.swing.jframe { connection con; statement stmt; resultset rs; preparedstatement pst; defaulttablemodel loginmodel = new defaulttablemodel(); int currow = 0; /** * creates new form donate */ public donate() { initcomponents(); doconnect(); showall(); } void showall(){ try{ rs = stmt.executequery("select * books"); while(rs.next()) { string book = rs.getstring("book_title"); string categorie = rs.getstring("category"); string status = rs.getstring("book_status"); string donators = rs.getstring("donator"); int serial_nos = rs.getint("serial_no"); loginmodel.addrow(new object[]{book, categorie, status, donators, serial_nos}); } }catch(sqlexception err){ system.out.println(err); } } void doconnect( ) { try{ //connect database string host = "jdbc:derby://localhost:1527/dafuq7"; string uname ="dafuq7"; string upass ="dafuq7"; con = drivermanager.getconnection(host, uname, upass); //execute sql , load records resultset stmt = con.createstatement(resultset.type_scroll_insensitive, resultset.concur_updatable); string sql = "select * books"; rs = stmt.executequery(sql); } catch(sqlexception err){ joptionpane.showmessagedialog(donate.this, err.getmessage()); } }

and here may button, when input info submitted table books

private void jbutton1actionperformed(java.awt.event.actionevent evt) { string bookttl = bookt.gettext(); string yourn = yn.gettext(); string categ = cat.getselecteditem().tostring(); string bstat = bs.getselecteditem().tostring(); seek { rs.movetoinsertrow(); rs.updatestring( "book_title", bookttl ); rs.updatestring( "category", yourn ); rs.updatestring( "book_status", categ ); rs.updatestring( "donator", bstat ); loginmodel.addrow(new object[]{bookttl, yourn, categ, bstat}); rs.insertrow( ); stmt.close(); rs.close(); stmt = con.createstatement(resultset.type_scroll_sensitive,resultset.concur_updatable); string sql = "select * books"; rs = stmt.executequery(sql); } grab (sqlexception err) { system.out.println(err.getmessage() ); }// todo add together handling code here: }

btw found way around doing this, grabbing table , reconstructing , set code in create table script

serial_no integer default autoincrement: start 1 increment 1 not null primary key

simply define serial_no column int primary key generated identity , derby automatically assign numbers you. here illustration code:

class="lang-java prettyprint-override">public static void main(string[] args) { seek (connection conn = drivermanager.getconnection( "jdbc:derby:c:/__tmp/derbytest;create=true")) { string sql; sql = "drop table books"; seek (statement s = conn.createstatement()) { s.executeupdate(sql); } grab (exception e) { // assume table did not exist } sql = "create table books (" + "serial_no int primary key " + "generated identity, " + "title varchar(100))"; seek (statement s = conn.createstatement()) { s.executeupdate(sql); } sql = "insert books (title) values (?)"; seek (preparedstatement ps = conn.preparestatement(sql)) { ps.setstring(1, "the book of foo"); ps.executeupdate(); ps.setstring(1, "the book of bar"); ps.executeupdate(); ps.setstring(1, "the book of baz"); ps.executeupdate(); } sql = "select * books"; seek (statement s = conn.createstatement()) { seek (resultset rs = s.executequery(sql)) { while (rs.next()) { system.out.println(string.format( "%d: %s", rs.getint("serial_no"), rs.getstring("title"))); } } } } grab (sqlexception se) { se.printstacktrace(system.out); system.exit(0); } }

which produces

class="lang-none prettyprint-override">1: book of foo 2: book of bar 3: book of baz

sql netbeans jdbc derby

No comments:

Post a Comment