查询操作:
只查询一条记录
Sys_user getSyById(Integer userid);
@Override
public Sys_user getSysById(Integer userid) {
// TODO Auto-generated method stub
Sys_user s = null;
try(Connection conn = JdbcUtil.getConnections();
PreparedStatement ps = conn.prepareStatement(sql_selectOne)){
ps.setInt(1, userid);
ResultSet rs =ps.executeQuery();
if(rs.next()) {
s = new Sys();
s.setUserid(rs.getInt(1));
s.setUsername(rs.getString(2));
s.setRemain(rs.getInt(3));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return s;
}
查询多条记录:
getAll();
getXXXByPage();
List继承了Collection,是有序的列表。
实现类有ArrayList、LinkedList、Vector、Stack等
1.ArrayList是基于数组实现的,是一个数组队列。可以动态的增加容量!
2.LinkedList是基于链表实现的,是一个双向循环列表。可以被当做堆栈使用!
3.Vector是基于数组实现的,是一个矢量队列,是线程安全的!
4.Stack是基于数组实现的,是栈,它继承与Vector,特性是FILO(先进后出)
public List<Sys> getAll() {
// TODO Auto-generated method stub
List<Sys> list= new ArrayList<Sys_user>();
try(Connection conn = JdbcUtil.getConnections();
PreparedStatement ps = conn.prepareStatement(sql_selectTwo);
ResultSet rs = ps.executeQuery()){
Syss = new Sys();
while(rs.next())
{
s.setUserid(rs.getInt(1));
s.setUsername(rs.getString(2));
s.setRemain(rs.getInt(3));
list.add(s);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
List<Book> l=new ArrayList();
int n=pageSize*(startPage-1);
for(int i=0;i<pageSize;i++)
{
l.add(list.get(n+i));
}
return l;
增强:
1.定义一个转换器
package util;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* 将rs中的一条记录转换成一个vo对象
*
* @param <T>
*/
public interface Convertor<T> {
public T convert(ResultSet rs) throws SQLException ;
}
2.增强JdbcUtil
/**
* 执行sql 将返回结果转换为T类型
* @param sql
* @param convertor
* @param obj
* @return
*/
public static <T> List<T> query(String sql,Convertor<T> convertor,Object...obj) {
List<T> list = new ArrayList<T>();
try(Connection conn =JdbcUtil.getConnections();
PreparedStatement ps = conn.prepareStatement(sql)){
for(int i=0;i<obj.length;i++) {
ps.setObject(i+1, obj[i]);
}
ResultSet rs = ps.executeQuery();
while(rs.next()) {
list.add(convertor.convert(rs));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
3.增强查询操作
@Override
public Sys getSysById(Integer userid) {
// TODO Auto-generated method stub
List<Sys> list= JdbcUtil.query(sql_selectOne, new SysConvertor(),userid);
return list.isEmpty()?null:list.get(0);
}
@Override
public List<Sys> getAll() {
// TODO Auto-generated method stub
return JdbcUtil.query(sql_selectTwo, new SysConvertor());
}
public List<Book> getByPage(int startPage, int pageSize) {
return JdbcUtil.query("select * from book limit ?,?", new BookConvertor(), (startPage-1)*pageSize,pageSize);
}
}