JavaWeb课程复习资料(六)——DAO与DAOImpl层封装

举报
红目香薰 发表于 2022/02/27 14:15:15 2022/02/27
【摘要】 ​承接上文:JavaWeb课程复习资料(五)——配置Tomcat目录1、DAO层2、DAOImpl层1、DAO层DAO层是接口层,故而需要使用【interface】修饰​源码如下:package com.item.dao;import com.item.pojo.UserInfo;import java.util.List;public interface UserInfoDAO { ...

承接上文:JavaWeb课程复习资料(五)——配置Tomcat

目录

1、DAO层

2、DAOImpl层


1、DAO层

DAO层是接口层,故而需要使用【interface】修饰

源码如下:

package com.item.dao;

import com.item.pojo.UserInfo;

import java.util.List;

public interface UserInfoDAO {
    /**
     * 查询所有用户信息
     * @return
     */
    public List<UserInfo> GetAll();

    /**
     * 添加用户
     * @param info
     * @return
     */
    public boolean InsertUserInfo(UserInfo info);

    /**
     * 单个ID查询
     * @param id
     * @return
     */
    public UserInfo SelectById(int id);
    /**
     * 修改用户信息
     * @param info
     * @return
     */
    public boolean UpdateById(UserInfo info);

    /**
     * 根据id删除用户
     * @param id
     * @return
     */
    public boolean DeleteById(int id);
}


2、DAOImpl层

DAOImpl属于实现层,故而通过【】实现DAO层对应接口即可

编码过程中可以看到注释也是很完整的。

源码如下:

package com.item.daoimpl;

import com.item.dao.UserInfoDAO;
import com.item.jdbc.FactoryDB;
import com.item.pojo.UserInfo;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;

public class UserInfoDAOImpl implements UserInfoDAO {
    Connection conn = null;
    PreparedStatement pre = null;
    ResultSet res = null;

    @Override
    public List<UserInfo> GetAll() {
        try {
            conn = FactoryDB.GetConnection();
            pre = conn.prepareStatement("select * from userinfo");
            res = pre.executeQuery();
            List<UserInfo> list = new LinkedList<UserInfo>();
            while (res.next()) {
                list.add(new UserInfo(
                        res.getInt(1),
                        res.getDate(2),
                        res.getString(3),
                        res.getString(4)
                ));
            }
            FactoryDB.Close(conn, pre, res);
            return list;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    public boolean InsertUserInfo(UserInfo info) {
        try {
            conn = FactoryDB.GetConnection();
            pre = conn.prepareStatement("INSERT INTO userinfo VALUES (0,NOW(),?,?);");
            pre.setString(1, info.getUserName());
            pre.setString(2, info.getIntroduce());
            int isf = pre.executeUpdate();
            FactoryDB.Close(conn, pre, res);
            return isf != -1;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }

    @Override
    public UserInfo SelectById(int id) {
        try {
            conn = FactoryDB.GetConnection();
            pre = conn.prepareStatement("select * from userinfo where id=?");
            pre.setInt(1, id);
            res = pre.executeQuery();
            //判断查询结果是否为空
            if (res.wasNull()) {
                return null;
            }
            UserInfo u=null;
            while (res.next()) {
                u = new UserInfo(res.getInt(1), res.getDate(2), res.getString(3), res.getString(4));
            }
            FactoryDB.Close(conn, pre, res);
            return u;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    public boolean UpdateById(UserInfo info) {
        try {
            conn = FactoryDB.GetConnection();
            pre = conn.prepareStatement("update userinfo set userName=?,introduce=? where id=?");
            pre.setString(1, info.getUserName());
            pre.setString(2, info.getIntroduce());
            pre.setInt(3, info.getId());
            int isf = pre.executeUpdate();
            FactoryDB.Close(conn, pre, res);
            return isf != -1;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }

    @Override
    public boolean DeleteById(int id) {
        try {
            conn = FactoryDB.GetConnection();
            pre = conn.prepareStatement("delete from test.userinfo where id=?");
            pre.setInt(1, id);
            int isf = pre.executeUpdate();
            FactoryDB.Close(conn, pre, res);
            return isf != -1;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }
}

到此DAO与DAOImpl层封装完毕。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。