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

来源:互联网 发布:剪发 知乎 编辑:程序博客网 时间:2024/05/19 16:23

新建一个数据库

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



新建一个Employee类

接下来就是编写相对应的Employee对象,对象中的字段要和数据库里的字段一一对应,代码:
package com.bzu.db;public class Employee {private int id;//idprivate 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();}@Overridepublic 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=? ");//赋值给第一个?nameps.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命令就能调用数据库的一些操作命令,正在研究中......................


0 0