我是Web服务的新手。请提出建议,如何在Java中使用Jersey JAX-RS从数据库中插入和检索数据?
下面是一个示例 JAX-RS 服务的示例,该示例使用 JPA 进行持久性而使用 JAXB 进行消息传递时,实现为会话Bean 。
客户服务
package org.example;
import java.util.List;
import javax.ejb.*;
import javax.persistence.*;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
@Stateless
@LocalBean
@Path("/customers")
public class CustomerService {
@PersistenceContext(unitName="CustomerService",
type=PersistenceContextType.TRANSACTION)
EntityManager entityManager;
@POST
@Consumes(MediaType.APPLICATION_XML)
public void create(Customer customer) {
entityManager.persist(customer);
}
@GET
@Produces(MediaType.APPLICATION_XML)
@Path("{id}")
public Customer read(@PathParam("id") long id) {
return entityManager.find(Customer.class, id);
}
@PUT
@Consumes(MediaType.APPLICATION_XML)
public void update(Customer customer) {
entityManager.merge(customer);
}
@DELETE
@Path("{id}")
public void delete(@PathParam("id") long id) {
Customer customer = read(id);
if(null != customer) {
entityManager.remove(customer);
}
}
@GET
@Produces(MediaType.APPLICATION_XML)
@Path("findCustomersByCity/{city}")
public List<Customer> findCustomersByCity(@PathParam("city") String city) {
Query query = entityManager.createNamedQuery("findCustomersByCity");
query.setParameter("city", city);
return query.getResultList();
}
}
顾客
以下是其中一个实体的示例。它包含JPA和JAXB批注。
package org.example;
import java.io.Serializable;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Set;
@Entity
@NamedQuery(name = "findCustomersByCity",
query = "SELECT c " +
"FROM Customer c " +
"WHERE c.address.city = :city")
@XmlRootElement
public class Customer implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private long id;
@Column(name="FIRST_NAME")
private String firstName;
@Column(name="LAST_NAME")
private String lastName;
@OneToOne(mappedBy="customer", cascade={CascadeType.ALL})
private Address address;
@OneToMany(mappedBy="customer", cascade={CascadeType.ALL})
private Set<PhoneNumber> phoneNumbers;
}
想要查询更多的信息
更新
需要什么罐子
您可以将JAX-RS / EJB / JPA / JAXB应用程序部署到任何符合Java EE
6的应用程序服务器,而无需设置任何其他服务器。对客户端进行编程,您可以从Jersey(http://jersey.java.net/)获得JAX-
RS API
,并从EclipseLink(http://www.eclipse.org/eclipselink/)获得JPA和JAXB
API 。
以及数据库连接的写入位置
JDBC资源和连接池
您需要在应用程序服务器上配置连接池。以下是在GlassFish上执行此操作的步骤。步骤将因所使用的应用程序服务器而异。
JPA配置
然后,我们参考上面在persistence.xml
文件中为JPA实体创建的数据库连接,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="CustomerService" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>CustomerService</jta-data-source>
<class>org.example.Customer</class>
<class>org.example.Address</class>
<class>org.example.PhoneNumber</class>
<properties>
<property name="eclipselink.target-database" value="Oracle" />
<property name="eclipselink.logging.level" value="FINEST" />
<property name="eclipselink.logging.level.ejb_or_metadata" value="WARNING" />
<property name="eclipselink.logging.timestamp" value="false"/>
<property name="eclipselink.logging.thread" value="false"/>
<property name="eclipselink.logging.session" value="false"/>
<property name="eclipselink.logging.exceptions" value="false"/>
<property name="eclipselink.target-server" value="SunAS9"/>
</properties>
</persistence-unit>
</persistence>
我使用这个教程,我创建了这个表(id,用户名)打印;现在我要使用restful web服务向其插入数据 我应该在“内容”文本框中放入什么内容来完成此操作? 这是我的绘画课 @XmlRootElement(name=“Prints.findall”,query=“从Prints p中选择p”),@namedquery(name=“Prints.findbyid”,query=“从Prints p中选
问题内容: 我已经完成了将记录插入数据库的操作,但是我不知道如何检索它。我的代码是: Account.java: MyAccount.java: insert.html: web.xml: 当用户单击“检索”按钮时,如何从数据库检索数据,并以另一HTML格式显示所有记录?请提供有关操作方法的建议。 在我的应用程序中,当用户单击检索按钮时,它正在执行插入操作。但是我想要的是,当用户单击它时,应该转到
我正在尝试使用Java jdbc连接在mysql数据库中插入一行。。。。 这是我的密码, } 当我尝试运行代码时,我得到类强制转换异常。。。非常感谢您的帮助。这是我的学生。java类 } 当我运行代码时,我得到以下错误:线程“main”java中出现异常。lang.ClassCastException:类java。util。日期不能转换为java类。sql。jdbcsample中的日期(java.
我正在使用并尝试插入具有以下函数的mysql数据库: 最后一个带有的控制台输出显示正确,但即使在等待之后也没有发生任何事情 我猜这是函数的异步部分,但同时还能做什么呢? 使用Knex时,是否有标准的方法创建条目? 感谢您的回复!
我有2列的jtable,然后我想把它的值插入数据库; 我知道这可以用像.. 问题是..getRowCount不知道该行是否为空,那么在数据库中,该空值仍将被插入(它将在数据库中生成我的自动增量值) 我的问题是如何从jtable中插入数据库,但是空行不会插入? 如果我要求太多,请给我一个处理空行的线索, 原谅我的英语 下面是向数据库中添加数据的坏方法
下面是我的代码和我到目前为止所做的事情。 如何在单击#OrderSave按钮后使用ajax将表中的所有数据插入数据库? $(“#code”).bind(“blur keypress”,function(event){event.preventdefault();if(event.keycode===13 event.type=='blur'){var vals=$('#code').val();$