<strong><span style="font-size:24px;">//接口类</span></strong>
<span style="font-size:14px;">package com.lrk.login.jdbcdao;
import java.util.ArrayList;
import com.lrk.login.person.Person;
/**
* 作用:此接口用于统一操作数据库的规范
* 操作数据库中的数据
*
* @author kevin
*
*/
public interface UsertableDao {
//查询单条数据记录
public boolean queryAData(String name, String password);
//插入一条数据记录
public int regist(Person persion);
//查询所有数据记录
public ArrayList<Person> queryAllData();
}
</span>
//接口实现类
package com.lrk.login.jdbcdao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import com.lrk.login.jdbcdao.Jdbcdao;
import com.lrk.login.jdbcdao.UsertableDao;
import com.lrk.login.person.Person;
import com.sun.org.apache.commons.collections.CursorableLinkedList.Cursor;
/**
* 作用:UsertableDao接口的实例
* 实现接口中定义的方法
* @author kevin
*
*/
public class UsertableImp implements UsertableDao {
private PreparedStatement pre;//创建PreparedStatement对象
private ArrayList<Person> mListPerson = new ArrayList<Person>();
//查询所有数据记录
public ArrayList<Person> queryAllData() {
//获得数据库的连接对象
Jdbcdao dao = Jdbcdao.getInstace();
//获得一个连接
Connection con = dao.con;
System.out.println("UsertableImp:连接数据库成功");
try {
//通过prepareStatement声明一条Sql语句,待执行的语句
pre = con.prepareStatement("select *from usertable");
//执行sql语句进行查询,返回一个结果集
ResultSet res = pre.executeQuery();
//遍历所有数据并存储在mListPerson对象数组中(非链式线性列表)
while(res.next()){
Person person = new Person();
person.setId(res.getInt(1));
person.setName(res.getString(2));
person.setPassword(res.getString(3));
mListPerson.add(person);
}
} catch (SQLException e) {
System.out.println("UsertableImp—queryAllData:查询数据失败");
e.printStackTrace();
}
System.out.println("UsertableImp-queryAllData查询结果:"+mListPerson.toString());
return mListPerson;
}
//查询单条数据记录
public boolean queryAData(String name, String password) {
if(name == null || password == null){
//获得数据库的连接
Jdbcdao dao = Jdbcdao.getInstace();
Connection con = dao.con;
try {
//创建PreparedStatement对象,sql语句不再采用拼接方式,应用占位符问号的方式写sql语句。
pre = con.prepareStatement("select *from usertable where name=? and password=?");
//对占位符设置值,占位符顺序从1开始,第一个参数是占位符的位置,第二个参数是占位符的值
pre.setString(1, name);
pre.setString(2, password);
//执行sql语句进行查询
ResultSet res = pre.executeQuery();
return res.next();
} catch (SQLException e) {
System.out.println("UsertableImp—login:查询数据失败");
e.printStackTrace();
}
}else{
System.out.println("UsertableImp-queryAData:name 或 password为null");
}
return false;
}
//向数据库中添加一条数据
public int regist(Person person) {
if(person == null){
//获得数据库连接
Jdbcdao dao = Jdbcdao.getInstace();
Connection con = dao.con;
try {
//创建PreparedStatement对象,sql语句不再采用拼接方式,应用占位符问号的方式写sql语句。
pre = con.prepareStatement("insert into usertable values(seq_usertable.nextval,?,?)");
//对占位符设置值,占位符顺序从1开始,第一个参数是占位符的位置,第二个参数是占位符的值
pre.setString(1, person.getName());
pre.setString(2, person.getPassword());
int i = pre.executeUpdate();
if(i == 0){
System.out.println("UsertableImp—regist:用户注册失败");
}
return i;
} catch (SQLException e) {
System.out.println("UsertableImp—regist:用户注册失败");
e.printStackTrace();
}
}else{
System.out.println("UsertableImp-regist:person为null");
}
return 0;
}
}