Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中MySQL数据库的动态访问_Java_Mysql - Fatal编程技术网

Java中MySQL数据库的动态访问

Java中MySQL数据库的动态访问,java,mysql,Java,Mysql,我正在寻找一种更动态地访问MySQL数据库的方法 例如,我想在表中插入一些文本。 我有一个名为insert()的方法,大约每半秒钟调用一次,然后执行insert操作 代码如下所示: public void insert(String string) { Class.forName("com.mysql.jdbc.Driver").newInstance(); java.sql.Connection conn = java.sql.DriverManager.get

我正在寻找一种更动态地访问MySQL数据库的方法

例如,我想在表中插入一些文本。 我有一个名为
insert()
的方法,大约每半秒钟调用一次,然后执行insert操作

代码如下所示:

public void insert(String string) {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        java.sql.Connection conn = java.sql.DriverManager.getConnection(...);
        java.sql.Statement stat = conn.createStatement();
        stat.executeUpdate("INSERT INTO mytable (mytext) VALUES ('"+ string +"')");
        conn.close();
}
但我真的认为这会导致很多问题,因为它太频繁地打开和关闭连接

那么,是否有任何方法可以打开一些“MySQLStream”到数据库并将数据打印到其中,而无需反复打开和关闭连接


谢谢你的回复

在程序开始时创建一个连接对象,并将其用于每个查询。仅在程序结束时关闭它

通常一个连接是好的,所以您可以将其声明为静态的

public static java.sql.Connection conn;
public static void buildConnection()
{
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    conn = java.sql.DriverManager.getConnection(...);
}

public void insert(String string) 
{
    java.sql.Statement stat = conn.createStatement();
    stat.executeUpdate("INSERT INTO mytable (mytext) VALUES ('"+ string +"')");
}
在程序中,您可以执行以下操作:

buildConnection();
...
insert("....");
insert("....");
...
conn.close();

你应该关闭连接这是一个很好的做法,这里的答案是使用ConnectionPool。如果你担心频繁打开/关闭连接,请使用“连接池”。是的,这也是我考虑的选项。如果我找不到其他解决方案,我会用它。