dao---查詢

查詢操作:
只查詢一條記錄

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);
	}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章