Contoh Project CRUD Menggunakan NetBeans Platform dan Java Persistence API 2


NetBeans Platform 6.9

NetBeans Platform 6.9

Peralatan yang diperlukan :

  1. Java Development Kit 1.6
  2. NetBeans Platform 6.9
  3. MySQL Database Server 5.1

Iseng-iseng, bikin project Crud menggunakan NetBeans Platform dan Java Persistence API 2, lumayan buat belajar lah 😀 Crud nya juga gak terlalu simple, lumayan agak rumit (artinya banyak simplenya 😀 ), ada 2 tabel, user dan group, dan satu user punya satu group, tapi satu group bisa punya kosong atau lebih dari satu group 😀

Ini screenshootnya 😀

Crud Persistence

Crud Persistence

Crud Persistence - Groups

Crud Persistence - Groups

Crud Persistence - Users

Crud Persistence - Users

Crud Persistence - Create User

Crud Persistence - Create User

Crud Platform - Help

Crud Platform - Help

Silahkan download projectnya disini :

http://swing-usu.googlecode.com/files/crud-persistence.zip

Iklan

38 pemikiran pada “Contoh Project CRUD Menggunakan NetBeans Platform dan Java Persistence API 2

  1. Siang Mas Echo,
    Terima kasih sudah berbagi ilmunya. Mas , saya ada tugas kuliah bikin java calender/date picker beserta databasenya. tolong kasih pencerahannya ya mas. Terima kasih.

  2. mas eko, maaf nih numpang nanya,,,

    mumpung bahas CRUD dan tabel jg… hehehe..
    sy uda sebar jg nih unek2 sy di beberapa forum,, tinggal di Blog mas eko yg belum,, jd sy post yah…

    sy bikin tabel di topComponent NB Platform. tabel model yg extends ke DefaultTableModel sy bikin terpisah. kemudian tabel model ini uda dimasukan kdalam JTable yg ditarik lgsung dari Palette. di Custom code Jtable ini jg uda di atur macem2 pengaturan termasuk :

    TabelModelku.addTableModelListener(this);

    nah di topcomponent sy implemets TableModelListener yg scr otomatis memunculkan method tableChanged(TableModelEvent e).

    nah,,, di dalam method tableChanged ini sy kasih beberapa event untuk menangkap perubahan yg terjadi di setiap row tabel. ini event-nya:

    int row = JTable.getEditingRo();
    int col = JTable.getEditingColumn();

    String nilai = Jtable.getValueAt(row,col).toString();

    msh didalam method tableChanged,,, sy coba di println nilai td…

    System.out.println(nilai);

    tapi sy lihat di Output, nilai ini tidak pernah tercetak,,,

    Perlu diketahui,, sebelumnya malah saya bikin juga tabel UI sendiri,, artinya saya tidak ambil JTable dr palette. cara ini dicoba jg tidak pernah berhasil….

    Mohon dengan sangat pencerahannya mas…..

    Thanks … ^_^

  3. sebelumnya thanks uda direspon mas…

    gini,, di tabel yg sy bikin ada 3 kolom. kolom 1> nama Item, kolom2> nilai tahun sekarang, kolom3> nilai tahun sebelumnya…

    item di kolom1 sy ambil dr database. item ini bentuknya hierarki. jd ada root, parent, child, sibling dan leaf. kolom2 dan kolom3 untuk entri nilai.
    validasi sy, yg bisa diisi(entri) adalah row yg memuat leaf saja di kolom2 dan kolom3… row yg lain hanya menampilkan penjumlahan dr child2nya,,,

    sy uda bikin method yg merekursi nilai2 yg akan dijumlahkan sedemikian rupa hingga parent2 di atasnya terisi dgn jumlah nilai yg benar…

    nah,,, sepengetahuan sy,,, untuk menagkap nilai ini bisa melalui getEditingRow, getEditingColumn plus getValueAt yg dimasukan ke dlm method tableChanged. getSelected jg bisa sih,,, tp sepertinya lbh tepat getEditing deh…

    karena tableChanged yg sy anggap tdk bisa dijalankan yg menyebabkan nilai tdk tertangkap, maka parent2 tdk pernah bisa menampilkan nilai penjumlahan dr nilai2 tsb.

    fungsi rekursi ini sy tuliskan jg di Source topComponent sama seperti tableChanged.

    maaf kalo terlalu panjang…
    kalo tidak jelas, sy bisa mengirimkan source code-nya seandainya mas eko berkenan.

  4. saia mau tanya nie, …
    saia lagi kepingin belajar tentang buat database toko tapi lewat java, jadi interfacenya dari java. seperti form masukan barangnya, form pegawainya, itu gimana ya biar konek n masuk ke database nya (sql server 2005)… terimakasih..
    mohon petunjuknya… kalo bisa dikasih contohnya sekalian yang udah jadi.. tx

  5. hallo mas…?

    mau nanya neh… kira2 bisa gak pake file api win32 untuk komponen2 standard windows…
    mohon pencerahannya.. or link pendukung….

  6. Mas, kalau kita mau ngambil nilai dari suatu tabel sql, msalnya ada data “1” menjadi integer yang disimpan di dalam variable, gimana caranya ya?

  7. udah aku donlud.., tapi cara ngebukanya ama ngejalanin gmn yak ..soalnya baru neh kita di java
    tolong diberi pencarahannnya.,STEP-STEP NYA…tks

  8. mas kok keluar gini

    java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:529)
    at java.net.Socket.connect(Socket.java:478)
    at java.net.Socket.(Socket.java:375)
    at java.net.Socket.(Socket.java:218)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253)
    at com.mysql.jdbc.MysqlIO.(MysqlIO.java:292)
    Caused: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
    at com.mysql.jdbc.MysqlIO.(MysqlIO.java:343)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2137)
    Caused: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2214)
    at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:781)
    at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:46)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:284)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:154)
    at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
    at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:51)
    at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:168)
    at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:384)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1385)
    at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:891)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
    at khannedy.crud.persistence.service.jpa.PersistenceUtilities.getManagerFactory(PersistenceUtilities.java:12)
    at khannedy.crud.persistence.service.jpa.Installer.restored(Installer.java:16)
    at org.netbeans.core.startup.NbInstaller.loadCode(NbInstaller.java:426)
    at org.netbeans.core.startup.NbInstaller.load(NbInstaller.java:366)
    at org.netbeans.ModuleManager.enable(ModuleManager.java:944)
    at org.netbeans.core.startup.ModuleList.installNew(ModuleList.java:318)
    at org.netbeans.core.startup.ModuleList.trigger(ModuleList.java:254)
    at org.netbeans.core.startup.ModuleSystem.restore(ModuleSystem.java:286)
    at org.netbeans.core.startup.Main.getModuleSystem(Main.java:172)
    at org.netbeans.core.startup.Main.start(Main.java:302)
    at org.netbeans.core.startup.TopThreadGroup.run(TopThreadGroup.java:114)
    [catch] at java.lang.Thread.run(Thread.java:662)

    apanya yang kurang ya ?

  9. Kang mau tanya dikit. saya ada bikin Program Diskon dengan Netbeans 7.0.1, dimana database nya menggunakan mysql 5.5.17. tujuannya, program ini akan menampilkan dan menghitung diskon dengan syarat-syarat tertentu, dimana daftar nya sudah dibuat di mysql dengan nama database belanja. saya membuat 4 class, yaitu: class koneksi (untuk menghubungkan netbeans dengan database di mysql), class Belanja (untuk menentukan syarat diskon), dan class Java Jframe GUI (Menghitung diskon pada event handler button “hitung”), dan class main untuk menampilkan GUI. sepertinya tidak ada kesalahan pada coding yang saya buat, karena tidak ada tanda seru merah atau kuning pada setiap class. di run pun juga berhasil, saat saya klik tombol hitung setelah memasukkan id pelanggan sebagai primary key-nya, keluar pesan menyatakan database dan netbeans terkoneksi (yang sebelumnya sudah saya atur di class koneksi untuk menampilkan pesan tersebut), tetapi semua text field kosong. padahal maksud saya semua textfield harusnya terisi sesuai dengan database di mysql. dan pada jendela output keluar pesan-pesan sebagai berikut:
    Des 14, 2011 8:03:23 PM Diskon.GUI hitungBonus
    SEVERE: null
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘=1’ at line 1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    at com.mysql.jdbc.Util.getInstance(Util.java:384)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2562)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2512)
    at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1476)
    at Diskon.GUI.hitungBonus(GUI.java:195)
    at Diskon.GUI.access$000(GUI.java:24)
    at Diskon.GUI$1.actionPerformed(GUI.java:81)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6504)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6269)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4860)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4686)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2713)
    at java.awt.Component.dispatchEvent(Component.java:4686)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
    at java.awt.EventQueue.access$000(EventQueue.java:101)
    at java.awt.EventQueue$3.run(EventQueue.java:666)
    at java.awt.EventQueue$3.run(EventQueue.java:664)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:680)
    at java.awt.EventQueue$4.run(EventQueue.java:678)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

    Mohon bantuannya Kang, saya sudah bolak balik forum tapi tidak ada yang menanggapi. semoga pilihan saya kesini tidak salah. Terima kasih

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s