Create a simple Java Console application that connects with the MYSQL database by JDBC and performs (CRUD) Create, Read, Delete, and Update Operations.
Task Description:
We are going to create a user database table that contains user_id, FirstName, LastName, Email, and PhoneNumber. This table will be connected with our Java console application to Add a new user, View the list of all the users, Update any user and Delete a user.
Steps:
Create a Database with the name “test” and a user table with the column name as id, firstName, lastName, Email, and phoneNumber.
Create a Maven Project.
Create Packages
- practice.bean
- practice.main
- practice.model
Add Dependencies for MYSQL.
Below is the required maven dependencies that will required to communicate with database
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.21</version> </dependency>
Create User Bean
This user bean will help us to get and set the object value at run time.
package practice.bean;
public class User {
private long id;
String firstName;
String lastName;
String email;
String phoneNumber;
// Getters and Setter.........
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
@Override
public String toString() {
return "User [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + ", email=" + email
+ ", phoneNumber=" + phoneNumber + "]";
}
}
Create a Database connection class
This is a connection class and return and database connection.e
package practice.model;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class MyDbConnection {
public static Connection con = null;
public static Connection getCon() {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
}
Create Curd options
package practice.model;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.mysql.cj.protocol.Resultset;
import com.mysql.cj.xdevapi.Result;
import practice.bean.User;
public class UserModel {
// Add User...........
public long addUser(User user) {
long pk = 0;
Connection con = MyDbConnection.getCon();
try {
PreparedStatement stmt = con.prepareStatement("insert into user values (?,?,?,?,?)");
stmt.setLong(1, user.getId());
stmt.setString(2, user.getFirstName());
stmt.setString(3, user.getLastName());
stmt.setString(4, user.getEmail());
stmt.setString(5, user.getPhoneNumber());
pk = stmt.executeUpdate();
System.out.println("Record Is added into database"+pk);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return pk;
}
// Get User List......
public List<User> list(){
List<User> userList = new ArrayList<User>();
Connection con = MyDbConnection.getCon();
try {
PreparedStatement stmt = con.prepareStatement("select * from user");
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
User user = new User();
user.setId(rs.getLong(1));
user.setFirstName(rs.getString(2));
user.setLastName(rs.getString(3));
user.setEmail(rs.getString(4));
user.setPhoneNumber(rs.getString(4));
userList.add(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return userList;
}
//Update user...
public User update(User user, long id) {
//User user = new User();
Connection con = MyDbConnection.getCon();
try {
PreparedStatement stmt = con.prepareStatement("update user set firstName=?, lastName=?, email=?, phoneNumber=? where id=?");
stmt.setString(1, user.getFirstName());
stmt.setString(2, user.getLastName());
stmt.setString(3, user.getEmail());
stmt.setString(4, user.getPhoneNumber());
stmt.setLong(5, id);
stmt.executeUpdate();
System.out.println("Data is updated...");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return user;
}
public void delete(long id) {
Connection con = MyDbConnection.getCon();
try {
PreparedStatement stmt = con.prepareStatement("delete from user where id = ?");
stmt.setLong(1, id);
stmt.executeUpdate();
System.out.println("Record is deleted.....");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Add User:
package practice.main;
import java.util.List;
import java.util.Scanner;
import practice.bean.User;
import practice.model.UserModel;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
//Add User........
Scanner sc = new Scanner(System.in);
System.out.println("Enter User ID...");
long id = sc.nextInt();
System.out.println("Enter First Name...");
String firstName = sc.next();
System.out.println("Enter Last Name...");
String lastName = sc.next();
System.out.println("Enter Email...");
String email = sc.next();
System.out.println("Enter Phone Number...");
String phoneNumber = sc.next();
User user = new User();
user.setId(id);
user.setFirstName(firstName);
user.setLastName(lastName);
user.setEmail(email);
user.setPhoneNumber(phoneNumber);
UserModel userModel = new UserModel();
userModel.addUser(user);
}
}
Get User List
package practice.main;
import java.util.List;
import java.util.Scanner;
import practice.bean.User;
import practice.model.UserModel;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Get the list of User....
List<User> list = userModel.list();
list.forEach((user) -> {
System.out.println(user.getId()+ " " + user.getFirstName());
});
}
}
Update User:
package practice.main;
import java.util.List;
import java.util.Scanner;
import practice.bean.User;
import practice.model.UserModel;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
//Add User........
Scanner sc = new Scanner(System.in);
System.out.println("Enter User ID...");
long id = sc.nextInt();
System.out.println("Enter First Name...");
String firstName = sc.next();
System.out.println("Enter Last Name...");
String lastName = sc.next();
System.out.println("Enter Email...");
String email = sc.next();
System.out.println("Enter Phone Number...");
String phoneNumber = sc.next();
User user = new User();
user.setId(id);
user.setFirstName(firstName);
user.setLastName(lastName);
user.setEmail(email);
user.setPhoneNumber(phoneNumber);
UserModel userModel = new UserModel();
// Update user
//userModel.update(user, id);
}
}
Delete User:
package practice.main;
import java.util.Scanner;
import practice.model.UserModel;
public class DeleteUser {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("Enter user Id that you want to delete...");
long id = sc.nextLong();
UserModel model = new UserModel();
model.delete(id);
System.out.println("Requested User is deleted..");
}
}