By GokiSoft.com|
20:44 08/08/2022|
Java Advanced
Bài tập - Nhập thông tin sinh viên từ JSON vào CSDL - Lập trình Java nâng cao.
Tạo CSDL đặt tên là: quanlysinhvien gồm 1 bảng students gồm các bảng (id tự tăng, rollno, fullname, phone, email, address, status (giá trị là: PENDING, LEARNING, DROPOUT), father_name, father_phone, mother_name, mother_phone
Tạo file json gồm ít nhất 5 bản ghi chứa các thông tin sinh viên như trên
Viết tools: gồm các button
Import JSON to CSDL -> Thực hiện nhập dữ liệu sv vào database theo rollno (Nếu ko tồn tại thêm mới, nếu tồn tại update)
Export CSDL to XML -> Xuất thông tin sinh viên ra file XML
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)
![Đào Mạnh Dũng [C2010L]](https://www.gravatar.com/avatar/6a111fa53fd75dc87034660a8857df16.jpg?s=80&d=mm&r=g)
Đào Mạnh Dũng
2021-09-26 03:10:04
#Main.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg2429;
import com.formdev.flatlaf.FlatDarkLaf;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.HashMap;
import javax.swing.JFileChooser;
import org.json.JSONObject;
import org.json.XML;
/**
*
* @author inter
*/
public class Main extends javax.swing.JFrame {
/**
* Creates new form Main
*/
public Main() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N
jButton1.setText("Import JSON to CSDL");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N
jButton2.setText("Export CSDL to XML");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(51, 51, 51)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 297, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 297, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(52, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(53, 53, 53)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(103, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
Gson gson = new Gson();
String json = "{\"studentsList\":" + gson.toJson(new studentsList(db.studentsModify.SELECT())) + "}";
System.out.println(json);
JSONObject obj = new JSONObject(json);
String xml_data = XML.toString(obj);
System.out.println(xml_data);
Utility.FileUtf8.SaveFile(xml_data, "quanlysinhvien.xml");
}//GEN-LAST:event_jButton2ActionPerformed
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
JFileChooser file = new JFileChooser("./");
if (file.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
Gson gson = new Gson();
String json = Utility.FileUtf8.ReadFile(file.getSelectedFile().toPath().toString());
HashMap<Integer, students> list = getMap(db.studentsModify.SELECT());
studentsList studentlist = gson.fromJson(json, studentsList.class);
for (int i = 0; i < studentlist.student.size(); i++) {
students get = studentlist.student.get(i);
if (list.get(get.id)==null) {
db.studentsModify.INSERT(get);
}else{
db.studentsModify.UPDATE(get);
}
}
}
}//GEN-LAST:event_jButton1ActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
FlatDarkLaf.setup();
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Main().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
// End of variables declaration//GEN-END:variables
private HashMap<Integer, students> getMap(ArrayList<students> SELECT) {
HashMap<Integer, students> tmp = new HashMap();
for (int i = 0; i < SELECT.size(); i++) {
students get = SELECT.get(i);
tmp.put(get.id, get);
}
return tmp;
}
}
![Đào Mạnh Dũng [C2010L]](https://www.gravatar.com/avatar/6a111fa53fd75dc87034660a8857df16.jpg?s=80&d=mm&r=g)
Đào Mạnh Dũng
2021-09-25 15:03:12
#FileUtf8.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package Utility;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Đào Dũng
*/
public class FileUtf8 {
public static String ReadFile(String path) {
StringBuilder result = new StringBuilder();
FileReader Reader = null;
BufferedReader Buffered = null;
try {
Reader = new FileReader(path);
Buffered = new BufferedReader(Reader);
String line;
while ((line = Buffered.readLine()) != null) {
result.append(line);
}
} catch (IOException ex) {
Logger.getLogger(FileUtf8.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if (Reader != null) {
try {
Reader.close();
} catch (IOException ex) {
Logger.getLogger(FileUtf8.class.getName()).log(Level.SEVERE, null, ex);
}
}
if (Buffered != null) {
try {
Buffered.close();
} catch (IOException ex) {
Logger.getLogger(FileUtf8.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
return result.toString();
}
public static void SaveFile(String content, String path) {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(path, false);
fos.write(content.getBytes());
System.out.println("Save File " + path + " success!");
} catch (FileNotFoundException ex) {
Logger.getLogger(FileUtf8.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(FileUtf8.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException ex) {
Logger.getLogger(FileUtf8.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
}
#Main.form
<?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
<Properties>
<Property name="defaultCloseOperation" type="int" value="3"/>
</Properties>
<SyntheticProperties>
<SyntheticProperty name="formSizePolicy" type="int" value="1"/>
<SyntheticProperty name="generateCenter" type="boolean" value="false"/>
</SyntheticProperties>
<AuxValues>
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
</AuxValues>
<Layout>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="51" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jButton2" min="-2" pref="297" max="-2" attributes="0"/>
<Component id="jButton1" min="-2" pref="297" max="-2" attributes="0"/>
</Group>
<EmptySpace pref="52" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="53" max="-2" attributes="0"/>
<Component id="jButton1" min="-2" pref="63" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="jButton2" min="-2" pref="63" max="-2" attributes="0"/>
<EmptySpace pref="103" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JButton" name="jButton1">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Segoe UI" size="18" style="1"/>
</Property>
<Property name="text" type="java.lang.String" value="Import JSON to CSDL"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton1ActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JButton" name="jButton2">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Segoe UI" size="18" style="1"/>
</Property>
<Property name="text" type="java.lang.String" value="Export CSDL to XML"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton2ActionPerformed"/>
</Events>
</Component>
</SubComponents>
</Form>
#Main.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg2429;
import com.formdev.flatlaf.FlatDarkLaf;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.HashMap;
import javax.swing.JFileChooser;
import org.json.JSONObject;
import org.json.XML;
/**
*
* @author inter
*/
public class Main extends javax.swing.JFrame {
/**
* Creates new form Main
*/
public Main() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jButton1.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N
jButton1.setText("Import JSON to CSDL");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setFont(new java.awt.Font("Segoe UI", 1, 18)); // NOI18N
jButton2.setText("Export CSDL to XML");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(51, 51, 51)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 297, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 297, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(52, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(53, 53, 53)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(103, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
Gson gson = new Gson();
String json = "{\"studentsList\":" + gson.toJson(new studentsList(db.studentsModify.SELECT())) + "}";
System.out.println(json);
JSONObject obj = new JSONObject(json);
String xml_data = XML.toString(obj);
System.out.println(xml_data);
Utility.FileUtf8.SaveFile(xml_data, "quanlysinhvien.xml");
}//GEN-LAST:event_jButton2ActionPerformed
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
JFileChooser file = new JFileChooser("./");
if (file.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
Gson gson = new Gson();
String json = Utility.FileUtf8.ReadFile(file.getSelectedFile().toPath().toString());
HashMap<Integer, students> list = getMap(db.studentsModify.SELECT());
studentsList studentlist = gson.fromJson(json, studentsList.class);
for (int i = 0; i < studentlist.student.size(); i++) {
students get = studentlist.student.get(i);
System.out.println(get);
if (list.get(get.id)!=null) {
db.studentsModify.INSERT(get);
}else{
db.studentsModify.UPDATE(get);
}
}
}
}//GEN-LAST:event_jButton1ActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
FlatDarkLaf.setup();
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Main().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
// End of variables declaration//GEN-END:variables
private HashMap<Integer, students> getMap(ArrayList<students> SELECT) {
HashMap<Integer, students> tmp = new HashMap();
for (int i = 0; i < SELECT.size(); i++) {
students get = SELECT.get(i);
tmp.put(get.id, get);
}
return tmp;
}
}
#Status.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg2429;
/**
*
* @author inter
*/
public enum Status {
PENDING, LEARNING, DROPOUT;
}
#students.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg2429;
/**
*
* @author inter
*/
public class students {
int id;
Status status;
String rollno, fullname, phone, email, address, father_name, father_phone, mother_name, mother_phone;
public students() {
}
public students(int id, Status status, String rollno, String fullname, String phone, String email, String address, String father_name, String father_phone, String mother_name, String mother_phone) {
this.id = id;
this.status = status;
this.rollno = rollno;
this.fullname = fullname;
this.phone = phone;
this.email = email;
this.address = address;
this.father_name = father_name;
this.father_phone = father_phone;
this.mother_name = mother_name;
this.mother_phone = mother_phone;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getStatus() {
return status.toString();
}
public void setStatus(Status status) {
this.status = status;
}
public String getRollno() {
return rollno;
}
public void setRollno(String rollno) {
this.rollno = rollno;
}
public String getFullname() {
return fullname;
}
public void setFullname(String fullname) {
this.fullname = fullname;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getFather_name() {
return father_name;
}
public void setFather_name(String father_name) {
this.father_name = father_name;
}
public String getFather_phone() {
return father_phone;
}
public void setFather_phone(String father_phone) {
this.father_phone = father_phone;
}
public String getMother_name() {
return mother_name;
}
public void setMother_name(String mother_name) {
this.mother_name = mother_name;
}
public String getMother_phone() {
return mother_phone;
}
public void setMother_phone(String mother_phone) {
this.mother_phone = mother_phone;
}
@Override
public String toString() {
return "students{" + "id=" + id + ", status=" + status + ", rollno=" + rollno + ", fullname=" + fullname + ", phone=" + phone + ", email=" + email + ", address=" + address + ", father_name=" + father_name + ", father_phone=" + father_phone + ", mother_name=" + mother_name + ", mother_phone=" + mother_phone + '}';
}
}
#studentsList.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package pkg2429;
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
/**
*
* @author inter
*/
public class studentsList {
@SerializedName("student")
ArrayList<students> student;
public studentsList(ArrayList<students> student) {
this.student = student;
}
}
#Config.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package db;
/**
*
* @author inter
*/
public interface Config {
String DB_URL = "jdbc:mysql://localhost:3306/quanlysinhvien";
String USERNAME = "root";
String PASSWORD = "";
}
#Modify.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* @Modify ObjectClass
* @author inter
*/
class Modify {
static Connection conn = null;
static PreparedStatement statement = null;
static void connection() {
try {
conn = DriverManager.getConnection(Config.DB_URL, Config.USERNAME, Config.PASSWORD);
} catch (SQLException ex) {
Logger.getLogger(Modify.class.getName()).log(Level.SEVERE, null, ex);
}
}
static void close() {
if (conn != null) {
try {
conn.close();
} catch (SQLException ex) {
Logger.getLogger(Modify.class.getName()).log(Level.SEVERE, null, ex);
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException ex) {
Logger.getLogger(Modify.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
/*
public class ObjectClassModify extends Modify {
public static ArrayList<ObjectClass> SELECT() {
ArrayList<ObjectClass> data = new ArrayList<>();
connection();
String sql = null;
sql = "SELECT";
try {
statement = conn.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
data.add(new ObjectClass(
resultSet.getString("")
));
}
} catch (SQLException ex) {
Logger.getLogger(ObjectClassModify.class.getName()).log(Level.SEVERE, null, ex);
}
close();
return data;
}
public static ArrayList<ObjectClass> SELECT(String like) {
ArrayList<ObjectClass> data = new ArrayList<>();
connection();
String sql = null;
sql = "SELECT";
sql += "WHERE Something LIKE \"%" + like + "%\";";
try {
statement = conn.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
data.add(new ObjectClass(
resultSet.getString("")
));
}
} catch (SQLException ex) {
Logger.getLogger(ObjectClassModify.class.getName()).log(Level.SEVERE, null, ex);
}
close();
return data;
}
public static void INSERT(ObjectClass item) {
connection();
String sql = null;
sql = "INSERT";
try {
statement = conn.prepareStatement(sql);
statement.setString(1, item.get);
statement.setString(2, item.get);
statement.setString(3, item.get);
statement.setString(4, item.get);
statement.setString(5, item.get);
statement.setString(6, item.get);
statement.setString(7, item.get);
statement.setString(8, item.get);
statement.execute();
} catch (SQLException ex) {
Logger.getLogger(ObjectClassModify.class.getName()).log(Level.SEVERE, null, ex);
}
close();
}
public static void UPDATE(ObjectClass item) {
connection();
String sql = null;
sql = "UPDATE";
try {
statement = conn.prepareStatement(sql);
statement.INSERT
statement.setString(8, item.get);
statement.execute();
} catch (SQLException ex) {
Logger.getLogger(ObjectClassModify.class.getName()).log(Level.SEVERE, null, ex);
}
close();
}
public static void DELETE(ObjectClass item) {
connection();
String sql = null;
sql = "DELETE";
try {
statement = conn.prepareStatement(sql);
statement.setString(1, item.get);
statement.execute();
} catch (SQLException ex) {
Logger.getLogger(ObjectClassModify.class.getName()).log(Level.SEVERE, null, ex);
}
close();
}
}
*/
}
#studentsModify.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package db;
import java.util.ArrayList;
import pkg2429.students;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import pkg2429.Status;
/**
*
* @author inter
*/
public class studentsModify extends Modify {
public static ArrayList<students> SELECT() {
ArrayList<students> data = new ArrayList<>();
connection();
String sql = null;
sql = "SELECT * FROM `students`";
try {
statement = conn.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
data.add(new students(
resultSet.getInt("id"),
status(resultSet.getString("status")),
resultSet.getString("rollno"),
resultSet.getString("fullname"),
resultSet.getString("phone"),
resultSet.getString("email"),
resultSet.getString("address"),
resultSet.getString("father_name"),
resultSet.getString("father_phone"),
resultSet.getString("mother_name"),
resultSet.getString("mother_phone")
));
}
} catch (SQLException ex) {
Logger.getLogger(studentsModify.class.getName()).log(Level.SEVERE, null, ex);
}
close();
return data;
}
public static void UPDATE(students item) {
connection();
String sql = null;
sql = "UPDATE `students` SET `status` = ?, `rollno` = ?, `fullname` = ?, `phone` = ?, `email` = ?, `address` = ?, `father_name` = ?, `father_phone` = ?, `mother_name` = ?, `mother_phone` = ? WHERE `students`.`id` = ?;";
try {
statement = conn.prepareStatement(sql);
statement.setString(1, item.getStatus());
statement.setString(2, item.getRollno());
statement.setString(3, item.getFullname());
statement.setString(4, item.getPhone());
statement.setString(5, item.getEmail());
statement.setString(6, item.getAddress());
statement.setString(7, item.getFather_name());
statement.setString(8, item.getFather_phone());
statement.setString(9, item.getMother_name());
statement.setString(10, item.getMother_phone());
statement.setInt(11, item.getId());
statement.execute();
} catch (SQLException ex) {
Logger.getLogger(studentsModify.class.getName()).log(Level.SEVERE, null, ex);
}
close();
}
public static void INSERT(students item) {
connection();
String sql = null;
sql = "INSERT INTO `students` (`status`, `rollno`, `fullname`, `phone`, `email`, `address`, `father_name`, `father_phone`, `mother_name`, `mother_phone`) VALUES (?,?, ?, ?, ?, ?, ?, ?, ?, ?);";
try {
statement = conn.prepareStatement(sql);
statement.setString(1, item.getStatus());
statement.setString(2, item.getRollno());
statement.setString(3, item.getFullname());
statement.setString(4, item.getPhone());
statement.setString(5, item.getEmail());
statement.setString(6, item.getAddress());
statement.setString(7, item.getFather_name());
statement.setString(8, item.getFather_phone());
statement.setString(9, item.getMother_name());
statement.setString(10, item.getMother_phone());
statement.execute();
} catch (SQLException ex) {
Logger.getLogger(studentsModify.class.getName()).log(Level.SEVERE, null, ex);
}
close();
}
private static Status status(String status) {
switch (status) {
case "PENDING" -> {
return Status.PENDING;
}
case "LEARNING" -> {
return Status.LEARNING;
}
case "DROPOUT" -> {
return Status.DROPOUT;
}
}
return null;
}
}