как хранить данные в массиве объектов, которые собираются из базы данных? - PullRequest
0 голосов
/ 21 августа 2010

Здесь я кодировал для получения данных из БД.Я хочу хранить данные в объектном массиве (POJO).Как это сделать? Этот код также может вставлять данные в БД, но не включать его.

import java.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Jdbc {
static int id[] = new int[10];
static String name[] = new String[10];
static int salary[] = new int[10];
public static void main(String arg[])
{
    try {
          Statement stmt;
          ResultSet rs;
          Class.forName("com.mysql.jdbc.Driver");
          String url ="jdbc:mysql://localhost:3306/dwr";
          Connection con = DriverManager.getConnection(url,"root", "1234");
          System.out.println("URL: " + url);
          System.out.println("Connection: " + con);
          stmt = con.createStatement();
          System.out.println("Enter EmpId:");
          BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
          int empId=Integer.parseInt(br.readLine());
          System.out.println("Enter Name:");
          BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));
          String name1=br1.readLine();
          System.out.println("Enter Salary:");
          BufferedReader br2=new BufferedReader(new InputStreamReader(System.in));
          int salary1=Integer.parseInt(br2.readLine());
          stmt.executeUpdate("INSERT INTO employee set EmpId='"+empId+"', Name='"+name1+"', salary='"+salary1+"';");
          stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
          rs = stmt.executeQuery("SELECT * " + "from employee ORDER BY EmpId");
          System.out.println("Display all results:");
          int i = 0;
          while(rs.next()){
            id[i]= rs.getInt("Empid");
            name[i]= rs.getString("Name");
            salary[i]= rs.getInt("Salary");
            System.out.println("\n EmpId " + id[i]+ "\n name " + name[i] + "\n salary " + salary[i]);
          }

    }catch( Exception e ) {
          e.printStackTrace();
}
    Jdbc pojo = new Jdbc();

}
}

1 Ответ

2 голосов
/ 21 августа 2010

Вы можете использовать предоставленные методы get для заполнения полей объекта по одному, поэтому, если у вас есть объект с именем employee, который принимает 3 аргумента (id, name и salary), вы можете иметьчто-то вроде этого:

List<Employee> employee = new ArrayList<Employee>();
while(rs.next())
{
employee.add(new Employee(rs.getInt("Empid"), rs.getString("Name"),rs.getInt("Salary"));
}

Или же вы можете использовать ORM Tools, например Hibernate , и использовать его для извлечения объектов, как показано здесь

PS Код Java, который я предоставил, больше похож на псевдокод.Я не проверял это.

...