Login to Website

Login dengan Facebook

 

Post Reply
Thread Tools
  #1  
Old 11th November 2011
Braincode's Avatar
Braincode
Ceriwis Addicted
 
Join Date: Nov 2011
Posts: 4,638
Rep Power: 20
Braincode mempunyai hidup yang Normal
Default [SHARE] Generated ID with AUTO_INCREMENT MySQL di Java

Bagi para pembaca sekalian yang sudah sering menggunakan JDBC, pasti sudah tidak asing dengan CRUD operations. Khususnya pada bagian CREATE, kadang kita dihadapi dengan permasalahan AUTO INCREMENT pada sebuah colum di tabel MySQL kita. Setelah melakukan insert, trus muncul pertanyaan kaya gini�


Code:

Person p = new Person();
p.setName("Billy");
DAO.insert(p);
System.out.println(p.getId());

tapi malah menghasilkan null. Padahal kita maunya setelah Create ID nya si person yang baru itu udah terisi secara AUTO INCREMENT dengan mysql? Lalu muncul pertanyaan. �Ah cari aj id nya pake SELECT id FROM person WHERE name=�Billy��. Haha, pastinya gak keren dong?

Setelah google kesana kemari, ternyata sudah ada topic demikian di article nya MySQL, silahkan cek di Using Auto_Increment keys with Connector. Anda bisa mengikuti yang sudah dijelaskan disana, atau membaca tulisan saya yang cantik ini� hahahah .



Dimisalkan kita punya table person dengan field id dan name, diamana field id merupakan PK dan AI(auto_increment). Lalu kita mempunya kelas DAO sendiri untuk akses data objectnya,seperti dibawah ini.




Code:

public abstract class DAO{

public static void insert(Person p) throw Exception {
String sql = "INSERT INTO person(name) values(' "+p.getName()+" ')";
// dimisalkan kita sudah memiliki kelas Connection untuk koneksi Database MySQL
Statement ps = Connection.getConnection().
createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
ps.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
ResultSet rs = ps.getGeneratedKeys();
if(rs.next()){
p.setId(rs.getInt(1));
}
}

}



Lalu pada kelas Main, misalnya seperti ini.




Code:

public static void main(String[] args) {
Person p = new Person();
p.setName("Billy");
try {
new DAO().insert(p);
} catch (Exception e) {
}
System.out.println(p.getId());
}

Lalu pada kelas Main, misalnya seperti ini.







TS udah gagal 19x brarti



----------------------------------------

yanuar7199.wordpress.com




Sponsored Links
Space available
Post Reply




Switch to Mobile Mode

no new posts