Untuk menyimpan suatu java object ke
table, dibutuhkan field dengan tipe data BLOB, berikut adalah cara menyimpan
java object (dalam hal ini javabean) kedalam database, gw pake JDK 6.0 dan
MySQL 5. Misalkan ada javabean dengan nama BeanTest (usahakan selalu implements
Serializable), dengan struktur dibawah ini :
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
import java.io.Serializable;
public class BeanTest
implements Serializable {
private String
nama;
private String
alamat;
/**
*
@return the nama
*/
public String
getNama() {
return nama;
}
/**
*
@param nama
*
the nama to set
*/
public void setNama(String
nama) {
this.nama
= nama;
}
/**
*
@return the alamat
*/
public String
getAlamat() {
return alamat;
}
/**
*
@param alamat
*
the alamat to set
*/
public void setAlamat(String
alamat) {
this.alamat
= alamat;
}
}
|
lalu buat table di database
1
2
3
4
5
6
7
8
|
create database testest;
use testest;
CREATE TABLE IF
NOT EXISTS x (
satu varchar(5) NOT NULL DEFAULT ”
,
dua blob ,
PRIMARY KEY (satu)
);
|
Lalu buatlah class yang akan
digunakan untuk berhubungan dengan database, gunakan method setData() untuk
memasukkan object ke database, dan getData() untuk mengambil data dari
database.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Main
{
public static void main(String[]
args) {
Main
main = new Main();
//
simpan data ke database
main.setData();
//tarik
isi database
main.getData();
}
private void setData()
{
try {
BeanTest
bean = new BeanTest();
bean.setNama("edwin");
bean.setAlamat("jakarta");
Class.forName("com.mysql.jdbc.Driver");
Connection
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/testest",
"root", "");
java.sql.PreparedStatement
statement = con.prepareStatement("insert into x values (?,?)");
statement.setString(1,
"00001");
statement.setBytes(2,
toBytes(bean));
statement.executeUpdate();
statement.close();
con.close();
}
catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE,
null, ex);
}
}
private byte[]
toBytes(Object object) {
java.io.ByteArrayOutputStream
baos = new java.io.ByteArrayOutputStream();
try {
java.io.ObjectOutputStream
oos = new java.io.ObjectOutputStream(baos);
oos.writeObject(object);
oos.flush();
oos.close();
}
catch (Exception ioe) {
ioe.getMessage();
}
return baos.toByteArray();
}
private void getData()
{
try {
Class.forName("com.mysql.jdbc.Driver");
Connection
con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/testest",
"root", "");
Statement
statement = con.createStatement();
ResultSet
res = statement.executeQuery("select * from x");
while (res.next())
{
Object
o = toObject(res.getBytes(2));
if (o
instanceof BeanTest) {
BeanTest
beanTest = (BeanTest) o;
System.out.println(beanTest.getNama());
System.out.println(beanTest.getAlamat());
}
}
statement.close();
con.close();
}
catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE,
null, ex);
}
}
private Object
toObject(byte[] bytes) {
Object
object = null;
try {
object
= new java.io.ObjectInputStream(
new java.io.ByteArrayInputStream(bytes)).readObject();
}
catch (Exception cnfe) {
cnfe.getMessage();
}
return object;
}
}
|
sekian dan terima kasih,
Wassalam.
Best Casinos Near Me (MapYRO) | 2021 - Mapyro
BalasHapusFind the best casinos in your area 안동 출장안마 today. 의왕 출장샵 MapYRO provides 평택 출장샵 the best casino information 남양주 출장안마 on all of your local businesses 경주 출장샵 and visitors in the United States.