Thứ Tư, 5 tháng 12, 2012

Hướng dẫn kết nối CSDL trong Java với Netbean

Download và cài đặt mysql server


Vào trang chủ của mysql, sau đó chọn download bản MySQL Server Community.

trước khi download, trang web sẽ bắt đăng ký, hoàn thành việc đăng ký rổi tải mysql về máy.

Khi cài đặt, nên dùng những cấu hình mặc định như tên server là mysql, cổng giao tiếp là 3306, cho sql server chạy như là một service, ...

Thêm thư viện vào netbean


Nhấn chuột phải vào project, chọn properties, ở mục Libraries, chọn Add Library sau đó chọn MySQL JDBC Driver



Nhấn OK.

Kết nối với cơ sở dữ liệu bằng Java

Chắc chắn rằng đã chạy mysql server


Trước khi kết nối được tạo, phải chạy mysql server, nếu bạn đã chắc chắn mysql server đang chạy thì có thể bỏ qua bước dưới.

Để chạy mysql server, mở cmd dưới quyền admin và gõ lệnh:

net start mysql


hoặc mở power shell dưới quyền admin và gõ lệnh:


(get-service mysql).start()

Import thư viện và đăng ký Driver

Bước tiếp theo là import thư viện:

import java.sql.*;

Việc cần làm tiếp theo đó là đăng ký driver của mysql cho lớp DriverManager, làm điều này bằng cách:


Class.forName("com.mysql.jdbc.Driver");


Lệnh trên sẽ khởi tạo lớp mysql driver, JRE sẽ gọi đến static block trong lớp mysql driver, và đăng ký nó với DriverManager.

Chú ý là chỉ phải đăng ký một lần cho mỗi phiên làm việc.

Tạo kết nối và thử câu lệnh


Nếu làm các bước trên đâu vào đấy rồi thì có thể tạo một kết nối đến cơ sở dữ liệu:


Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306", "root", "mysql");

connection.setCatalog("class"); //kết nối với cơ sở dữ liệu có tên là class


Gõ vài câu truy vấn để thử kết nối:



Statement statementmgr = connection.createStatement();

ResultSet result = statementmgr.executeQuery( "select * from MEMBERINFO" );

result.next();

System.out.println(result.getString( "fullname") );



Tạo một class mới có tên Mysqlconnect để thao tác với CSDL. Và chúng ta chú ý là phải có Driver của MySql. Download tại

http://www.mediafire.com/download/qcxcmj9fervax9y/mysql-connector-java-5.1.10-bin.jar

pass: ookey.name.vn

Sau đó ad file Driver tải được vào project như sau

nhấn vào Add Jar/Folder, Sau đó nó sẽ link tới máy và chúng ta tìm file Driver vừa tải được add vào project

Bước 2: Vào phpmyAdmin và tạo CSDL có tên SinhViendb, Bảng dữ liệu sinhvien

Mysqlconnect.java
public class MySQLConnect {
 String Host="";  // Thông tin Host của DataBase Server mình connect tới.
 String UserName=""; // Thông tin tên đăng nhập cua DataBase Server.
 String Password=""; // Thông tin mật khẩu của DataBase Server.
 String DataBase=""; // Tên DataBase muốn connect tới.

 Connection connect=null; // Khởi tạo Connection bằng null;
 Statement statement=null; // Khởi tạo Statement để thực thi lệnh SQL;
 ResultSet result =null;  // Khởi tạo ResultSet chứa dử liệu khi thực thi câu lệnh Select.

 // Hàm khởi tạo và truyền thông tin của DataBase Server.
 public MySQLConnect(String Host,
   String UserName,
   String Password,
   String DataBase){
  this.DataBase = DataBase;
  this.Host = Host;
  this.Password = Password;
  this.UserName = UserName;
 }

 // Hàm kiểm tra xem Driver connect MySQL đã sẵn sàng hay chưa.
 protected void driverTest () throws Exception{
  try {
   //Kiểm tra Class Name.
   Class.forName("org.gjt.mm.mysql.Driver");
  }
  // Nếu chưa tồng tại thì mém lỗi ra ngoài.
  catch (java.lang.ClassNotFoundException e) {
    throw new Exception("MySQL JDBC Driver not found ... ");
  } 
 }

 // Hàm lấy Connecttion
 protected Connection getConnect() throws Exception {
  // Nếu connetion null thì khởi tạo mới.
  if(this.connect==null){
   // Kiểm tra Driver
   driverTest();

   // Tạo Url kết nối đền DataBase Server
   String url = "jdbc:mysql://" + this.Host + ":3306/" + this.DataBase;
   try {
    // Tạo Connection thông qua Url
    this.connect = DriverManager.getConnection(url, this.UserName, this.Password);
   }
   // Nếu không thành công ném lỗi ra ngoài.
   catch (java.sql.SQLException e) {
    throw new Exception("Không thể kết nối đến DataBase Server: " + url + e.getMessage());
   }
  }
  // Trả connection ra ngoài.
  return this.connect;
 }

 // Tạo Statement để thực thi câu Query
 protected Statement getStatement() throws Exception {
  // Kiểm tra statement nếu = null hoặc đã đóng.
  if(this.statement==null? true: this.statement.isClosed()){
   // Khởi tạo một statement mới.
   this.statement = this.getConnect().createStatement();
  }
  // Trả staement ra ngoài.
  return this.statement;
 }

 // Hàm thực thi câu lệnh Select lấy dữ liệu từ CSDL
 public ResultSet excuteQuery(String Query) throws Exception{
  try{
   // Thực thi câu lệnh.
   this.result = getStatement().executeQuery(Query);
  }
  // Nếu không thành công ném lỗi ra ngoài.
  catch(Exception e){
   throw new Exception("Erro: " +e.getMessage() +" - "+Query);
  }
  // Trả kết quả ra ngoài.
  return this.result;
 }

 // Thức thi các câu lệnh Inser, Update, Delete
 public int executeUpdate(String Query) throws Exception{
  //Khai báo biến int lưu trữ kết quả tình trạng thực thi câu lệnh Query.
  int res =Integer.MIN_VALUE;
  try{
   //Thực thi câu lệnh.
   res = getStatement().executeUpdate(Query);
  }
  //Nếu không thành công ném lỗi ra ngoài.
  catch(Exception e){
   throw new Exception("Erro: " +e.getMessage() +" - "+Query);}
  finally{
   //Đóng kết nối.
   this.Close();
  }
  //Trả kết quả ra ngoài.
  return res;
 }

 // Hàm đóng kết nối.
 public void Close() throws SQLException{
  // Nếu Result chưa đóng. Đóng result
  if(this.result!=null && ! this.result.isClosed()){
   this.result.close();
   this.result = null;
  }
  // Nếu statement chưa đóng. Đóng statement.
  if(this.statement!=null && !this.statement.isClosed()){
   this.statement.close();
   this.statement = null;
  }
  // Nếu connection chưa đóng. Đóng connection.
  if(this.connect!=null && !this.connect.isClosed()){
   this.connect.close();
   this.connect =null;
  }
 }

Xong! bây giờ chúng ta chạy thử để xem kết quả:

Chúng ta thấy nó đã truy xuất ra được là có 4 sinh viên trong Bảng dữ liệu SinhVien CSDL SinhViendb

có một sinh viên có mã là 1, và nó lấy ra tên của một sinh viên trong CSDL

Code full: 

Link mediafire:


CSDL : 


Link mediafire:

pass: ookey.name.vn

0 nhận xét:

Đăng nhận xét