Java setter和getter将数据导入Java数据库
我正在从事一个独立的Java项目(不是Java EE),我正在学习JDBC,我正在创建一个数据库,其中包含员工信息,如个人信息、联系信息、员工信息和税务信息,所有这些都是相互引用的类,它们都有setter和getter,我想知道如何在数据库中创建的数据库/表中插入它们的数据值?简而言之,我有一个Employee对象,如下所示Java setter和getter将数据导入Java数据库,java,sql,database,jdbc,getter-setter,Java,Sql,Database,Jdbc,Getter Setter,我正在从事一个独立的Java项目(不是Java EE),我正在学习JDBC,我正在创建一个数据库,其中包含员工信息,如个人信息、联系信息、员工信息和税务信息,所有这些都是相互引用的类,它们都有setter和getter,我想知道如何在数据库中创建的数据库/表中插入它们的数据值?简而言之,我有一个Employee对象,如下所示 Employee(PersonalInformation information,ContactInformation cInformation) 诸如此类,我如何将它们
Employee(PersonalInformation information,ContactInformation cInformation)
诸如此类,我如何将它们的数据添加到我在数据库中创建的表中?我建议您查看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。我建议您查看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。这可能会对您有所帮助
- 将所有必需的值传递给相应的对象
- 获取它们的所有值并使用这些值构建查询,如
如果不起作用,请告诉我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);"
- 将所有必需的值传递给相应的对象
- 获取它们的所有值并使用这些值构建查询,如
如果不起作用,请告诉我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);"
- 这可能会对您有所帮助
EmployeeDAO.findAll()
方法,当用户对员工进行更改并单击“保存”时,您将调用EmployeeDAO.save()
方法
我将如何将他们的数据添加到我在数据库中创建的表中
通过使用JDBC向数据库发送INSERT语句,对象图中的每个对象对应一条语句(假设每个类有一个表)
是的,这需要编写大量枯燥、重复的代码,这些代码可能包含错误,并且维护起来相当麻烦
这就是为什么人们像Hibernate一样编写代码,并且有一个Java标准称为JPA。这是JavaEE的一部分,但这并不意味着您必须运行JavaEE服务器才能使用它
更新:好的,所以您不能使用ORM,可能是因为您应该首先了解JDBC是如何工作的,这是有意义的,因为ORM是基于JDBC的,有时出现问题时您必须降低到该级别
直接使用JDBC时,通常会创建一个层,负责向数据库中写入和读取对象。为了处理嵌套对象,一个DAO可以调用另一个DAO
不,DAO不是在setter和getter中调用的。应用程序中对用户输入做出反应的部分调用了。例如,当用户打开应用程序,开始屏幕显示员工列表时,您将调用
EmployeeDAO.findAll()
方法,当用户对员工进行更改并单击“保存”时,您将调用EmployeeDAO.save()
方法。您尝试执行的操作称为“对象到关系映射”。java对象构成了对象域,DB表构成了关系模型。你必须把它们联系起来。保存数据并查询以将其取回。
有两种方法可以编写自己的有限框架或使用现有框架。现有框架包括:
- 冬眠
- 伊巴蒂斯 等等
关于您试图做的事情被称为“对象到关系映射”。java对象构成了对象域,DB表构成了关系模型。你必须把它们联系起来。保存数据并查询以将其取回。 有两种方法可以编写自己的有限框架或使用现有框架。现有框架包括:
- 冬眠
- 伊巴蒂斯 等等
关于可能重复的检查本教程是否可以不映射?因为我没有这方面的经验或想法,我们的教练禁止我们使用这一点project@KyelJmD,当然,如果目标是学习JDBC,那么继续学习,稍后您将看到ORM的更好解决方案