我正在开发一个独立的Java项目(不是Java EE),我正在学习JDBC,我正在创建一个数据库,其中包含员工信息,如个人信息,联系信息,员工信息和税务信息,所有这些都是相互引用的类,它们有setter和getter,我想知道如何将我们的数据值插入我在数据库中创建的数据库/表中?简而言之,我有一个像这样的员工对象
Employee(PersonalInformation information,ContactInformation cInformation)
这样的话,我如何在我在数据库中创建的表中添加数据?
答案 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。你已经联系了他们。保存数据和查询以将其恢复。 您有两种方法可以编写自己的有限框架或使用现有框架。现有框架包括:
要自己做一个,最简单的方法是将简单的结果集写入对象映射器并创建插入字符串。 我建议你学习一些ORM文档来了解更多。 此致