DAO

package day03;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import DAY02.UserInfo;
import day01.DBUtil;

/**
 * DATA ACCESS OBJECT
 * 数据连接对象
 * 该类是将数据库中的数据与java中的对象进行了映射
 * 使得业务逻辑对数据库的操作可以完全面向对象化,从屏蔽了与数据库的直接操作。
 * 在项目分成中,DAO处于数据持久层
 * @author Ward
 *
 */
public class UserInfoDAO {
        public boolean deleteById(int id) {
            /**
             * DELETE FROM userinfo WHERE id=?
             */
            
            return false;
        }
    
    
    public List<UserInfo> findAllByPage(int page,int pageSize){
        /**
         * 分页查询用户信息
         */
         try {
             
             int start=(page-1)*pageSize+1;
             int end=pageSize+page;
             Connection conn=DBUtil.getConnection();
             String sql="SELECT * "
                     + "FROM (SELECT ROWNUM rn,t.* "
                     + "FROM(SELECT id,username,password,account,email "
                     + "FROM userinfo "
                     + "ORDER BY id) t "
                     + "WHERE ROWNUM<=?) "
                     + "WHERE rn>=?";
             PreparedStatement ps=conn.prepareStatement(sql);
             ps.setInt(1, end);
             ps.setInt(2, start);
             ResultSet rs=ps.executeQuery();
             List<UserInfo> list=new ArrayList<UserInfo>();
             while(rs.next()) {
                    int id=rs.getInt("id");
                    String username=rs.getString("username");
                    String password=rs.getString("password");
                    int account=rs.getInt("account");
                    String email=rs.getString("email");
                    UserInfo userInfo=new UserInfo(id,username,password,account,email);
                    
                    list.add(userInfo);
                    
                }
                
                return list;
             
         }catch (Exception e) {
             e.printStackTrace();
         }finally {
             DBUtil.closeConnection();
         }
        
        return null;
        
        
    }
    
    public List<UserInfo> findAll(){
        /**
         * 将所有用户信息返回
         */
        try {
            Connection conn=DBUtil.getConnection();
                Statement state=conn.createStatement();
                String sql="SELECT id,username,password,account,email "
                        + "FROM userinfo";
            ResultSet rs=state.executeQuery(sql);
                List<UserInfo> list=new ArrayList<UserInfo>();
                while(rs.next()) {
                    int id=rs.getInt("id");
                    String username=rs.getString("username");
                    String password=rs.getString("password");
                    int account=rs.getInt("account");
                    String email=rs.getString("email");
                    UserInfo userInfo=new UserInfo(id,username,password,account,email);
                    
                    list.add(userInfo);
                    
                }
                
                return list;
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            DBUtil.closeConnection();
        }
        return null;
    
    }
    
    //业务逻辑层,数据持久层
    /**
     * 将给定的UserInfo对象所表示的用户信息保存到数据库中
     * @param userinfo
     * @return
     */
        public boolean save(UserInfo userinfo) {
            try {
                Connection conn=DBUtil.getConnection();
                String sql="INSERT INTO userinfo "
                        + "(id,username,password,account,email) "
                        + "VALUES "
                        + "(seq_userinfo_id.NEXTVAL,?,?,?)";
                
                PreparedStatement ps=conn.prepareStatement(sql);
                
                ps.setString(1, userinfo.getUsername());
                ps.setString(2, userinfo.getPassword());
                ps.setInt(3,userinfo.getAccount());
                ps.setString(4, userinfo.getEmail());
                
                int n=ps.executeUpdate();
                if(n>0) {
                    return true;
                }
                
            }catch (Exception e) {
                e.printStackTrace();
            }finally {
                DBUtil.closeConnection();
            }
            
            
            return false;
            
            
        }
    

}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值