結合 JavaBean 和 JDBC,我們可以編寫出結構清晰,使用方便的數據庫應用程序。
db 類封裝了數據庫操作,包括建立和關閉連接,以及執行SQL查詢操作。
emp類使用db類并針對EMP 表完成了根據工號查詢員工資料的功能,并提供了員工姓名的getter方法。
package db;
import java.net.*;
import java.sql.*;
import java.io.*;
public class db {
Connection conn;
Statement stmt;
ResultSet rs;
//數據庫連接
public void getConnection(){
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Hotel;User=sa;Password=sa");
}
catch (Exception e){
System.out.println(e.getMessage());
}
}
//關閉連接
public void closeConnection(){
try{
if (conn != null){
conn.close();
}
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
//對數據庫進行操作
public ResultSet executeQuery(String sql){
rs = null;
try{
getConnection();
if (conn != null){
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
}
catch (Exception e){
System.out.println(e.getMessage());
}
return rs;
}
}
package db;
import java.sql.*;
public class emp extends db {
private String empno;
private String ename;
public emp(String em){
empno = em;
}
//執行Sql語句 對屬性ename賦值
public void query(){
try{
String sSql = "select * from emp where empno =" + empno;
ResultSet rs = executeQuery(sSql);
if (rs.next()){
ename = rs.getString("ename");
}
}
catch (Exception e){
System.out.println(e.getMessage());
}
}
//得到ename
public String getEname(){
return ename;
}
}
package db;
import java.io.*;
import java.sql.*;
public class TestBean {
public static void main(String args[]){
String empno;
emp em;
try{
System.out.println("請輸入工號:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
empno = br.readLine();
em = new em(empno);
em.query();
System.out.println("工號為" + empno + "的員工姓名是:" + em.getEname());
em.closeConnection();
}
catch (Exception e){
System.out.println(e.getMessage());
}
}
}