Java封装简化(只有登录查询)

这篇博客介绍了如何使用DBuit库简化Java中的数据库查询封装。通过在Servlet页面调用封装好的接口,实现了登录查询功能。尽管接口可以不写,但作者选择编写以增强可读性和灵活性。最后,还涉及了与jsp页面的交互。

DBuit:简化封装

package cn.hp.DBuit;
​
import cn.hutool.db.DbUtil;
​
import java.sql.*;
import java.util.*;
​
public class DBuit {
//常量大写
    private static final String  URL = "jdbc:mysql://127.0.0.1:3306/mydb?serverTimezone=UTC&characterEncoding=utf8";
    private static final String NAME = "root";
    private static final String PASSWORD = "123456";
    private static final String DRIVER = "com.mysql.jdbc.Driver";
    private static Connection con=null;
    private static PreparedStatement ps=null;
    private static ResultSet rs=null;
    //加载数据库驱动
    //static静态代码块,在jvm加载类的时候启用,在一个类中可以有多个static代码块,根据static的顺序来运行
    static {
        try {
            Class.forName(DRIVER);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
​
    /**
     * 获取数据库连接
     * @return
     */
    public static Connection getCon(){
        try {
            con = DriverManager.getConnection(URL,NAME,PASSWORD);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return con;
    }
​
​
​
    //查询(用List泛型存俩值)
    public List<Map> select(String sql, Object... obj) {
        List<Object> objects = Arrays.asList(obj);
        //使用Map集合,可以不需要再封装数据库
        List<Map> list=new ArrayList<>();
        //获取数据库连接
        con = DBuit.getCon();
        try {
            ps = con.prepareStatement(sql);
            //赋予预编译对象的值
            //(sql+" ").split("\\?")    sql+" "这里的空格切记不能少       长度的下标从0开始起,所以?的数量要减去1
            for (int i = 0; i < (sql+" ").split("\\?").length - 1; i++) {
                ps.setObject(i + 1, objects.get(i));
            }
            rs = ps.executeQuery();
            //ResultSetMetaData 可用于获取关于 ResultSet 对象中列的类型和属性信息的对象
            //getMetaData()   得到数据集的列数
            ResultSetMetaData metaData=rs.getMetaData();
            while(rs.next()){
        
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值