Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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中,如何从多个run()方法将记录插入数据库?_Java_Multithreading_Jdbc - Fatal编程技术网

在java中,如何从多个run()方法将记录插入数据库?

在java中,如何从多个run()方法将记录插入数据库?,java,multithreading,jdbc,Java,Multithreading,Jdbc,在我的项目中,我使用了多种运行方法 在每个run方法中,我得到一个值,所以我想将该值插入到oracledb中 我在每次运行中都编写了DB插入代码,但它只存储第一次运行的方法值,其余的运行方法值未插入 所以,请给我一些建议,将多线程值存储到数据库中。首先,您的问题不太清楚,但下面是测试您案例的示例程序: 要点: 1.检查是否可以根据线程数使用具有一定池大小的数据库连接池。 2.提交您的更改 3.关闭您的连接。 公共类多线程数据库条目 { 请张贴代码的相关部分,删除任何凭证信息,否则任何人都无法帮助

在我的项目中,我使用了多种运行方法

在每个run方法中,我得到一个值,所以我想将该值插入到oracledb中

我在每次运行中都编写了DB插入代码,但它只存储第一次运行的方法值,其余的运行方法值未插入


所以,请给我一些建议,将多线程值存储到数据库中。

首先,您的问题不太清楚,但下面是测试您案例的示例程序: 要点: 1.检查是否可以根据线程数使用具有一定池大小的数据库连接池。 2.提交您的更改 3.关闭您的连接。 公共类多线程数据库条目 {


请张贴代码的相关部分,删除任何凭证信息,否则任何人都无法帮助您。
   public static void main(String[] args)
   {
      new Thread(new DBJob()).start();
      new Thread(new DBJob()).start();

   }

   public static class DBJob implements Runnable
   {
      public DBJob()
      {
      }

      @Override
      public void run()
      {
         Connection conn = null;
         Statement stmt = null;

         try
         {
            conn = getConnection();
            if(conn != null)
            {
               //Do your database operation
            }


         }
         catch (SQLException e)
         {
            // TODO Auto-generated catch block
            e.printStackTrace();
         }
         finally{
            //finally block used to close resources
            try{
               if(stmt!=null)
                  stmt.close();
            }catch(SQLException se2){
            }// nothing we can do
            try{
               if(conn!=null)
                  conn.commit();
                  conn.close();
            }catch(SQLException se){
               se.printStackTrace();
            }//end finally try
         }//

      }

   }

   //Here you can use different database connection pooling mechanism from Apache DBCP, Tomcat Pool etc
   public static Connection getConnection() throws SQLException
   {
      Connection conn = null;
      Statement stmt = null;
      try{

         Class.forName("com.mysql.jdbc.Driver");


         System.out.println("Connecting to database...");
         conn = DriverManager.getConnection(DB_URL, USER, PASS);


      }
      catch(Exception e)
      {
         //Handle errors for Class.forName
         e.printStackTrace();
      }
      return conn;

   }
}