JDBC可以将域对象作为查询结果返回

时间:2017-01-20 15:09:22

标签: java jdbc

我在MySQL数据库中有一个表用户,我为我的项目创建了一个类User。我希望直接在User对象中获取记录,就像在Hibernate中一样,而不使用Hibernate:

User u = (User) session.get(User.class, id);

我使用JDBC驱动程序。

有没有办法将结果集设置为Object,如:

Statement stmt = db.createStatement();
User u = stmt.executeQuery("SELECT * FROM user",User.class);

我是一个懒惰的程序员,我不会创建一个列表,创建一个循环来迭代它并设置所有变量。

我已经解决了。 @Kayaman我找到了ORMlite库。

String databaseUrl = "...";
ConnectionSource cs = new JdbcConnectionSource(databaseUrl);
Dao<User,Integer> userDAO = DaoManager.createDao(cs, User.class);

User u = userDAO.queryForId(1);
System.out.println(u.getName());

http://ormlite.com/javadoc/ormlite-core/doc-files/ormlite_1.html#Getting-Started

1 个答案:

答案 0 :(得分:3)

简短回答:不。

您要求的是ORM。 JDBC不是ORM。 Hibernate是Java的ORM,它使用JDBC实际连接到数据库服务器并与之交互。 EclipseLink是另一个Java ORM(它是glassfish附带的一个)。