在我的J2EE Web应用程序中,我使用的是ExtJs 3.0。在我的表格面板中,我有一个组合框。
{
xtype : 'combo',
name : 'include_type',
fieldLabel : 'Delivery Vehicle',
emptyText : 'Delivery Vehicle',
editable : false,
hideLabel : true,
style : 'marginleft:10px',
/*displayField : 'vname',
valueField : 'vid',*/
store : vehicleStore,
flex : 1
}
我也在使用Postgres,还有一个名为 hoobtVehicles 的表格。我需要从这张表中填充我的组合框。我知道我必须使用JsonReader。但我不知道如何做到这一点,因为我对J2EE和ExtJs都很陌生。
如果有人愿意解释如何做这样的话,我会非常感激。
答案 0 :(得分:1)
要与数据库通信,您需要使用适当的接口技术。
Java EE规范包含JPA 2 (the Java Persistence API),它倾向于推动作为主要的数据库接口技术。 JPA适用于更简单的应用程序,但由于其lack of fine grained per-operation fetch control而需要更复杂的大型应用程序,往往会成为性能噩梦。
JPA 2是一个基于ORM工具的层,如Hibernate,EclipseLink,OpenJPA等,它们将它们包装在标准化和简化的API中。如果你没有追逐跨容器可移植性的痛苦神话,你可以选择一个并直接使用它,为你节省大量的痛苦。
像Hiberate这样的ORM依次是JDBC,Java的低级数据库访问API。这是由PgJDBC驱动程序为PostgreSQL实现的。您可以(有时应该)直接使用JDBC,或者使用非ORM帮助程序层,如MyBatis,Spring JDBC模板等。
如果您对数据库编程完全陌生并且您已经开始在基于Web的环境中工作,我可能会从JPA开始(如果您不需要性能)或者其中一个像Hibernate这样的ORM直接。
您还可以选择如何建立数据库连接:
直接在应用程序中连接,没有池等。这很容易,但速度很慢,并且往往会在数据库服务器上产生性能问题,所以这不是一个好主意。您通常在应用程序中捆绑JDBC驱动程序以进行此配置。
使用应用程序内连接池,通常通过EclipseLink等工具集成,而不是直接使用。您可以直接使用JDBC驱动程序java.sql.Driver
,也可以使用javax.sql.DataSource
。您经常将JDBC驱动程序捆绑在应用程序中以进行此配置。
使用容器/应用程序服务器池连接并将它们交给您的应用程序。这要求您在容器中配置连接设置而不是应用程序,但可以很好地工作。这涉及使用JNDI查找JDBC驱动程序提供的javax.sql.DataSource
,但它通常(再次)在Hibernate或MyBatis等工具中完成,而不是直接由您的代码完成。特别是,容器托管数据源可以参与JTA事务,这在使用多个数据源时非常方便。您通常在容器/应用服务器中安装JDBC驱动程序以实现此方法。
困惑了吗?欢迎来到Java的精彩世界。
要快速启动,请选择容器/应用服务器。使用其提供的JPA实现。对于数据源,使用对该配置最简单的方法 - 捆绑的JDBC驱动程序和应用程序管理的连接池,或容器提供的DataSource。选择适合您情况的教程并遵循它。稍后再学习。
如果您仍然陷入困境,请从以下其中一项开始:
(当有人对交叉容器可移植性的魔力感到不满时,请问他们是否有一个真实世界的应用程序,其中包含大量数据和工作负载,无需调整即可部署到多个容器 - 以及该应用程序是否实际使用可移植的Java EE标准,如JPA,JPA 2 Criteria等)
答案 1 :(得分:0)
从json-simple site下载JAR文件,并在您的应用中使用它。有关如何在网站上使用该库的示例。将属性放入JSONObject类 类似于HashMap的工作方式。在完成构建符合JSONReader的JSON之后,您需要做的最后一件事是使用HttpServletResponse类中的PrintWriter类来生成JSON响应,如下所示:
PrintWriter out = response.getWriter();
out.print(jsonobject);
System.out.print()无效,因为输出只会转到标准输出(控制台)。