2301_78927217 2024-05-25 21:35 采纳率: 0%
浏览 9

Java链接数据库,想问下main应该加到哪里

img


java连接数据库的代码,代码里面没有报错,但最后说要加main方法,想问问各位应该加到哪里

package test;

import java.security.DomainCombiner;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Dbutill {
    /*
     * 
     */
    private Connection conn =null;
    private PreparedStatement ps = null;
    private ResultSet rs = null;
    private String url="jdbc:mysql://localhost:3306/asdf";
    private String username = "root";
    private String password = "root";
    /*
     * 1.在静态代码块里写加载驱动
     */
    static {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
//    2.获取链接
    private Connection getConnection() {
        
        try {
            conn = DriverManager.getConnection(url,username,password);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return conn;        
    }
    //3.更新方法:增删改
    public int Update(String sql, Object[] objs) {
        int result = 0;
        try {
            ps = getConnection().prepareStatement(sql);
            for(int i = 0 ; i < objs.length ; i ++) {
                ps.setObject(i + 1, objs[i]);
            }
            result = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            release();
        }
        return result;
    }
    /*4.查询方法*/
    public List<Map<String, Object>> Query(String sql, Object[] objs){
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        try {
            ps = getConnection().prepareStatement(sql);
            for(int i = 0 ; i < objs.length ; i ++) {
                ps.setObject(i + 1, objs[i]);
            }
            rs = ps.executeQuery();
            ResultSetMetaData rsmd = rs.getMetaData();
            while(rs.next()) {
                Map<String, Object> map = new HashMap<String, Object>();
                for(int i = 0 ; i < rsmd.getColumnCount(); i ++) {
                    String key = rsmd.getColumnName(i + 1);
                    Object value = rs.getObject(key);
                    map.put(key, value);
                }
                list.add(map);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            release();
        }
        return list;
    }
    /*释放资源方法*/
    public void release() {
        if(rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(ps != null) {
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    public int Update1(String sql, Object[] objects) {
        // TODO Auto-generated method stub
        return 0;
    }


}


  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-05-25 21:38
    关注

    引自免费微信小程序:皆我百晓生

    根据您的描述,您似乎想要在Java项目中添加一个主入口点(main方法),以便运行这个包含数据库操作的类。要在Dbutill类中添加主方法,您可以按照下面的方式修改代码:

    package test;
    
    import java.sql.*;
    
    public class Dbutill {
        // ... (保留其他现有代码)
    
        public static void main(String[] args) {
            System.out.println("Starting the program...");
    
            // 创建一个对象并执行数据库操作
            Dbutill dbUtil = new Dbutill();
    
            // 示例:执行一个简单的查询
            String querySql = "SELECT * FROM your_table_name"; // 替换为实际表名
            Object[] params = {}; // 如果查询不需要参数,就保持空数组
    
            List<Map<String, Object>> results = dbUtil.Query(querySql, params);
    
            System.out.println("Query Results:");
            for (Map<String, Object> row : results) {
                for (String key : row.keySet()) {
                    System.out.print(key + ": " + row.get(key) + "\t");
                }
                System.out.println();
            }
    
            System.out.println("Program completed.");
        }
        
        // ... (保留其他现有代码)
    }
    

    在这个例子中,我添加了一个main方法到Dbutill类中。这个方法首先创建了Dbutill的一个实例,然后执行了一个示例查询,并打印出结果。确保替换your_table_name为实际要查询的表名。

    为了测试这个程序,你需要一个名为your_table_name的数据库表,并且已经正确配置了数据库连接信息(URL、用户名和密码)。运行带有main方法的Dbutill类,程序将会执行查询并输出结果。如果你想要进行其他类型的数据库操作(例如插入、删除或更新数据),只需调用相应的UpdateQuery方法即可。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月25日