2016-12-12 4 views
0

Я создал метод для добавления пользовательских данных в базу данных с помощью подготовленного оператора. Я отлично работаю. Теперь как я могу создать новую папку на моем компьютере каждый раз, когда добавляю новую пользователь в базу данных. Например, когда я нажимаю кнопку «Отправить», пользовательские данные добавляются в базу данных, и в папке моих документов создается новая папка. Я пробовал всевозможные коды, которые просто не работают. Я использую Linux и сетевые бобы 8.1. Заранее спасибоКак создать новый файл в файловой системе каждый раз, когда я добавляю в базу данных

Вот мой метод.

public String addUser(int useId, String name, String lastName, String country, String birthplace, String adress, String password) throws SQLException { 
    List<User> list = listAllUsers(); 
    int size = list.size(); 



    Connection conn = null; 
    PreparedStatement ps = null; 
    ResultSet rs = null; 

    for (int i = 0; i < size; i++) { 
     if (useId == list.get(i).getIdUser()) { 
      return "error"; 
     } 

    } 

    conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/testBaza?user=root"); 
    ps = conn.prepareStatement("INSERT INTO User (id_user,name,last_name,birthplace,country,adress,user_pass) values(?,?,?,?,?,?,?)"); 
    conn.setAutoCommit(false); 

    ps.setInt(1, useId); 
    ps.setString(2, name); 
    ps.setString(3, lastName); 
    ps.setString(4, country); 
    ps.setString(5, birthplace); 
    ps.setString(6, adress); 
    ps.setString(7, password); 

    ps.executeUpdate(); 
    conn.commit(); 
    conn.close(); 



    return "userRegPage"; 

} 

ответ

0

Приведенный ниже код должен работать. Помните, что этот код генерирует SecurityException, когда uesr, запускающий программу, не имеет разрешения на создание каталога в указанном пути. Поэтому, если вы используете веб-приложение, запустите сервер приложений с пользователем, у которого есть достаточные привилегии.

public String addUser(int useId, String name, String lastName, String country, String birthplace, String adress, String password) throws SQLException { 
    List<User> list = listAllUsers(); 
    int size = list.size(); 

    Connection conn = null; 
    PreparedStatement ps = null; 
    ResultSet rs = null; 

    for (int i = 0; i < size; i++) { 
     if (useId == list.get(i).getIdUser()) { 
      return "error"; 
     } 
    } 

    conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/testBaza?user=root"); 
    ps = conn.prepareStatement("INSERT INTO User (id_user,name,last_name,birthplace,country,adress,user_pass) values(?,?,?,?,?,?,?)"); 
    conn.setAutoCommit(false); 

    ps.setInt(1, useId); 
    ps.setString(2, name); 
    ps.setString(3, lastName); 
    ps.setString(4, country); 
    ps.setString(5, birthplace); 
    ps.setString(6, adress); 
    ps.setString(7, password); 

    ps.executeUpdate(); 
    conn.commit(); 
    conn.close(); 

    String folderName = "~/MyDocuments/" + id_user; // the folder name is user_id, you can use something else as well 
    new File(folderName).mkdir(); // the directory is created 

    return "userRegPage"; 
} 
+0

Извините, кажется, не работает, по крайней мере, для меня. Я просто не могу понять, где создаются мои каталоги. Пути файловой системы Linux меня сейчас путают. – Stanimir

0

Я понял это

только что добавили этот код в мой метод выглядит как мне нужно, чтобы добавить свое имя пользователя в путь к файлу.

String folderName=userId+"folder"; 
new File("/home/djordje/"+folderName).mkdirs();