Simpan Image Menggunakan VB.NET Dengan SQL Server

 

Berikut adalah cara simpan image di VB.net pada SQL Server

1. Buat database dan table

1.1. Database : dbimage

create database dbimage;

1.2. Table : tblimage

CREATE TABLE [dbo].[tbl_images](

 [nama] [varchar](50) NULL,

 [gambar] [image] NULL

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]


2. Design Tampilan VB.Net : frmSimpanImage.vb

Componen :

  • Datagridview
  • Textbox
  • 2 Button
  • Image



3. Buat module : mdlKoneksi.vb

Imports System.Data.SqlClient

Module mdlKoneksi

    Public konek As SqlConnection

    Sub konekDB()

        Try

            konek = New SqlConnection _

                ("Data Source=DESKTOP-5VBP3C9\SQLEXPRESS;" _

            + "Initial Catalog=dbimage;Integrated Security=True")

            konek.Open()

        Catch ex As Exception

            MsgBox("konek Kedatabase Bermasalah,  Periksa koneksi ")

        End Try

    End Sub

End Module


4. Tambahkan Code pada frmSimpanImage.vb 

Imports System.Data.SqlClient

Imports System.IO

Sub TampilkanData()

    konekDB()

    Dim dA As SqlDataAdapter = New SqlDataAdapter _

    ("SELECT nama,gambar FROM tblimages", konek)

    Dim dS As DataSet = New DataSet

    dS.Clear()

    dA.Fill(dS, "tbl_images")

    DataGridView1.DataSource = (dS.Tables("tblimages"))

    dA.Dispose()

    konek.Close()

End Sub


5. Tambahkan code pada button1_click : untuk mengambil gambar menggunakan opendialog

Private Sub Button1_Click(sender As Object, e As EventArgs) _

    Handles Button1.Click

    If OpenFileDialog1.ShowDialog() =

        Windows.Forms.DialogResult.OK Then

        PictureBox1.BackgroundImage =

            Image.FromFile(OpenFileDialog1.FileName)

        PictureBox1.BackgroundImageLayout =

            ImageLayout.Zoom

    End If

End Sub


6.  Tambahkan code pada button2_click : untuk menyimpan image

Private Sub Button2_Click(sender As Object, e As EventArgs) _

    Handles Button2.Click

    If TextBox1.Text = "" Then

        MsgBox("Isikan nama Gambar")

    Else

        konekDB()

        Dim CMD As SqlCommand

        Dim SQL As String

        SQL = "INSERT INTO tblimages VALUES(@nama, @gambar) "

        CMD = New SqlCommand(SQL, konek)

        CMD.Parameters.AddWithValue("@nama", TextBox1.Text)

        Dim MemoryStream As New MemoryStream

        PictureBox1.BackgroundImage.Save(MemoryStream,

        PictureBox1.BackgroundImage.RawFormat)

        Dim Dgambar As Byte() = MemoryStream.GetBuffer

        Dim Images As New SqlParameter("@gambar", SqlDbType.Image)

        Images.Value = Dgambar

        CMD.Parameters.Add(Images)

        CMD.ExecuteNonQuery()

        MsgBox("Gambar Berhasil Disimpan")

        TextBox1.Clear()

        CMD.Dispose()

        konek.Close()

        TampilkanData()

    End If

End Sub


7.  Tambahkan code pada form_load

Private Sub frmSimpanImages_Load(sender As Object, e As EventArgs) _

    Handles MyBase.Load

    TampilkanData()

End Sub


Jalankan:



Membuat CRUD CSV Menggunakan Python

 


Berikut adalah membuat CRUD [Create , Read , Updae , Delete ] File CSV menggunakan Phyton 

Buat File phyton 

import csv
import os

csv_filename = 'contacts.csv'

def clear_screen():
    os.system('cls' if os.name == 'nt' else 'clear')

def show_menu():
    clear_screen()
    print("=== APLIKASI KONTAK ===")
    print("[1] Lihat Daftar Kontak")
    print("[2] Buat Kontak Baru")
    print("[3] Edit Kontak")
    print("[4] Hapus Kontak")
    print("[5] Cari Kontak")
    print("[0] Exit")
    print("------------------------")
    selected_menu = input("Pilih menu> ")
    
    if(selected_menu == "1"):
        show_contact()
    elif(selected_menu == "2"):
        create_contact()
    elif(selected_menu == "3"):
        edit_contact()
    elif(selected_menu == "4"):
        delete_contact()
    elif(selected_menu == "5"):
        search_contact()
    elif(selected_menu == "0"):
        exit()
    else:
        print("Kamu memilih menu yang salah!")
        back_to_menu()

def back_to_menu():
    print("\n")
    input("Tekan Enter untuk kembali...")
    show_menu()


def show_contact():
    clear_screen()
    contacts = []
    with open(csv_filename) as csv_file:
        csv_reader = csv.reader(csv_file, delimiter=",")
        for row in csv_reader:
            contacts.append(row)

    if (len(contacts) > 0):
        labels = contacts.pop(0)
        print(f"{labels[0]} \t {labels[1]} \t\t {labels[2]}")
        print("-"*34)
        for data in contacts:
            print(f'{data[0]} \t {data[1]} \t {data[2]}')
    else:
        print("Tidak ada data!")
    back_to_menu()


def create_contact():
    clear_screen()
    with open(csv_filename, mode='a') as csv_file:
        fieldnames = ['NO', 'NAMA', 'TELEPON']
        writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
        
        no = input("No urut: ")
        nama = input("Nama lengkap: ")
        telepon = input("No. Telepon: ")

        writer.writerow({'NO': no, 'NAMA': nama, 'TELEPON': telepon})
        print("Berhasil disimpan!")

    back_to_menu()


def search_contact():
    clear_screen()
    contacts = []

    with open(csv_filename, mode="r") as csv_file:
        csv_reader = csv.DictReader(csv_file)
        for row in csv_reader:
            contacts.append(row)

    no = input("Cari berdasrakan nomer urut> ")

    data_found = []

    # mencari contact
    indeks = 0
    for data in contacts:
        if (data['NO'] == no):
            data_found = contacts[indeks]
            
        indeks = indeks + 1

    if len(data_found) > 0:
        print("DATA DITEMUKAN: ")
        print(f"Nama: {data_found['NAMA']}")
        print(f"Telepon: {data_found['TELEPON']}")
    else:
        print("Tidak ada data ditemukan")
    back_to_menu()
    


def edit_contact():
    clear_screen()
    contacts = []

    with open(csv_filename, mode="r") as csv_file:
        csv_reader = csv.DictReader(csv_file)
        for row in csv_reader:
            contacts.append(row)

    print("NO \t NAMA \t\t TELEPON")
    print("-" * 32)

    for data in contacts:
        print(f"{data['NO']} \t {data['NAMA']} \t {data['TELEPON']}")

    print("-----------------------")
    no = input("Pilih nomer kontak> ")
    nama = input("nama baru: ")
    telepon = input("nomer telepon baru: ")

    # mencari contact dan mengubah datanya
    # dengan data yang baru
    indeks = 0
    for data in contacts:
        if (data['NO'] == no):
            contacts[indeks]['NAMA'] = nama
            contacts[indeks]['TELEPON'] = telepon
        indeks = indeks + 1

    # Menulis data baru ke file CSV (tulis ulang)
    with open(csv_filename, mode="w") as csv_file:
        fieldnames = ['NO', 'NAMA', 'TELEPON']
        writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
        writer.writeheader()
        for new_data in contacts:
            writer.writerow({'NO': new_data['NO'], 'NAMA': new_data['NAMA'], 'TELEPON': new_data['TELEPON']}) 

    back_to_menu()



def delete_contact():
    clear_screen()
    contacts = []

    with open(csv_filename, mode="r") as csv_file:
        csv_reader = csv.DictReader(csv_file)
        for row in csv_reader:
            contacts.append(row)

    print("NO \t NAMA \t\t TELEPON")
    print("-" * 32)

    for data in contacts:
        print(f"{data['NO']} \t {data['NAMA']} \t {data['TELEPON']}")

    print("-----------------------")
    no = input("Hapus nomer> ")

    # mencari contact dan mengubah datanya
    # dengan data yang baru
    indeks = 0
    for data in contacts:
        if (data['NO'] == no):
            contacts.remove(contacts[indeks])
        indeks = indeks + 1

    # Menulis data baru ke file CSV (tulis ulang)
    with open(csv_filename, mode="w") as csv_file:
        fieldnames = ['NO', 'NAMA', 'TELEPON']
        writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
        writer.writeheader()
        for new_data in contacts:
            writer.writerow({'NO': new_data['NO'], 'NAMA': new_data['NAMA'], 'TELEPON': new_data['TELEPON']}) 

    print("Data sudah terhapus")
    back_to_menu()

if __name__ == "__main__":
    while True:
        show_menu()


Output :

1. Menu Utama



2. pilih 1 untuk List Daftar  Kontak



3.  pilih 2 untuk menambah kontak baru


4. pilih 3 untuk Edit kontak

5. pilih 4 untuk menghapus

6. pilih 5 untuk mencari kontak

7. pilih 0 untuk keluar dari program

Read Write File CSV Menggunakan Python

 


Berikut adalah cara read write file CSV menggunakan Phyton :

1. Buat file csv : data.csv

NO,NAMA,ALAMAT

NO,NAMA,TELEPON

1,Bambang,081234

2,Richard,08712333

3,Bapak Budi,08733311

4,Jokowi Dodo,0851231


catatan : gunakan tanda petik untuk kata yang mengandung koma, seperti gelar

contoh : 

1,"Bambang, S.Kom",Bandung


2. Buat file phyton : bacacsv.py

import csv

with open('data.csv') as csv_file:

    csv_reader = csv.reader(csv_file, delimiter=",")

    print(csv_reader)

    for row in csv_reader:

        print(row)

Output :


Catatan : Untuk format bisa disesuaikan dengan csv file

# membaca CSV dengan dlimiter tab

csv.reader(csv_file, delimiter="\t")

# membaca CSV dengan dlimiter titik dua :

csv.reader(csv_file, delimiter=":")

# membaca CSV dengan dlimiter titik koma ;

csv.reader(csv_file, delimiter=";")


3. Parsing File CSV di Python : parse_dic.py

3.1. Parsing CSV menjadi List

contoh 1 :

import csv

contacts = []

with open('data.csv') as csv_file:

    csv_reader = csv.reader(csv_file, delimiter=",")

    for row in csv_reader:

        contacts.append(row)

print(contacts)

Output :

[['NO', 'NAMA', 'TELEPON'], ['1', 'Bambang', '081234'], ['2', 'Richard', '08712333'], ['3', 'Bapak Budi', '08733311'], ['4', 'Jokowi Dodo', '0851231']]


Contoh 2 :

import csv

contacts = []

with open('data.csv') as csv_file:

    csv_reader = csv.reader(csv_file, delimiter=",")

    for row in csv_reader:

        contacts.append(row)

labels = contacts.pop(0)

print(labels)

print(contacts)

Output :

#isi list labels:

['NO', 'NAMA', 'TELEPON']

# isi list contacts:

[['1', 'Bambang', '081234'], ['2', 'Richard', '08712333'], ['3', 'Bapak Budi', '08733311'], ['4', 'Jokowi Dodo', '0851231']]


Contoh 3 :

import csv

contacts = []

with open('data.csv') as csv_file:

    csv_reader = csv.reader(csv_file, delimiter=",")

    for row in csv_reader:

        contacts.append(row)

labels = contacts.pop(0)

#print(labels)

#print(contacts)

print(f'{labels[0]} \t {labels[1]} \t\t {labels[2]}')

print("-"*34)

for data in contacts:

    print(f'{data[0]} \t {data[1]} \t {data[2]}')

Output :


3.2. Parsing CSV menjadi Dictionary

Contoh 1 :

import csv

contacts = []

with open('data.csv') as csv_file:

    csv_reader = csv.DictReader(csv_file)

    for row in csv_reader:

        contacts.append(row)

print(contacts)

Output :

[OrderedDict([('NO', '1'), ('NAMA', 'Bambang'), ('TELEPON', '081234')]), OrderedDict([('NO', '2'), ('NAMA', 'Richard'), ('TELEPON', '08712333')]), OrderedDict([('NO', '3'), ('NAMA', 'Bapak Budi'), ('TELEPON', '08733311')]), OrderedDict([('NO', '4'), ('NAMA', 'Jokowi Dodo'), ('TELEPON', '0851231')])]


Contoh 2 :

import csv

contacts = []

with open('data.csv') as csv_file:

    csv_reader = csv.DictReader(csv_file)

    for row in csv_reader:

        contacts.append(row)

print("NO \t NAMA \t\t TELEPON")

print("-" * 32)

for data in contacts:

    print(f"{data['NO']} \t {data['NAMA']} \t {data['TELEPON']}")

Output :



4. Write file csv : tulis_csv_list.py

4.1. Menulis Data List ke CSV

import csv

with open('data.csv', mode='a') as csv_file:

    # membuat objek writer

    writer = csv.writer(csv_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)

    # menulis baris ke file CSV

    writer.writerow(["5", "Dian", "021100022"])

    writer.writerow(["6", "Meli", "0214444432"])

print("Writing Done!")

Output : 

jalankan kemudian jalan kan juga file parse_dic.py


4.2. Menulis Data Dictionary ke CSV

import csv

with open('data.csv', mode='a') as csv_file:

    # menentukan label

    fieldnames = ['NO', 'NAMA', 'TELEPON']

    # membuat objek writer

    writer = csv.DictWriter(csv_file, fieldnames=fieldnames)

    # menulis baris ke file CSV

    writer.writeheader()

    writer.writerow({'NO': '10', 'NAMA': 'Via Vallen', 'TELEPON': '02109999'})

    writer.writerow({'NO': '11', 'NAMA': 'M. Andi', 'TELEPON': '02148488888'})

print("Writing Done!")

Output :

jalankan kemudian jalan kan juga file parse_dic.py



Read File XML Menggunakan Python

 


Berikut adalah cara membaca file XML menggunakan Phyton

1. Buat file XML : data.xml

<?xml version="1.0" encoding="UTF-8" ?>
<mahasiswa>
    <nama>Amir</nama>
    <alamat>Jakarta</alamat>
    <jurusan>Teknik Industri</jurusan>

    <hobi name="Blogging"/>
    <hobi name="Membaca Buku"/>
    <hobi name="Nonton Anime"/>
</mahasiswa>


2. Buat file pyhton : baca.py

Contoh 1 : 

import xml.dom.minidom as minidom

def main():
    # gunakan fungsi parse() untuk me-load xml ke memori 
    # dan melakukan parsing
    doc = minidom.parse("mahasiswa.xml")

    # Cetak isi doc dan tag pertamanya
    print doc.nodeName
    print doc.firstChild.tagName

    nama = doc.getElementsByTagName("nama")[0].firstChild.data
    alamat = doc.getElementsByTagName("alamat")[0].firstChild.data
    jurusan = doc.getElementsByTagName("jurusan")[0].firstChild.data
    list_hobi = doc.getElementsByTagName("hobi")

    print "Nama: {}\nAlamat: {}\nJurusan: {}\n".format(nama, alamat, jurusan)

    print "Memiliki {} hobi:".format(len(list_hobi))

    for hobi in list_hobi:
        print "-", hobi.getAttribute("name")


if __name__ == "__main__":
    main()


Jalankan :

#document
mahasiswa
Nama: Amir
Alamat: Jakarta
Jurusan: Teknik Industri

Memiliki 3 hobi:
- Blogging
- Membaca Buku
- Nonton Anime


Contoh 2 : Membaca node xml

import xml.dom.minidom as minidom

def main():
    # gunakan fungsi parse() untuk me-load xml ke memori 
    # dan melakukan parsing
    doc = minidom.parse("mahasiswa.xml")

    # Cetak isi doc dan tag pertamanya
    print doc.nodeName
    print doc.firstChild.tagName

    nama = doc.getElementsByTagName("nama")[0].firstChild.data
    alamat = doc.getElementsByTagName("alamat")[0].firstChild.data
    jurusan = doc.getElementsByTagName("jurusan")[0].firstChild.data
    

    print "Nama: {}\nAlamat: {}\nJurusan: {}\n".format(nama, alamat, jurusan)

    # Mendambahkan Elemen
    hobi_baru = doc.createElement("hobi")
    hobi_baru.setAttribute("name", "Programming")
    doc.firstChild.appendChild(hobi_baru)

    # Ambil kembali daftar hobi
    list_hobi = doc.getElementsByTagName("hobi")

    print "Memiliki {} hobi:".format(len(list_hobi))

    for hobi in list_hobi:
        print "-", hobi.getAttribute("name")


if __name__ == "__main__":
    main()



Output :

#document
mahasiswa
Nama: Amir
Alamat: Jakarta
Jurusan: Teknik Industri

Memiliki 3 hobi:
- Blogging
- Membaca Buku
- Nonton Anime



3. Read Write

import xml.dom.minidom as minidom

def main():
    # gunakan fungsi parse() untuk me-load xml ke memori 
    # dan melakukan parsing
    doc = minidom.parse("mahasiswa.xml")

    # Cetak isi doc dan tag pertamanya
    print doc.nodeName
    print doc.firstChild.tagName

    nama = doc.getElementsByTagName("nama")[0].firstChild.data
    alamat = doc.getElementsByTagName("alamat")[0].firstChild.data
    jurusan = doc.getElementsByTagName("jurusan")[0].firstChild.data
    

    print "Nama: {}\nAlamat: {}\nJurusan: {}\n".format(nama, alamat, jurusan)

    hobi_baru = doc.createElement("hobi")
    hobi_baru.setAttribute("name", "Programming")
    doc.firstChild.appendChild(hobi_baru)

    list_hobi = doc.getElementsByTagName("hobi")

    print "Memiliki {} hobi:".format(len(list_hobi))

    for hobi in list_hobi:
        print "-", hobi.getAttribute("name")

    file_xml = open("mahasiswa.xml","w")
    doc.writexml(file_xml)
    file_xml.close()


if __name__ == "__main__":
    main()


Output :




Read File JSON Menggunakan Python

 


Berikut adalah cara membaca file JSON menggunkan Phyton

1. Buat file JSON : data.json

{
    "name" : "Read JSON",
    "web" : "https://www.xyz.com",
    "social_media": {
        "facebook" : "belajarJSON",
        "twitter" : "@belajarJSON",
        "instagram": "@belajarJSON"
    }
}


2. Buat File python : bacadatajson.py

21. Contoh  Membaca senua data file JSON

# gunakan modul json
import json

# buka file JSON
filejson = open("data.json")

# prsing data JSON
data = json.loads(filejson.read())

# cetak isi data JSON
print(data)

Catatan : simpan file dalam folder yang sama, untuk memudahkan contoh

Setelah itu,  jalankan program bacadatajson.py.



2.2. Membaca per field

import json

# buka file JSON
filejson = open("data.json")

# prsing data JSON
data = json.loads(filejson.read())

# cetak isi data JSON
print(f"Nama: {data['name']}")
print(f"Website: {data['web']}")
print("Sosial Media:")
print(f"- Facebook: {data['social_media']['facebook']}")
print(f"- Twitter: {data['social_media']['twitter']}")
print(f"- Instagram: {data['social_media']['instagram']}")

Output :




3. Baca JSON banyak Item

Disini akan menggunakan data JSON dari API jsonplaceholder ( file JSON yang bisa dicopy ) dengan membuat link tersebut  dengan endpoint URL: https://jsonplaceholder.typicode.com/posts

File JSON :




Buat file : list_artikel.py

import json
from urllib import request

url = "https://jsonplaceholder.typicode.com/posts"

# lakukan http request
response = request.urlopen(url)

# parsing data json
data = json.loads(response.read())


# gunakan perulangan untuk menampilkan data
for i in range(len(data)):
    print(f"{i}. {data[i]['title']}")

atau 

# gunakan perulangan untuk menampilkan data
for post in data:
    print(f"- {post['title']}")


Output :



Read Write File Menggunakan Python

 

Berikut adalah cara read write menggunakan phyton

1. Buat direktori : file-io, lalu buat file text.txt dan bacafile.py.

file-io/

├── bacafile.py

└── text.txt


2. Setelah itu, buka file text.txt , kemudian isi dengan teks tersebut:

Belajar programming Phyton

Membaca file text dengan Phyton 


3. Buka file bacafile.py kemudian tambahkan script :

3.1. Contoh 1 : List

# buka file

filetext = open("text.txt", "r")

# baca isi file

print filetext.readlines()

# tutup file

filetext.close()

Output berupa list, karena menggunakan method readlines().


3.2. Contoh 2 : Baca Perbaris

# buka file

filetext = open("text.txt", "r")

# baca isi file

text = filetext.readlines()

# cetak baris pertama

print text[0]

# cetak baris kedua

print text[1]

# tutup file

filetext.close()

Hasil Output :

Belajar programming Phyton

Membaca file text dengan Phyton


3.3. Contoh 3 : Pengulangan

# buka file
filetext = open("text.txt", "r")

# baca isi file
text = filetext.readlines()

# cetak isi file dengan perulangan
for teks in text:
    print teks

# tutup file
filetext.close()

Output :


3.4. Contoh 4 : membaca semua file

# buka file

filetext = open("text.txt", "r")

# baca isi file

text = filetext.read()

# cetak isi file

print text

# tutup file

filetext.close()

Output :


4. Menulis File  : tulisbio.py 

4.1. Contoh 1 : Buat file

print "Program Biodata"

print "============="

# Ambil input dari user

nama = raw_input("Nama: ")

umur = input("Umur: ")

alamat = raw_input("Alamat: ")

# format teks

teks = "Nama: {}\nUmur: {}\nAlamat: {}".format(nama, umur, alamat)

# buka file untuk ditulis

filebio = open("biodata.txt", "w")

# tulis teks ke file

filebio.write(teks)

# tutup file

filebio.close()

Output :


File tercipta : biodata.txt


4.2. Contoh 2 : Replace atau ditulis ulang dengan yang baru.

Ada dua method yang bisa kita gunakan untuk menulis file

  • write(): parameternya teks (string)
  • writelines(): parameternya teks dalam bentuk list.

teks = "Daftar Buah"

teks_list ["Apel", "Jeruk", "Anggur", "Duren"]

f = open("file.txt", "w")

f.write(teks)

f.writelines(teks_list)


5. Menyisipkan ( Append ) : insertbiodata.py

print "Program Biodata"

print "============="

# Ambil input dari user

nama = raw_input("Nama: ")

umur = input("Umur: ")

alamat = raw_input("Alamat: ")

# format teks

teks = "\nNama: {}\nUmur: {}\nAlamat: {}\n---".format(nama, umur, alamat)

# buka file untuk ditulis

filebio = open("biodata.txt", "a")

# tulis teks ke file

filebio.write(teks)

# tutup file

filebio.close()


Output : 


Buka biodata.txt



6. Read Write File

print "Program Biodata"

print "=============="

# buka file untuk dibaca dan ditulis

filebio = open("biodata.txt", "r+")

teks = filebio.read()

# cetak isi file

print teks

# Ambil input dari user

nama = raw_input("Nama: ")

umur = input("Umur: ")

alamat = raw_input("Alamat: ")

# format teks

teks = "\nNama: {}\nUmur: {}\nAlamat: {}\n---".format(nama, umur, alamat)

# tulis teks ke file

filebio.write(teks)

# tutup file

filebio.close()


Output : 



7. Menggunakan with dan as

with open("dokumen.txt", "r") as dok:
    print dok.read()


8. Menggunakan Exception

try:

    f = open("file.txt","r")

except IOError as err:

    print "Terjadi kesalahan: {}".format(err)

output : jika terjadi errror maka akan ditampilkan pesan

Terjadi kesalahan: [Errno 2] No such file or directory: 'file.txt'


Membuat CRUD Menggunakan Spring Hibernate - IV [ Delete ]

 

Pada artikel ini merupakan lanjutan dari artikel : Membuat CRUD Menggunakan Spring Hibernate - I [ Read ]


Berikut adalah cara membuat CRUD menggunakan Spring Hibernate :

1. Tambahkan Method Save pada class BukuDAO.java

public void delete(int id);


2. Tambahkan method save() pada BukuDAOImpl.java

@Override

 public void delete(int id) {

 Buku buku = getBukuById(id);

 hibernateTemplate.delete(buku);

 }


3. Buat controller dari sebuah java class : DeleteController.java

package Controller;

import Dao.BukuDAO;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.ui.ModelMap;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.Controller;

public class DeleteController implements Controller{

 private BukuDAO bukuDAO;

 public void setBukuDAO(BukuDAO bukuDAO){

 this.bukuDAO = bukuDAO;

 }

 

 @Override

 public ModelAndView handleRequest(HttpServletRequest hsr, HttpServletResponse hsr1) throws Exception {

 int id = Integer.parseInt(hsr.getParameter(&amp;quot;id&amp;quot;));

 bukuDAO.delete(id);

 ModelMap map = new ModelMap();

 map.addAttribute(&amp;quot;allbuku&amp;quot;, bukuDAO.getBuku());

 return new ModelAndView(&amp;quot;read&amp;quot;, map);

 }

}


4. Edit file dispatcher-servlet.xml

&amp;lt;bean name=&amp;quot;/delete.htm&amp;quot; class=&amp;quot;Controller.DeleteController&amp;quot;&amp;gt;

 &amp;lt;property name=&amp;quot;bukuDAO&amp;quot; ref=&amp;quot;BukuDAO&amp;quot;/&amp;gt;

 &amp;lt;/bean&amp;gt;


5. Tambahkan link pada file read jsp (/project-name/mapping-name) 

&amp;lt;a href=&amp;quot;/SpringHibernateCrud/delete.htm?id=${buku.id}&amp;quot;&amp;gt;Delete&amp;lt;/a&amp;gt;


6. Klik kanan project kemudian clean, lalu run


Membuat CRUD Menggunakan Spring Hibernate - III [ Update ]

 

Pada artikel ini merupakan lanjutan dari artikel : Membuat CRUD Menggunakan Spring Hibernate - I [ Read ]


Berikut adalah cara membuat CRUD menggunakan Spring Hibernate :

1. Tambahkan Method Save pada class BukuDAO.java

public Buku getBukuById(int id);


2. Tambahkan method save() pada BukuDAOImpl.java

@Override

 public Buku getBukuById(int id) {

return hibernateTemplate.get(Buku.class, id);

 }


3.  Buat sebuah Controller dari “Java Class” : ByIdController.java

package Controller;

import Dao.BukuDAO;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.ui.ModelMap;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.Controller;

 

public class ByIdController implements Controller{

 private BukuDAO bukuDAO;

 public void setBukuDAO(BukuDAO bukuDAO){

 this.bukuDAO = bukuDAO;

 }

 

 @Override

 public ModelAndView handleRequest(HttpServletRequest hsr, HttpServletResponse hsr1) throws Exception {

 int id = Integer.parseInt(hsr.getParameter("id"));

 ModelMap map = new ModelMap();

 map.addAttribute("buku", bukuDAO.getBukuById(id));

 return new ModelAndView("update", map);

 } 

}


4. Tambahkan pada file “dispatcher-servlet.xml”

<bean name="/byid.htm" class="Controller.ByIdController">

 <property name="bukuDAO" ref="BukuDAO"/>

 </bean>


5. Edit file BukuDAO.java 

public void updateBuku(Buku buku);

6. Implementasikan method tadi pada BukuDAOImpl.java

@Override

 public void updateBuku(Buku buku) {

 hibernateTemplate.merge(buku);

 }


7. Buat sebuah controller dari “Simple Form Controller”, klik kanan package Controller --> Other --> Spring Framework --> Simple Form Controller --> lalu klik Next, Beri nama pada bagian “Class Name” kemudian klik Finish.  

package Controller;

import Dao.BukuDAO;

import Model.Buku;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.ui.ModelMap;

import org.springframework.validation.BindException;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.SimpleFormController;

 

public class UpdateController extends SimpleFormController {

 private BukuDAO bukuDAO;

 

public void setBukuDao(BukuDAO bukuDAO) {

 this.bukuDAO = bukuDAO;

 }

 

 public UpdateController() {

 //Initialize controller properties here or

 //in the Web Application Context

setCommandClass(Buku.class);

 setCommandName("update");

 //setSuccessView("successView");

 //setFormView("formView");

 }

 

 @Override

 protected void doSubmitAction(Object command) throws Exception {

 throw new UnsupportedOperationException("Not yet implemented");

 }

 //Use onSubmit instead of doSubmitAction

 //when you need access to the Request, Response, or BindException objects

 @Override

 protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response,

 Object command, BindException errors) throws Exception {

 Buku buku = (Buku) command;

 bukuDAO.updateBuku(buku);

 ModelMap map = new ModelMap();

 map.addAttribute("allbuku", bukuDAO.getBuku());

 return new ModelAndView("read", map);

 }

}


8. Buat file JSP, disini saya menamakannya update.jsp

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

 <head>

 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

 <title>JSP Page</title>

 </head>

 <body>

 <form:form method="POST" action="/SpringHibernateCrud/update.htm" commandName="update">

 <table>

 <tr>

 <td>ID</td>

 <td>:</td>

 <td>

 <input type="text" value="${buku.id}" disabled>

 <input type="hidden" name="id" value="${buku.id}">

 </td>

 </tr>

 <tr>

 <td>Nama</td>

 <td>:</td>

 <td><input type="text" name="nama" value="${buku.nama}"></td>

 </tr>

 <tr>

 <td>Harga</td>

 <td>:</td>

 <td><input type="text" name="harga" value="${buku.harga}"></td>

 </tr>

 <tr>

 <td colspan="3"><input type="submit" name="simpan" value="Simpan"></td>

 </tr>

 </table>

 </form:form>

 </body>

</html>


9. Tambahkan  pada file “dispatcher-servlet.xml”

<bean name="/update.htm" class="Controller.UpdateController">

 <property name="bukuDao" ref="BukuDAO"/>

 <property name="formView" value="update"/>

 <property name="successView" value="read"/>

 </bean>


10. Tambahkan link pada halaman read file jsp

<a href="/SpringHibernateCrud/byid.htm?id=${buku.id}">Update</a>


11.  Clean project kemudian Run