Thanks for clearing that one out... Soal solution dimana configuration file nya di masukin ke jar... This totally beats the purpose actually... Karna tujuan nya kita pake configuration file khan awal nya supaya configuration ini jadi parameterized.. Jadi bisa di ubah tanpa perlu bongkar¹ jar nya... Metoda paling elegan menurut gue sih parameter ini di feed dari script yang nge-load jar nya... java jar MainJar.jar db.ur=asdasdasd db.user=zxczxc db.passwd=qweqweqwe Dapet nilai nya dari mana ituh parameternya? Terserah.. Mau script nya ngebaca properties file? Text parsing sederhana.. Yang udah gue bilang tadi.. Pake grep sama sed ajah... Ato mau di hardcode¹ Inti nya.. Don¹t try to fix environment issue sih aturan gue... Kalo emang network nya putus.. Ya udah.. Diem..jangan connect.. Biarin throw... Jangan coba benerin... Cari ip lain lah.. Coba schema laen lah.. Coba user laen lah..
Adelwin Handoyo - adel...@gmail.com - Sent from my Mac From: Martinus Ady H <mrt.itnewb...@gmail.com> Reply-To: JUG-Indonesia <jug-indonesia@yahoogroups.com> Date: Tue, 09 Feb 2010 18:36:41 +0700 To: JUG-Indonesia <jug-indonesia@yahoogroups.com> Subject: Re: [JUG-Indonesia] Re: Membuat Koneksi Java Mysql dari textfield jancrot wrote: >> U're reinventing the wheel... >> >> Hal ini khan udah ada di interface DataSource >> >> Kenapa di bikin ulang? > > Ada ya? Waw.. > Btw, kenapa ga dikasi tau dari awal ke orang yang nanya? Kalo gua jadi elu sih lebih baik gua kasi tau dari awal ketimbang ngomong "Gue lagi mikirin kenapa lu mau property2 ginian jadi editable by user"... > > Mungkin maksud pak Adelwin itu gini loh, drpd bikin 1 class lagi yg ngurusin username, hostname, password. Knp ga pakai DataSource yg emang by default udah ada disetiap driver jdbc (?) Klo di MySQL sih bisa pakai MySQLDataSource[1], di class ini terdapat method2x yg udah pak Jancrot sebutin. > Adelwin wrote: > contoh nya... kalo pake some kind of container... yang membatasi disk access... contoh paling gampang nya oracle container... > > ini enggak bisa di jalanin... ituh file name nya relative, relative darimana? Dan container nya oracle juga gak nyimpen file di disk... > > ato contoh lain nya... > di corporate environment, > > management pasti lebih milih gimana pun caranya supaya walopun mesin nya di pindah... ato db nya di pindah mesin pun... IP nya harus tetep sama... > > karna mendingan effort ngerubah IP di satu mesin daripada ngubah configuration di semua app... > > blablablablablabla > > banyak pertimbangan lah... > > maksud gua tuh... gak ada satu cara pun yang mutlak bener... > > If it works for you... then it's right... > > Kalo tetep mau pake textfield... > > Assuming lu pake plain JDBC yah... > > JTextField dbURLTextField = new JTextField(); //mendingan di kasi default value... trust me...dari pada ngetik url melulu... > > //code to put the textfield onto the containerPane > > Lalu on button click... > > String dbUrl = dbURLTextField.getText(); > > Connection connection = DriverManager.createConnection(dbUrl); > > > > Maap kalo kepanjangan :p Klo misalkan tuh file jdbc.properties dimasukin ke dalam jar juga gmn ? :D Jd bikin 1 project isinya cuma file tsb :) Trs nanti panggilnya pakai MyClass.getResourceAsStream("/nama/packages/tempat/file/jdbc.properties"); Klo modelnya spt ini, ga akses ke file yg diluar kan. Tapi tetep akses ke file *jar dan *.jar ini dijadikan sebagai dependencies di aplikasi. Pasti deh ke load :D > Soalnya saya ga ada hubungan langsung atau bukan programmer perusahaan itu. Jika suatu saat koneksi database di ganti kan tinggal input di kolom kolom aja. saya juga mendistribusikannya dengan .jar. Sehingga ketika di build source codenya ga bisa diganti lagi. Ok deh, klo emang requirement-nya spt itu. Buat gini aja (intinya sih tetep baca file properties :D). Klo misalkan aplikasinya konek ke server n ga bisa (error) pasti keluar stack trace-nya kan ? Nah di dalam block try catch-nya coba di redirect ke halaman modifikasi database connection. Nah disini timbul masalah, emang smua user boleh se-enak sendiri modifikasi koneksi ? Solusi-nya pakai default password yg ga di simpan ke database (Bisa dimasukkin ke file properties juga utk isian default password). Nah default password ini kasih ke *admin* di client, nah sampai sini mungkin *udah* sedikit terselesaikan. Tp ada lagi loh masalah-nya, gmn klo misalkan ada bbrp aplikasi web yg konek ke 1 db, dan di tempat yg terpisah ? Mau ga mau ya tetep hrs edit 1-1 :D Kira-2x sampai sini dpt gambaran ? Klo udah, sekarang gmn nerapin-nya? Caranya bikin 1 project yg isinya cuma file properties tersebut (katakanlah nama project-nya com.jug.config) kemudian build biasa biar jadi sebuah file *.jar. Setelah jd file *.jar tambahkan sebagai library ke aplikasi utama. Nah masalah ada, kan tuh file properties isinya plain text. Gmn donk klo spt ini ? Yah bisa banyak macam cara sih utk enkripsi, cara paling gampang pakailah jasypt[2] utk enkrip file properties :) Nah klo smua-nya udah jadi, sekarang gmn cara bacanya ? Nah klo ini bisa dicari di google :D Klo ga salah bisa dibaca pakai method .getResourceAsStream deh :D (CMIIW) [1] http://www.docjar.com/docs/api/com/mysql/jdbc/jdbc2/optional/MysqlDataSource .html [2] http://www.jasypt.org/ -- Regards, Martinus Ady H. Registered Linux User #410906 Personal Blog : http://martinusadyh.web.id/ Planet NetBeans ID : http://planetnetbeans.org/id/index.html Planet Slackware ID : http://planet.slackware-id.org/ ------------------------------------ Kalau mau keluar dari mailing list ini, caranya kirim sebuah email ke jug-indonesia-unsubscr...@yahoogroups.com. Jangan lupa, website JUG Indonesia adalah http://www.jug.or.id Yahoo! Groups Links