使用Netbeans IDE的Java RESTful Web服务CRUD操作

使用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.

我正在使用数据库在Java中开发RESTfulWebService。通过在Netbeans中使用restfulwebservicefromdatabase选项,它生成了一些类,通过这些类我们可以公开count、{id}、{from}/{id}等服务

如何使用Java编写在Netbeans中插入、删除和更新的程序


这是我的工作环境。

插入代码如下:

@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个实体,你会怎么做?