Aplikasi Client Server: Oleh
Aplikasi Client Server: Oleh
Oleh :
Kelas : 4CC
Nim : 061530701249
TEKNIK KOMPUTER
2017
APLIKASI CLIENT-SERVER
Langkah pertama harus membuat 3 project terlebih dahulu, 2 project aplikasi dan 1
project class.
Didalam project database terdapat 2 package, yaitu sella dan sella.service. Didalam
db.entity terdapat class Person sedangkan di db.service ada java interface PersonService.
Person dibuat karena akan digunakan di project database client dan server. Person service
berupa data akses object.
package sella;
import java.io.Serializable;
import java.util.Date;
package sella.service;
import sella.Person;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;
public interface PersonService extends Remote {
package database_server;
import database_server.utilities.DatabaseUtilities;
import database_server.service.PersonServiceServer;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
server.rebind("service", personService);
package database_server.service;
import sella.Person;
import sella.service.PersonService;
import database_server.utilities.DatabaseUtilities;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
@Override
public Person insertPerson(Person person) throws RemoteException {
statement.setString(1, person.getFirstName());
statement.setString(2, person.getLastName());
statement.setDate(3, new Date(person.getBirthDay().getTime()));
statement.executeUpdate();
return person;
} catch (SQLException exception) {
exception.printStackTrace();
return null;
} finally {
if (statement != null) {
try {
statement.close();
} catch (SQLException exception) {
}
}
}
@Override
public void updatePerson(Person person) throws RemoteException {
try {
statement = DatabaseUtilities.getConnection().prepareStatement(
"UPDATE person SET first_name = ?" +
", last_name = ? , birth_day = ? " +
"WHERE id = ?");
statement.setString(1, person.getFirstName());
statement.setString(2, person.getLastName());
statement.setDate(3, new Date(person.getBirthDay().getTime()));
statement.setLong(4, person.getId());
statement.executeUpdate();
}
@Override
public void deletePerson(Long id) throws RemoteException {
try {
statement = DatabaseUtilities.getConnection().prepareStatement(
"DELETE FROM person WHERE id = ?");
statement.setLong(1, id);
statement.executeUpdate();
@Override
public Person getPerson(Long id) throws RemoteException {
try {
statement = DatabaseUtilities.getConnection().prepareStatement(
"SELECT * FROM person WHERE id = ?");
result.close();
return person;
} catch (SQLException exception) {
exception.printStackTrace();
return null;
} finally {
if (statement != null) {
try {
statement.close();
} catch (SQLException exception) {
exception.printStackTrace();
}
}
}
}
@Override
public List<Person> getPerson() throws RemoteException {
try {
statement = DatabaseUtilities.getConnection().createStatement();
while(result.next()){
Person person = new Person();
person.setId(result.getLong("id"));
person.setFirstName(result.getString("first_name"));
person.setLastName(result.getString("last_name"));
person.setBirthDay(result.getDate("birth_day"));
list.add(person);
}
result.close();
return list;
} catch (SQLException exception) {
exception.printStackTrace();
return null;
} finally {
if (statement != null) {
try {
statement.close();
} catch (SQLException exception) {
exception.printStackTrace();
}
}
}
}
}
package database_server.utilities;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
if(connection == null) {
try {
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
connection =
DriverManager.getConnection("jdbc:mysql://localhost:3306/client_server", "root",
"");
} catch (SQLException ex) {
Logger.getLogger(DatabaseUtilities.class.getName()).log(Level.SEVERE,
null, ex);
}
}
return connection;
}
}
package database_client;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import javax.swing.SwingUtilities;
import sella.service.PersonService;
import database_client.form.From;
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
From form = new From(service);
form.setVisible(true);
}
});
}
}
package database_client.form;
import sella.Person;
import sella.service.PersonService;
import database_client.model.TableModelPerson;
import java.awt.event.ActionListener;
import java.rmi.RemoteException;
import java.util.Date;
import java.util.List;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class From extends javax.swing.JFrame {
private TableModelPerson tableModelPerson = new TableModelPerson();
private PersonService personService;
this.personService = personService;
try {
tableModelPerson.setData(this.personService.getPerson());
} catch (RemoteException exception) {
exception.printStackTrace();
}
initComponents();
tablePerson.setModel(tableModelPerson);
tablePerson.getSelectionModel().addListSelectionListener(new
ListSelectionListener() {
@SuppressWarnings("unchecked")
try {
List<Person> list = personService.getPerson();
tableModelPerson.setData(list);
}catch (RemoteException exception) {
exception.printStackTrace();
}
}
try {
Person person = new Person();
person.setFirstName(textFirstName.getText());
person.setLastName(textLastName.getText());
person.setBirthDay((Date) textBirthDay.getValue());
tableModelPerson.insert(person1);
}catch(RemoteException exception) {
exception.printStackTrace();
}
}
try{
personService.updatePerson(person);
tableModelPerson.update(row, person);
}catch(RemoteException exception){
exception.printStackTrace();
}
}
try{
int row = tablePerson.getSelectedRow();
if(row == -1) {
return;
}
Long id = tableModelPerson.get(row).getId();
personService.deletePerson(id);
tableModelPerson.delete(row);
}catch(RemoteException exception){
exception.printStackTrace();
}
}
// Variables declaration - do not modify
private javax.swing.JButton buttonDelete;
private javax.swing.JButton buttonInsert;
private javax.swing.JButton buttonRefresh;
private javax.swing.JButton buttonUpdate;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable tablePerson;
private javax.swing.JFormattedTextField textBirthDay;
private javax.swing.JTextField textFirstName;
private javax.swing.JFormattedTextField textId;
private javax.swing.JTextField textLastName;
// End of variables declaration
}
- Form Aplikasi :
import java.util.ArrayList;
import java.util.List;
import sella.Person;
import javax.swing.table.AbstractTableModel;
public class TableModelPerson extends AbstractTableModel {
private List<Person> list = new ArrayList<Person>();
public TableModelPerson() {
}
public Person get(int row){
return list.get(row);
}
public void insert(Person person) {
list.add(person);
fireTableDataChanged();
}
public void update(int row, Person person) {
list.set(row, person);
fireTableDataChanged();
}
public void delete(int row) {
list.remove(row);
fireTableDataChanged();
}
public void setData(List<Person> list) {
this.list = list;
fireTableDataChanged();
}
@Override
public String getColumnName(int column) {
switch (column) {
case 0:
return "Id";
case 1:
return "First Name";
case 2:
return "Last Name";
case 3:
return "Birth Day";
default:
return null;
}
}
@Override
public int getRowCount() {
return list.size();
}
@Override
public int getColumnCount() {
return 4;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
return list.get(rowIndex).getId();
case 1:
return list.get(rowIndex).getFirstName();
case 2:
return list.get(rowIndex).getLastName();
case 3:
return list.get(rowIndex).getBirthDay();
default:
return null;
}
}
}
HASIL :