使用Netbeans IDE的Java RESTful Web服务CRUD操作
我正在使用数据库在Java中开发RESTfulWebService。通过在Netbeans中使用restfulwebservicefromdatabase选项,它生成了一些类,通过这些类我们可以公开count、{id}、{from}/{id}等服务 如何使用Java编写在Netbeans中插入、删除和更新的程序使用Netbeans IDE的Java RESTful Web服务CRUD操作,java,rest,netbeans,Java,Rest,Netbeans,我正在使用数据库在Java中开发RESTfulWebService。通过在Netbeans中使用restfulwebservicefromdatabase选项,它生成了一些类,通过这些类我们可以公开count、{id}、{from}/{id}等服务 如何使用Java编写在Netbeans中插入、删除和更新的程序 这是我的工作环境。插入代码如下: @POST @Path("insertion") @Produces(MediaType.TEXT_HTML) @Consumes(MediaType.
这是我的工作环境。插入代码如下:
@POST
@Path("insertion")
@Produces(MediaType.TEXT_HTML)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public String register(@FormParam("passhash") String passhash, @FormParam("email") String email,@FormParam("$pswdhash") String pwd, @FormParam("phno") String phno) {
try {
Class.forName("org.apache.derby.jdbc.ClientDriver");
Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/test", "app", "app");
PreparedStatement pst = con.prepareStatement("insert into MMX_REGISTRATION(name,email,pswd,phno) values(?,?,?,?)");
pst.setString(1, passhash);
pst.setString(2, email);
pst.setString(3, pwd);
pst.setString(4, phno);
int result = pst.executeUpdate();
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
return "success";
//return "listform.html";
}
按如下方式检索数据:
@Context private HttpServletRequest request;
@GET
@Path("session")
@Produces(MediaType.TEXT_HTML)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public String session(@QueryParam("lname") String name1) {
String response2 = null;
//String name11 = "praveen";
//String a[] = null;
try {
Class.forName("org.apache.derby.jdbc.ClientDriver");
Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/test", "app", "app");
//PreparedStatement pst = con.prepareStatement("insert into restdb_insertion(id,company) values(?,?)");
//String str1="select * from restdb_insertion where registration=?";
PreparedStatement pst = con.prepareStatement("select * from MMX_REGISTRATION where name='"+name1+"'");
System.out.println("select * from MMX_REGISTRATION where name='"+name1+"'");
ResultSet rs = pst.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int cols = rsmd.getColumnCount();
while (rs.next()) {
if(!"null".equals(rs.getString(1))){
request.getSession(true);
HttpSession session = request.getSession();
session.setAttribute("name","value");
session.setAttribute("UserName", rs.getString(2));
String username = (String)session.getAttribute("UserName");
System.out.println(username);
// System.out.println(name);
//request.getSession(false);
//request.getSession().invalidate();
//String user = (String)session.getAttribute("UserName");
//System.out.println(user);
return "success"+" "+username;
}
}
//response = name1;
} catch (Exception e) {
e.printStackTrace();
}
return "fail";
//"<rss version='2.0'><channel><id>" + id + "</id><cmp>" +response.toArray()[0] + "</cmp></channel></rss>"
}
@Context私有HttpServletRequest请求;
@得到
@路径(“会话”)
@生成(MediaType.TEXT\u HTML)
@使用(MediaType.APPLICATION\u FORM\u URLENCODED)
公共字符串会话(@QueryParam(“lname”)字符串名称1){
字符串response2=null;
//字符串名称11=“praveen”;
//字符串a[]=null;
试一试{
forName(“org.apache.derby.jdbc.ClientDriver”);
Connection con=DriverManager.getConnection(“jdbc:derby://localhost:1527/test“,”应用程序“,”应用程序“);
//PreparedStatement pst=con.prepareStatement(“插入restdb_插入(id,公司)值(?)”;
//String str1=“从restdb_插入中选择*,其中注册=?”;
PreparedStatement pst=con.prepareStatement(“从MMX_注册中选择*,其中名称=”“+name1+””);
System.out.println(“从MMX_注册中选择*,其中名称=”“+name1+””);
ResultSet rs=pst.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
int cols=rsmd.getColumnCount();
while(rs.next()){
如果(!“null”.equals(rs.getString(1))){
request.getSession(true);
HttpSession session=request.getSession();
session.setAttribute(“名称”、“值”);
setAttribute(“用户名”,rs.getString(2));
字符串用户名=(字符串)session.getAttribute(“用户名”);
System.out.println(用户名);
//System.out.println(名称);
//request.getSession(false);
//request.getSession().invalidate();
//String user=(String)session.getAttribute(“用户名”);
//System.out.println(用户);
返回“成功”+“”+用户名;
}
}
//响应=名称1;
}捕获(例外e){
e、 printStackTrace();
}
返回“失败”;
//“”+id+“”+response.toArray()[0]+“”
}
将您的工作分为DAO和服务两层
- DAO内部:保留所有数据库交互
- 内部服务:只保留您的Web服务
将DAO实现的依赖项注入web服务层并调用CRUD操作(这是EJB概念,您也可以尝试Spring)也许您应该看看Spring数据。。。您只需要一个Maven导入,一个包含所有所需方法的接口,它将使用您方法的名称发出请求
下面是一个示例:您应该在restful类中定义所有CRUD操作。在restful类的每个方法中,您应该调用一个服务接口方法,该方法具有另一个具有实现的类,即ServiceImpl。您的ServiceImpl的每个方法都应该与Dao层交互以进行CRUD操作。 应避免为每个CRUD操作反复加载驱动程序类,并应在单独的方法/静态块中定义它,如下所示:-
static Connection con;
static{
try {
Class.forName("org.apache.derby.jdbc.ClientDriver");
con = DriverManager.getConnection("jdbc:derby://localhost:1527/test", "app", "app");
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
如果你在谷歌上搜索“REST CRUD netbeans”示例@ring Bearner,就会有很多关于这个的教程。我访问了很多网站,他们使用RESTful Webservice设计了Helloword示例程序,或者他们展示了一些基本代码,通过IDE而不是CRUD操作生成。@我遵循下面的链接,该链接描述了示例数据库连接和从NetbeansTry的数据库选项从RESTful Webservice自动生成代码。在下面指定的URL中,您可以找到如何创建RESTful Webservice和使用RESTful Webservice。希望它能被充分利用这个问题是有用的,试着将DB交互保持在不同的层上……这是紧密耦合的StractFacade确实有所有这些方法。你在使自己变得复杂,这不是一个好的做法。如果有x个实体,你会怎么做?