我的目标是为CRUD数据构建一个RESTful Web服务到Oracle和MySQL数据库。
请您为CRUD数据库提供RESTful Web服务的最佳实践吗?
我是否需要使用DAO或直接在Web服务类中直接实现JDBC?如果可以通过示例提供一些有用的链接将会有所帮助。
我使用连接池!它没关系还是......?
在哪里/如何保留一些配置值,例如数据库连接字符串,数据库凭据等?是否可以将config.properties文件用于所有这些?这样的事情:
config.properties
db_url = JDBC:MySQL的://本地主机/
数据库=测试
DB_USER = my_user
db_password = my_password
InputStream input = new FileInputStream(config.properties);
属性prop = new Properties();
prop.load(输入);
要CRUD数据库,我打算使用PreparedStatement。你重新编写:在java代码中直接使用SQL语句(select * from ...,update ... set,delete ...)或构建一些存储过程来查询,插入,更新,删除数据?
我希望该应用程序能够使用不同的数据库。我想从MySQL和Oracle开始。实施此类方法的最佳做法是什么?用DAO?如何将配置保存到不同类型的数据库?
以下是我开始的一些代码:
package com.crunchify.restjersey;
import java.sql.Connection;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/testws")
public class TestWS {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String currentDate() {
Date dt = Calendar.getInstance().getTime();
SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss");
return df.format(dt);
}
@GET
@Path("/getTables")
@Produces(MediaType.TEXT_PLAIN)
public String getTables() {
return "Noroc";
}
@GET
@Path("/getConnection")
@Produces(MediaType.TEXT_PLAIN)
public String getConnection() {
String result = "";
Connection conn = null;
try {
Context initialContext = new InitialContext();
Context environmentContext = (Context) initialContext.lookup("java:comp/env");
String dataResourceName = "jdbc/MySQLDB_db";
DataSource dataSource = (DataSource) environmentContext.lookup(dataResourceName);
conn = dataSource.getConnection();
if (!conn.isClosed())
result += "Connection established!";
else
result += "Cannot establish connection!";
conn.close();
}
catch(Exception ex) {
result += ex.getMessage();
}
return result;
}
}
答案 0 :(得分:4)
看起来您更喜欢在某种应用服务器上使用JAX-RS等标准JEE技术(因为您通过JNDI查找数据源)。
对于你个人的任务,我会使用春季启动,因为它相对容易上手。相关指南是:
在您选择的应用程序服务器或Dropwizard上,可以选择JEE(JAX-RS,JPA)。
顺便说一下。稍后将要讨论的其他方面是验证,身份验证和授权,事务管理等。