有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何对多个方法使用相同的数据库连接(JAVA)

大家好,我开始学习JAVA中的数据库连接,我正在开发一个需要数据库的迷你应用程序。我想知道使用连接对象的正确方式是什么,这样我就可以将它用于多种方法

一种添加新记录的方法,另一种搜索特定键的方法,等等。 我必须访问多个表,每个表都有自己的类和方法集

如果有任何关于JAVA软件开发的好书,那可能也很有用


共 (2) 个答案

  1. # 1 楼答案

    如果应用程序很小,你可以在每次访问数据库时创建一个连接对象,但是如果对数据库的请求数量很高,你可以使用连接池,你可以使用BasicDataSource,这是一个apache项目,使用singleton模式来包装基本数据源的实例,并检索每个连接对象你想从包装课上得到多少时间 DataWrapper

    import java.sql.Connection;
    import java.util.Properties;
    import javax.sql.DataSource;
    import org.apache.commons.dbcp2.BasicDataSourceFactory;
    
    public class DataWrapper {
    
        private static DataSource datasource;
    
        private static void initialize() throws Exception {
    
            Properties props = new Properties();
            props.put("url", "jdbc:mysql://localhost:3306/testbd");
            props.put("password", "root");
            props.put("username", "root");
            props.put("driverClassName", "com.mysql.jdbc.Driver");
            props.put("initialSize", "10");
            props.put("maxTotal", "15");
            props.put("maxIdle", "10");
            props.put("minIdle", "5");
            datasource = BasicDataSourceFactory.createDataSource(props);
    
        }
    
        public static synchronized Connection getConnection() throws Exception {
            if (datasource == null) {
                initialize();
            }
            return datasource.getConnection();
    
        }
    
    }
    

    来电者

    Connection con=DataWrapper.getConnection();
        PreparedStatement statement=con.prepareStatement("select * from users");
    
        ResultSet result= statement.executeQuery();
        result.next();
        System.out.println(result.getString(1));
        //dont forget to close the connection object
        con.close();
    
  2. # 2 楼答案

    我认为对于简单的情况,只需打开和关闭每个查询的连接。对于更复杂的情况(如服务器),您可以使用连接池,它会保存打开的连接列表