Kết nối cơ sở dữ liệu mysql với jdbc trong java

Kết nối cơ sở dữ liệu mysql với jdbc trong java là kiến thức khá quan trọng đối với lập trình web với java jsp/servlet.Hiện nay có rất nhiều bài viết về kết nối jdbc trong java,tuy nhiên mình thấy viết chưa chi tiết và cụ thể cũng như không theo một tiêu chuẩn mô hình mvc,để các bạn có thể làm được thông qua các ví dụ.Ở bài viết này mình sẽ hướng dẫn các bạn cách để kết nối mysql với java nhé.

 

Kết nối cơ sở dữ liệu trong java với mysql

JDBC là gì?

JDBC (Java Database Connectivity) là tập các API trên Java để kết nối đến các hệ quản trị cơ sở dữ liệu, đối với mỗi hệ quản trị cơ sở dữ liệu thì có một JDBC Driver riêng để kết nối.

 

Kết nối cơ sở dữ liệu trong java với mysql

 

Ví dụ : MYSQL,SQL SERVER,ORACLE….đối với bài này,chúng ta sẽ học cách để kết nối cơ sở dữ liêu với mysql nên  JDBC Driver sẽ là Mysql Driver .

Cần chuẩn bị những gì để kết nối mysql với jdbc?

Khi đã nhắc đến kết nối csdl (cơ sở dứ liệu,mình viết tắt luôn để ngắn gọn nhé) với mysql,tất nhiên bạn cần phải cài đặt để chạy được môi trường hệ quản trị cở sở dữ liệu MySQL trên máy.Ngoài ra bạn cũng cần phải có driver tương ứng với từng môi trường, đối với Java thì driver là JDBC.

Bạn cần download thư viện để kết nối jdbc nhé,đến đây không có gì phải suy nghĩ nhiều,nó là một thư viện và câu hỏi đặt ra là có gì trong thư viện đó? Không quan tâm,các bạn chỉ cần biết đây là thư viện các lập trình viên nước ngoài họ đã lập trình sẵn rồi,bây giờ chún ta đem sài thôi.Trong file jar này,người ta có một lớp giúp chúng ta có thể kết nối cơ sở dữ liệu mysql với java nhé (hay là kết nối jdbc).

 

Kết nối cơ sở dữ liệu trong java với mysql
Download thư viện MySQL Connector

Các bạn downlod load thư viện tại đây : Tải .

Kết nối JDBC với MYSQL

Tạo một project javajdbcdemo,sau đó đặt thư viện MySQL Connector vào trong thư mục WEB-INF,ở những bài trước tôi đã nói rất kỹ rồi nên sẽ không nhắc lại ở bài này,các bạn có thể xem loạt bài hướng dẫn của tôi ở đây.

Kết nối cơ sở dữ liệu mysql với jdbc trong java dùng eclipse

 

Tạo database name laptrinhweb như sau :

Kết nối cơ sở dữ liệu mysql với jdbc trong java dùng eclipse

Kết nối cơ sở dữ liệu mysql với jdbc trong java dùng eclipse
Bảng các môn lập trình gồm 2 cột id và name

 

Tạo class ConnectDB.java như sau :

package com.itphutran.jdbcjavademo;

import java.sql.Connection;
import java.sql.DriverManager;

public class ConnectDB {
	
	public Connection getConnect() {
		Connection con = null;
		String url = "jdbc:mysql://localhost:3306/laptrinhweb";
		String user = "root";
		String password = "";
		try {
			Class.forName("com.mysql.jdbc.Driver");
			con = DriverManager.getConnection(url, user, password);
		} catch (Exception er) {
			er.printStackTrace();
		}
		return con;
	}
}

 

Giải thích một số thông điểm lưu ý class trên :

  1. Connection : import com.mysql.jdbc.Connection, dựa vào Connection thì chúng ta mới có thể kết nối đến với cở sở dữ liêu.
  2. Class.forName : đăng ký driver củaMYSQL.
    (Connection) DriverManager.getConnection(url, username, password) : Lấy ra connection đến cơ sở dữ liệu với 3 tham số truyền vào lần lượt là : url để connect, tên username để connection, password của user trong mysql. Nếu không lấy được connection đến cơ sở dữ liệu thì sẽ trả về đối tượng null. (ở trên truyền vào databse name muốn kết nối để với cở sở dữ liệu mysql nhé,name database : laptrinhweb)

 

Sau tất cả,bây giờ chúng ta sẽ thử test bằng một hàm main như sau để xem có thể connect tới cơ sở dữ liệu hay không?

Tạo class TestDemo.java như sau : 

package com.itphutran.demo;

import java.sql.Connection;

import com.itphutran.jdbcjavademo.ConnectDB;

public class TestDemo {
	public static void main(String[] args) {
		ConnectDB connectDB = new ConnectDB();
		Connection connection = connectDB.getConnect();
		System.out.println(connection);
	}
}

Kết quả :

kết quả thành công kết nối với mysql với jdbc.png

Hiển thị được dòng địa chỉ này,nghĩa là các bạn đã kết nối với cơ sở dữ liệu thành công!

 

CHÚ Ý : Nếu bạn nào chưa kết nối jdbc được có thể xem các lý thường gặp khi không kết nối được với mysql trong java như sau :

  1. Thông tin của user có đúng không?
  2. Kiểm tra lại url dùng để connect?
  3. Kiểm tra lại thư viện JDBC MySQL
  4. Kiểm tra import Connection có đúng thư viện chưa?
  5. Kiểm tra xem đã đăng ký driver MySQL chưa?
  6. Kiểm tra xem đã khởi động xampp chưa?
  7. Đặt đúng thư viện ở WEB-INF chưa?

Hướng dẫn truy vấn hiển thị,thêm sửa xóa jdbc với mysql và java

Tiếp tục với class TestDemo.Chúng ta sẽ lần lượt đi hiển thị tất cả các môn học có trong bảng cacmonhoc thuộc database laptrinhweb cũng như thêm,sửa và xóa một môn học như sau :

  1. Hiển thị tất cả các môn học :

Tạo class MonHoc là object để truy vấn tạo class MonHoc để tương tác truy vấn cở dở liệu.

class MonHoc.java : 

package com.itphutran.bean;

public class MonHoc {
	private int id;
	private String name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public MonHoc(int id, String name) {
		super();
		this.id = id;
		this.name = name;
	}
	public MonHoc() {
		super();
	}
	
	public String toString(){
		return "ID : "+id + "\nName : "+name;
	}
}

Class MonHocDAO.java: 

package com.itphutran.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import com.itphutran.bean.MonHoc;
import com.itphutran.jdbcjavademo.ConnectDB;

public class MonHocDAO {
	private Connection connection;
	private ConnectDB connectDB;
	private ResultSet resultSet;
	private Statement statement;

	public MonHocDAO() {
		connectDB = new ConnectDB();
	}

	// hiển thị tất cả các môn học
	public ArrayList<MonHoc> findAll() {
		ArrayList<MonHoc> listMH = new ArrayList<>();
		connection = connectDB.getConnect();
		String sql = "select * from cacmonlaptrinh";
		try {
			statement = connection.createStatement();
			resultSet = statement.executeQuery(sql);
			while (resultSet.next()) {
				MonHoc hoc = new MonHoc(resultSet.getInt("id"),
						resultSet.getString("name"));
				listMH.add(hoc);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				connection.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return listMH;
	}
}

 

Class TestDemo : gọi phương thức hiển thị tất cả các môn như sau :

package com.itphutran.jdbcjavademo;

import java.sql.Connection;
import java.sql.DriverManager;

public class ConnectDB {
	
	public Connection getConnect() {
		Connection con = null;
		String url = "jdbc:mysql://localhost:3306/laptrinhweb";
		String user = "root";
		String password = "";
		try {
			Class.forName("com.mysql.jdbc.Driver");
			con = DriverManager.getConnection(url, user, password);
		} catch (Exception er) {
			er.printStackTrace();
		}
		return con;
	}
}

Kết quả :

Kết nối cơ sở dữ liệu mysql với jdbc trong java

Tiếp tục thêm sửa và xóa, ở đây tôi sẽ làm phần thêm một môn vào hệ quản trị csdl nhé,còn lại sửa và  xóa hoàn toàn tương tự :

2.Thêm vào cơ sở dữ liệu sử dụng jdbc

Thêm phương thức sau vào trong class MonHocDAO: 

public void insert(String name){
		connection = connectDB.getConnect();
		String sql = "insert into cacmonlaptrinh(name) value(?)";
		try {
			preparedStatement = connection.prepareStatement(sql);
			preparedStatement.setString(1, name);
			preparedStatement.executeUpdate();
			System.out.println("THÊM THÀNH CÔNG!");
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				connection.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

Hàm main gọi và sử dụng :

package com.itphutran.demo;

import com.itphutran.dao.MonHocDAO;

public class TestDemo {
	public static void main(String[] args) {
		MonHocDAO monHocDAO = new MonHocDAO();
		monHocDAO.insert("JAVASCRIPT");
	}
	
	
}

Kết quả: THÊM THÀNH CÔNG!

Kiểm tra trong cở sở dữ liệu nhé :

kết nối cơ sỏ dữ liệu với mysql java
Kết quả sau khi thực hiện thêm

 

Tổng kết :

Qua bài này,chúng ta đã học được cách để kết nối cở dữ liệu mysql  với jdbc trong java và qua đó thực hiện thêm sửa xóa và hiển thị tương tác mysql với java jdbc.Đối với những hệ quản trị csdl khác,như mysql server,oracle…cách kết nối hoàn toàn tương tự,các bạn chỉ cần chọn đúng thư viện và Driver Manager đang muốn sử dụng.

Done! Chúc các bạn thực hiện thành công và học tốt.

 

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận
x