Bagaimana Menghubungkan Database MySQL

Melalui Driver JDBC Pada

StarOffice/OpenOffice.org

Suatu pengenalan singkat bagaimana menggunakan, dibawah Windows, database MySQL

memakai JDBC tanpa ODBC.

Disajikan oleh

Proyek Dokumentasi OOo

Download dan install MySQL:

Pada http://www.mysql.org/downloads Anda akan menemukan database, antar muka grafis untuk MySQLGUI, dan Driver JDBC pada API.

Pilihan sangat baik untuk mengatur MySQL adalah PHPMyAdmin. Untuk menggunakan ini Anda membutuhkan Server Web yang menjalankan PHP. Tetapi ini akan menjadi mudah manakala Anda menggunakan PHPTriad atau FOXServer, kedua Tool ini dibuat untuk memudahkan instalasi dan konfigurasi Server Web Apache dengan MySQL, PHP, dan PHPMyAdmin.

Anda dapat menemukan kesemuanya itu di: http://sourceforge.net/projects/foxserv bzw.

http://sourceforge.net/projects/phptriad

Disini, saya menggunakan PHPTriad disebabkan ukurannya lebih kecil dan semuanya sudah termasuk tanpa Driver JDBC.

Setelah menjalankan instalasi Program Anda memiliki Server Web Apache dengan PHP, PHPMyAdmin, dan MySQL sebagai database. Sebagai Master-User adalah root tanpa password, ini tidaklah aman, tapi untuk PC lokal, ini sangat berguna untuk pembelajaran. Nantinya, Anda dapat membuat user dan password, tetapi setelah semuanya berjalan dan Anda mempunyai pengalaman lebih dengan database yang nyata dan fitur-fiturnya.

Buka browser dan coba: localhost, apakah Apache dan PHP sedang berjalan. Dengan PHPMyAdmin cek Database MySQL.

Untuk memeriksa jika sesuatu telah hilang, mulai dengan Start => programs =>PHPTriad => Apache dan MySQL. Begitu juga program-program winmysqladmin.exe,mysqlmanager.exe, dan barangkali mysql.exe (diluar shell DOS) dapat menjadi bermanfaat. Anda akan menemukan semua itu dalam direktori /bin pada

c:\apache\mysql\bin.

Dengan program-program ini saja, kita memiliki sistem yang berjalan , disebabkan antarmuka melalui PHPMyAdmin cukup kapabel dan mudah.

Sekarang dengan PHPMyAdmin, kita membuat database baru, barangkali dinamai mydb, dan kemudian tabel disebut personen, dengan field sebagai berikut. Ini adalah string SQL dengan definisi-definisinya:

Kita definisikan p_id sebagai Primary-Key.

CREATE TABLE personen (

p_nr int(10) NOT NULL,

p_anrede char(20),

p_titel char(20),

p_vname char(30),

p_name char(30),

p_strasse char(30),

p_hnr char(10),

p_land char(3),

p_plz char(5),

p_ort char(30),

p_zusatz char(50),

p_art smallint(6),

p_tel1 char(20),

p_id int(10) NOT NULL AUTO_INCREMENT,

p_tel2 char(20),

p_telm char(20),

PRIMARY KEY (p_id)

);

Disebabkan OOo mempunyai cukup banyak permasalahan untuk terhubung melalui JDBC, gunakan PHPMyAdmin untuk membuat, mengubah tabel dan database, atau gunakan String SQL asli diluar OOo. Ini akan bekerja dengan baik.

Selanjutnya, Anda harus mengistall Driver JDBC. Kita salin berkas

mm.mysql-2.0.4-bin.jar, barangkali ke direktori

c:\javaclasses, yang telah kita buat sebelumnya.

OOo harus mengetahui path untuk menemukan driver ini. Edit berkas

<Openoffice-InstallDirectory>\user\config\java.ini dengan editor teks dan masukkan pada [JAVA] di SystemClasspath= berkas .jar -

ini, sebagai berikut:

[Java]

Java=1

JavaScript=1

Applets=1

Home=F:\jdk1.3.1_01

VMType=jdk

Version=1.3.1

RuntimeLib=F:\jdk1.3.1_01\jre\bin\hotspot\jvm.dll

SystemClasspath=F:\javaclasses\mm.mysql-2.0.11-bin.jar; ...<here are the old

entries>

Sekarang kita dapat memulai OOo.

Melalui Tools ==> Data Sources Anda mendapatkan Menu untuk mengkonfigurasi DataSources untuk OpenOffice.org.

Disini kita pilih [New Data Source]

Sekarang ambil [General]

Name: JDBCTest1 (=ini adalah Name bebas dalam OOo)

Connection:

Database type: JDBC

Data Source-URL: jdbc:mysql://localhost/mydb

dimana localhost dapat juga berupa nama DNS pada jaringan lokal atau nama DNS dari PC lokal anda. mydb merupakan nama dari database yang telah kita buat sebelumnya dengan PHPMyAdmin.

Sekarang pilih [JDBC:]

JDBC Driverclass: org.gjt.mm.mysql.Driver

URL: jdbc:mysql://localhost/mydb (normalnya dimasukkan sekarang)

Username: root (manakala kita tidak mengubah Users pada MySQL)

Password required: kita biarkan empty

Character Set: System (anda dapat mengubahnya nanti)

Pada [Tables] seharusnya Anda sekarang melihat tabel personen yang telah kita buat sebelumnya. Disini Anda dapat membuat beberapa tabel, query lagi dan lain sebagainya.

Menu ini dapat Anda akses dengan mudah menggunakan tombol F4.

Jadi Anda sekarang memiliki database MySQL yang berjalan melalui JDBC dan dapat menggunakannya untuk kerja Anda. Dikarenakan saya tidak dapat menulis ke dalam database dengan formula normal OOo, saya telah mencoba dengan Basic dan dapat menulis ke database. Ini seperti ketika Anda menuliskan pernyataan SQL secara langsung atau melalui Basic, Anda memiliki Akses-write ke Database. Dengan formula normal OOo, Anda hanya dapat membacanya, pada 641c.

Jika sesuatu disini salah, atau bisa membuat lebih baik, ijinkan saya mengetahuinya. Saya menulis baris ini disebabkan saya sudah mencari dan tidak menemukan tulisan mengenai pembuatan koneksi ini.

'Berikut sedikit contoh mengkoneksikan database:

' Menghubungkan ke koneksi aktif diluar suatu Formula:

oConn = thiscomponent.drawpage.forms(0).ActiveConnection

oTables = oConn.Tables()

mTableNames = oTables.getElementNames()

' Koneksi ke database yang telah eksis:

Function GetConnection(sDBName as String)

If Not IsNull(oConn) Then

oConn.Dispose()

End If

oDB = CreateUnoService("com.sun.star.sdb.DatabaseContext")

oConn = oDB.GetByName(sDBName).GetConnection("","")

end function

' Meload Dialog yang terdapat di Library lain:

DialogLibraries.LoadLibrary("Standard") ' Falls der Dalog in anderer Lib

wäre

dDB = CreateUnoDialog(DialogLibraries.Standard.DBDia1

dDB.execute()

' untuk semua tabel dalam database:

for n= LBound(mTableNames) to UBound(mTableNames)

print "Table " + CStr(n) + ": " + mTableNames(n)

oMetadata = oConn.getMetadata()

if oTables.hasbyName(mTableNames(n)) then

msgbox "Tabelle: " + oTables.getbyName(mTableNames(n) + " existiert."

end if

' Apa yang bisa dilakukan database

sSubQuery = oMetadata.supportsSubqueriesInComparisons()

sSQL = oMetadata.supportsANSI92EntryLevelSQL()

sKeyWords = oMetadata.getSQLKeywords()

sMsg = "Subquery support in comparisions " + sSubquery

sMsg = sMsg + Chr(13) + "ANSI-SQL: " + sSQL

sMsg = sMsg + Chr(13) + sKeywords

msgbox sMsg

oColumns = oConn.Tables(n).columns

mColumnNames = oColumns.getElementNames()

' Untuk semua Kolom dari tabel yang nyata:

for n1 = LBound(mColumnNames) to UBound(mColumnNames)

sName = mColumnNames(n1)

oColumn = oColumns.getByName(sName)

sMsg = "Column: " + sName

sMsg = sMsg + Chr(13) + " Default Value: " + oColumn.DefaultValue

sMsg = sMsg + Chr(13) + " Description: " + oColumn.Description

sMsg = sMsg + Chr(13) + " IsAutoIncrement: " + oColumn.IsAutoIncrement

sMsg = sMsg + Chr(13) + " IsNullable: " + oColumn.IsNullable

sMsg = sMsg + Chr(13) + " IsRowVersion: " + oColumn.IsRowVersion

sMsg = sMsg + Chr(13) + " Precision: " + oColumn.Precision

sMsg = sMsg + Chr(13) + " Scale: " + oColumn.Scale

sMsg = sMsg + Chr(13) + " Type: " + oColumn.Type

msgbox sMsg

next n1

Next n

'pilihan yang mudah

if oTables.hasbyName("personen") then

oStatement = oConn.createStatement()

oResultset = oStatement.executeQuery("Select p_id, p_anrede, p_titel,

p_vname," +_

"p_name from personen where p_anrede = 'Herr'")

while oResultset.next

print oResultset.getString(1) + ":" +_

oResultset.getString(2)+ oResultset.getString(3) +_

oResultset.getString(4)+ oResultset.getString(5)

Wend

end if

dim iOK as integer

iOK = msgbox ("Neuen Datensatz anlegen?",1)

while iOK = 1

Dim sText As String

sText = InputBox ("Irgendwas eingeben:","Lieber User")

MsgBox ( sText , 64, "Bitte bestätigen Sie die Eingabe!")

iOK = msgbox ("Neuen Datensatz anlegen?",1)

Wend

'keluar sub

' Fungsi insert ini hanya sekali , disebabkan p_id adalah Primary-Key,

' ini hanya mengetes untuk menulis ke database:

if oTables.hasbyName("personen") then

oStatement = oConn.createStatement()

oInsert = oStatement.execute("insert into personen(p_id, p_anrede,"+_

" p_titel,p_vname, p_name) values (4,'Herr','Prof. Nat. Rer.'," +_

"'Mathias','Irgendwer')"

end if

End Sub

'-------------------------------------------------------------------------------

'Exit Dialog

sub exit_dialog

dDB.endExecute()

end sub

' ------------------------------------------------------------------------------

Penghargaan

Pengarang: Hermann Kienlein [hermann@kienlein.com]

Terima kasih kepada Hermann untuk penerjemahan dan membuatnya tersedia pada OOoDocs.

Integrasi oleh: Richard Holt

Modifikasi terakhir: 24.February.2002

Kontak: OOoDocs Project

Lisensi

Dokumen ini dirilis dibawah aturan dan kondisi dari GNU Public License Documentation.

© 2002 Hermann Kienlein

© 2002 Richard Holt

Dokumentasi How-To OOo

http://ooodocs.sourceforge.net/	7

Sophie Gautier

2002-04-17T17:37:19

Willy Sudiarto Raharjo

Guy Capra