新建一個數據庫
庫名爲:company,表名:employee,設置字段以及添加的內容如下:
新建一個Employee類
package com.bzu.db;
public class Employee {
private int id;//id
private String name;//姓名
private String pwd;//密碼
private int age;//年齡
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 String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//無參構造方法
public Employee() {
super();
}
@Override
public String toString() {
return "Employee [id=" + id + ", name=" + name + ", age=" + age + "]";
}
//帶相應字段參數的構造方法
public Employee(int id, String name, String pwd, int age) {
super();
this.id = id;
this.name = name;
this.pwd = pwd;
this.age = age;
}
}
新建一個DbTest測試類
package com.bzu.db;
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 DbTest {
public static void main(String[] args) {
List<Employee> list=fetchData();
System.out.println("從數據查詢到的數據");
for(Employee e:list){
System.out.println(e);
}
//設置默認登錄字段
Employee employee=login("jack", "123");
if(employee!=null){
System.out.println("登錄成功:"+employee.getName());
}else{
System.out.println("請重新登錄!");
}
}
//員工登錄
private static Employee login(String name,String pwd){
Employee employee=null;
Connection conn=null;
try {
//第一步:加載驅動程序
Class.forName("org.sqlite.JDBC");
//第二步:於數據庫建立連接
conn=DriverManager.getConnection("jdbc:sqlite:d:/company.db");
//Statement第二種方法,防止SQL注入的病毒攻擊
// 創建一個 PreparedStatement 對象來將參數化的 SQL 語句發送到數據庫。
PreparedStatement ps=conn.prepareStatement(" select * from employee where name=? and pwd=? ");
//賦值給第一個?name
ps.setString(1, name);
ps.setString(2, pwd);
//在此 PreparedStatement 對象中執行 SQL 查詢,並返回該查詢生成的 ResultSet 對象。
ResultSet rs=ps.executeQuery();
if(rs.next()){
employee=new Employee(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getInt(4));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();//釋放資源
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return employee;
}
private static List<Employee> fetchData() {
List<Employee> list=new ArrayList<Employee>();
Employee employee=null;
Connection conn=null;
try {
//第一步:加載驅動程序
Class.forName("org.sqlite.JDBC");
//第二步:於數據庫建立連接
conn=DriverManager.getConnection("jdbc:sqlite:d:/company.db");
//創建一個 Statement 對象來將 SQL 語句發送到數據庫。
Statement sm=conn.createStatement();
//Sql語句
String sqlString=" select * from employee ";
//執行給定的 SQL 語句,該語句返回單個 ResultSet 對象。
ResultSet rs=sm.executeQuery(sqlString);
while(rs.next()){
employee=new Employee(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getInt(4));
list.add(employee);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
//判斷鏈接的關閉
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return list;
}
}
注意:
導入salite-jdbc.jar包, 此訪問數據庫要第三方驅動,所以要將sqlite-jdbc.jar包導入相應的項目中,其實挺簡單的,怎麼導入我覺的應該自己從網上查下,現在網絡資源這麼豐富.
有很多不足的地方,我查了相關sqlite數據庫的相關知識,現在數據庫查詢有相關的支持框架,可以很方便的不用書寫SQL命令就能調用數據庫的一些操作命令,正在研究中......................