Java Setters и Getters Data в базу данных Java - PullRequest
1 голос
/ 28 ноября 2011

Я работаю над отдельным проектом Java (не Java EE), в настоящее время я изучаю JDBC, я создаю базу данных, в которой она содержит информацию о сотруднике, такую ​​как личная информация, контактная информация, информация о сотруднике и налоговая информация,все это классы со ссылками друг на друга, и у них есть сеттеры и геттеры, мне интересно, как бы я вставил их значение данных в базу данных / таблицы, которые я создал в базе данных?Короче говоря, у меня есть объект Employee Employee с таким

Employee(PersonalInformation information,ContactInformation cInformation)

Что-то в этом роде, как мне добавить их данные в таблицы, которые я сделал в базе данных?

Ответы [ 4 ]

1 голос
/ 28 ноября 2011

как мне добавить их данные в таблицы, которые я сделал в базе данных?

Используя JDBC для отправки операторов INSERT в базу данных, по одному для каждого объекта в графе объектов (при условии, что у вас есть одна таблица на класс).

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

Именно поэтому люди написали объектно-реляционные сопоставители как Hibernate, и для этого существует стандарт Java, который называется JPA. Что является частью Java EE, но это не означает, что для его использования необходимо запустить сервер Java EE.

Обновление: ОК, поэтому вы не можете использовать ORM, возможно, потому что вы должны понимать, как JDBC работает в первую очередь, что имеет смысл, потому что ORM основаны на JDBC, а иногда вам нужно перейти к тот уровень, когда есть проблема.

При непосредственном использовании JDBC вы обычно создаете слой DAO (объект доступа к данным) , который отвечает за запись и чтение объектов в / из базы данных. Для работы с вложенным объектом один DAO может вызывать другой.

И нет, DAO не вызываются в установщиках и получателях. Там вызывается та часть вашего приложения, которая реагирует на ввод пользователя. Например. когда пользователь открывает приложение и на начальном экране отображается список сотрудников, вы вызываете метод EmployeeDAO.findAll(), а когда пользователь вносит изменения в сотрудника и нажимает кнопку «сохранить», вы вызываете EmployeeDAO.save() способ.

0 голосов
/ 28 ноября 2011

То, что вы пытаетесь сделать, называется «объектно-реляционное отображение». У вас есть Java-объекты, которые составляют ваш объектный домен, и есть таблица БД, которая составляет реляционную модель. Вы связали их. Сохраните данные и запросите их обратно. У вас есть два подхода к написанию своего собственного ограниченного фреймворка или использованию существующего фреймворка. Существующие платформы включают в себя:

  • Hibernate
  • Ibatis и т. д.

Чтобы сделать это самостоятельно, простейшим способом было бы записать простой набор результатов в сопоставители объектов и создать строки вставки. Я бы посоветовал вам изучить некоторые документы ORM, чтобы узнать больше. Привет

0 голосов
/ 28 ноября 2011

Это может помочь вам

  • Передайте все необходимые значения соответствующим объектам.
  • получить все их значения и создать запрос, используя такие значения, как

     Employee em = new Employee(perinfo, continfo);
     String emp_per_info = em.getSomeInfo();   // it this returns a string
     ...
     //so on
     query="insert into table_name values(variables go here);"
    

    дайте мне знать, если это не сработало

0 голосов
/ 28 ноября 2011

Я рекомендую вам взглянуть на Spring JdbcTemplate (http://www.java2s.com/Code/Java/Spring/ControlParameterTypeInJdbcTemplateQuery.htm)

Это выглядит так:

SingleConnectionDataSource ds = new SingleConnectionDataSource();
ds.setDriverClassName("org.hsqldb.jdbcDriver");
ds.setUrl("jdbc:hsqldb:data/tutorial");
ds.setUsername("sa");
ds.setPassword("");

JdbcTemplate jt = new JdbcTemplate(ds);
jt.execute("insert into employee (id, name) values (?, ?)", 1, "Tom");

Использовать один jdbcTemplate на экземпляр класса DAO.

...