您的位置:首页 > 编程语言 > Java开发

正在相菜鸟进发,修炼中......java程序访问Sqlite数据库

2016-05-22 11:42 543 查看

新建一个数据库

库名为:company,表名:employee,设置字段以及添加的内容如下:





新建一个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命令就能调用数据库的一些操作命令,正在研究中......................
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: