JDBC應用實例

本次實例使用SQLite3數據庫,JDBC驅動是sqlite-jdbc-3.14.2.jar


創建數據庫StudentManageSystem.db,創建表Student

創建Student類

package cjx913;

public class Student {

	private int id;
	private String name;

	public Student() {
		super();
	}

	public Student(int id, String name) {
		super();
		this.id = id;
		this.name = 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;
	}

	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + "]";
	}

}

創建test類
package cjx913;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class test {
	/**
	 * 使用SQLite數據庫
	 */
	private static String sqlDriver = "org.sqlite.JDBC" ;
	private static Connection conn = null;
	private static String url = "jdbc:sqlite:E:/SQLite3/StudentManageSystem.db";
	
	/**
	 * 使用Oracle數據庫
	 * String sqlDriver = "oracle.jdbc.driver.OracleDriver" ;// 加載Oracle驅動程序
	 * String url = "jdbc:oracle:thin:@" + "host:port:databaseName"; // 連接使用的url  
	 * String user = "your database userName"; // 數據庫用戶名  
	 * String password = "your database password"; // 密碼  
	 * conn = DriverManager.getConnection(url, user, password);// 獲取連接  
	 * 
	 */
	
	/**
	 * 使用MySQL數據庫
	 * String sqlDriver = "com.mysql.jdbc.Driver" ;
	 * String url = "jdbc:mysql://host:port:databaseName";
	 * String username = "your database userName";
	 * String password = "your database password";
	 */

	public static void main(String[] args) {

		List<Student> list = fetchData();
		for(Student e:list){
			System.out.println(e);
		}
		
		Student stu = login(2,"b");
		if(stu!=null){
			System.out.println("logined succeed"+"\n當前登錄的用戶是:"+stu.getName());
		}else{
			System.out.println("logined failed");
		}
		//System.out.println(stu);
		
		//register(6, "f");
		//register(7, "g");
	}

	public static void register(int id,String name){
		try {
			Class.forName(sqlDriver);
			conn = DriverManager.getConnection(url);//用Oracle數據庫和MySQL數據庫有用戶和密碼要輸入
			PreparedStatement ps = conn.prepareStatement("INSERT INTO Student VALUES(?,?)");
			ps.setInt(1, id);
			ps.setString(2, name);
			ps.executeUpdate();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
		
	}
	public static Student login(int id,String name){
		Student student = null;
		try {
			Class.forName(sqlDriver);
			conn = DriverManager.getConnection(url);
			PreparedStatement ps = conn.prepareStatement("SELECT * FROM Student WHERE id=? AND name=?");
			ps.setInt(1, id);
			ps.setString(2, name);
			ResultSet rs = ps.executeQuery();
			if(rs.next()){
				student = new Student(rs.getInt(1), rs.getString(2));
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
		
		return student;
	}
	
	public static List<Student> fetchData() {
		List<Student> list = new ArrayList<Student>();
		Student student = null;
		try {
			Class.forName(sqlDriver);
			conn = DriverManager.getConnection(url);
			Statement sm = conn.createStatement();
			String sel = "SELECT * FROM Student";
			ResultSet rs = sm.executeQuery(sel);
			while (rs.next()) {
				student = new Student(rs.getInt(1), rs.getString(2));
				list.add(student);
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
		return list;
	}
}

sqlite-jdbc-3.14.2.jar導入到工程庫中


最終運行結果


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章