查詢操作:
只查詢一條記錄
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);
}
}