four systems Ответов: 1

Записи Java jdbc из текстового файла в базу данных


код для записей базы данных добавляется при запуске программы, однако требуется код, который считывает данные из текстового файла и добавляет записи в базу данных

package Rdbms;

import java.sql.*;  
import java.io.*;  

class javardbms
{  
public static void main(String args[])throws Exception{  
Class.forName("org.apache.derby.jdbc.ClientDriver");  
Connection con=DriverManager.getConnection("jdbc:derby://localhost:1527/Oracle;create=true;user=Android;password=java");  
  
PreparedStatement y=con.prepareStatement("insert into GOOD values(45,'Who')");  
  
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));  
  
do{   
int i=y.executeUpdate();  
System.out.println(i+" records affected");    
System.out.println("Do you want to continue: y/n");  
String s=br.readLine();  
if(s.startsWith("n")){  
break;  
}  
}while(true);    
con.close();  
}}  


Что я уже пробовал:

изменил код , использовал строковый путь к файлу

Richard MacCutchan

Вы используете BufferedReader на System.in, который является консолью. Если вы хотите прочитать данные из текстового файла, вам нужно изменить устройство чтения для чтения из рассматриваемого файла.

1 Ответов

Рейтинг:
1

shwetakakran

import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class InsertTextFileToOracle {

  public static Connection getConnection() throws Exception {
    String driver = "oracle.jdbc.driver.OracleDriver";
    String url = "jdbc:oracle:thin:@localhost:1521:oracle";
    String username = "username";
    String password = "password";
    Class.forName(driver);
    Connection conn = DriverManager.getConnection(url, username, password);
    return conn;
  }

  public static void main(String[] args)throws Exception {
    String id = "001";
    String fileName = "fileName.txt";
    
    FileInputStream fis = null;
    PreparedStatement pstmt = null;
    Connection conn = null;
    try {
      conn = getConnection();
      conn.setAutoCommit(false);
      File file = new File(fileName);
      fis = new FileInputStream(file);
      pstmt = conn.prepareStatement("insert into DataFiles(id, fileName, fileBody) values (?, ?, ?)");
      pstmt.setString(1, id);
      pstmt.setString(2, fileName);
      pstmt.setAsciiStream(3, fis, (int) file.length());
      pstmt.executeUpdate();
      conn.commit();
    } catch (Exception e) {
      System.err.println("Error: " + e.getMessage());
      e.printStackTrace();
    } finally {
      pstmt.close();
      fis.close();
      conn.close();
    }
  }
}