Java Setters和Getters数据到Java数据库中

时间:2011-11-28 08:32:14

标签: java sql database jdbc getter-setter

我正在开发一个独立的Java项目(不是Java EE),我正在学习JDBC,我正在创建一个数据库,其中包含员工信息,如个人信息,联系信息,员工信息和税务信息,所有这些都是相互引用的类,它们有setter和getter,我想知道如何将我们的数据值插入我在数据库中创建的数据库/表中?简而言之,我有一个像这样的员工对象

Employee(PersonalInformation information,ContactInformation cInformation)

这样的话,我如何在我在数据库中创建的表中添加数据?

4 个答案:

答案 0 :(得分:1)

  

我如何在数据库中创建的表中添加数据?

通过使用JDBC将INSERT语句发送到数据库,对象图中的每个对象都有一个(假设每个类有一个表)。

是的,这是很多无聊,重复的代码编写,可能包含错误和维护的负担。

这就是为什么人们写了Object-Relational mappers之类的Hibernate,并且有一个叫做JPA的Java标准。这是Java EE的一部分,但这并不意味着您必须运行Java EE服务器才能使用它。

更新:好的,所以你不能使用ORM,可能是因为你应该先了解JDBC是如何工作的,这是有道理的,因为ORM是基于JDBC的,有时候你必须下去当出现问题时达到那个水平。

直接使用JDBC时,通常会创建一个DAO (data ccess object)层,负责向/从数据库写入和读取对象。对于处理嵌套对象,一个DAO可以调用另一个。

并且不,DAO不会在制定者和吸气者中被召唤。应用程序的一部分调用了对用户输入的响应。例如。当用户打开应用程序并且开始屏幕显示员工列表时,您将调用EmployeeDAO.findAll()方法,当用户对员工进行更改并单击“保存”时,您将调用{ {1}}方法。

答案 1 :(得分:0)

我建议你看一下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");

每个DAO类实例使用一个jdbcTemplate。

答案 2 :(得分:0)

这可能对您有所帮助

  • 将所有必需的值传递给相应的对象。
  • 获取所有值并使用

    等值构建查询
     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);"
    

    让我知道它是否无效

答案 3 :(得分:0)

您要做的事情称为“对象关系映射”。您有构成对象域的java对象,并且有构成关系模型的DB Table。你已经联系了他们。保存数据和查询以将其恢复。 您有两种方法可以编写自己的有限框架或使用现有框架。现有框架包括:

  • 休眠
  • iBatis的 等等。

要自己做一个,最简单的方法是将简单的结果集写入对象映射器并创建插入字符串。 我建议你学习一些ORM文档来了解更多。 此致