正在相菜鸟进发,修炼中......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命令就能调用数据库的一些操作命令,正在研究中......................
相关文章推荐
- java的Swing编程
- java 技术体系
- JAVA之使用JDBC连接数据库-使用jtds 连接Sql Server 2005数据库
- struts2的Action类
- javaEE SSH框架记录在线登录用户以及登录用户的在线时长
- java命令行运行带外部jar
- Java多线程volatile和synchronized
- Spring + Spring MVC + Hibernate项目开发集成(注解)
- Java web Servlet 笔记
- java之七 高级类设计
- java之七 高级类设计
- 快速排序——java
- java之七 高级类设计
- Java之六 类设计
- Java之六 类设计
- Java之六 类设计
- Struts2_通用标签
- Eclipse 用户界面简介
- 转发 清华大学出版设出版的 张孝祥老师的 Java就业培训教程的一篇文章 经过这几年的生活磨砺 个人认为那个时候的张老师 已经对编程开悟了
- Spring事务不回滚