JavaWeb开发数据库操作简单封装

最近在学习javaWeb和MySQL数据库,使用了jdbc这个框架操作,发现运行多段不同功能的数据库操作SQL写法非常麻烦,于是我就简单封装下,下面分享给大家
一、首先定义接口 utilDao类

import java.sql.ResultSet;

public interface UtilDao {
    /**
     * 数据库增删改接口
     * @param url SQL语句
     * @return 是否成功     0、失败
     *                       1、成功
     */
    int UpdateAddAlterData(String url);

    /**
     * 数据库查操作
     * @param Url SQL语句
     * @return ResultSet 由用户解析成不同的数据类型
     */
    ResultSet LookData(String Url);

    /**
     * 关闭数据库连接
     */
    void SqlConnectionOver();
}

二、定义实现类utilDaoImpl基础utilDao

import com.guet.andream.info.Constant;

import java.sql.*;

public class UtilDaoImpl implements UtilDao {
    private Connection con = null;
    private PreparedStatement ps = null;

    /**
     * 数据库连接
     * @param sql SQL语句
     */
    private  void SqlConnection(String sql) {
        System.out.println("SQL: "+sql);
        try {
            Class.forName(Constant.DRIVER);
            con = DriverManager.getConnection(Constant.UEL, Constant.USER, Constant.PASSWORD);
            ps = con.prepareStatement(sql);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }

    /**
     * 数据库关闭
     */
    public void SqlConnectionOver(){
        try {
            con.close();
            ps.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    /**
     * 实现增删改
     * @param url SQL语句
     * @return 是否成功 0、失败  1、成功
     */
    public int UpdateAddAlterData(String url) {
        SqlConnection(url);
        try {
            return ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        finally {
            SqlConnectionOver();
        }
        return 0;
    }

    /**
     * 数据查询
     * @param Url SQL语句
     * @return ResultSet
     */
    public ResultSet LookData(String Url) {
        SqlConnection(Url);
        ResultSet rs=null;
        try {
           rs = ps.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return rs;
    }
}

三、下面调用

public class UserDaoImpl implements UserDao {
    private ResultSet rs = null;
   private UtilDao utilDao=new UtilDaoImpl();
    public User LoginUserDao(String url) {
        User user=null;
        try {
            rs=utilDao.LookData(url);
            while (rs.next()){
                user=new User();
                user.setId(rs.getInt("id"));
                user.setPhone(rs.getString("phone"));
                user.setName(rs.getString("name"));
                user.setPassword(rs.getString("password"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            utilDao.SqlConnectionOver();//操作完关闭数据库
            rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return user;
    }
   
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值