我正在使用Java使用數據庫的RESTful Webservice。通過在Netbeans中使用來自數據庫的RESTful Webservice選項,它會生成一些類,以便我們可以公開像count,{id},{from}/{id}這樣的服務。Java RESTful Webservice使用Netbeans IDE的CRUD Opreation
我們如何編寫程序插入,使用Java Netbeans中刪除並更新。
這是我的工作環境。
我正在使用Java使用數據庫的RESTful Webservice。通過在Netbeans中使用來自數據庫的RESTful Webservice選項,它會生成一些類,以便我們可以公開像count,{id},{from}/{id}這樣的服務。Java RESTful Webservice使用Netbeans IDE的CRUD Opreation
我們如何編寫程序插入,使用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>"
}
這個問題是有用 –
儘量保持DB互動在不同的層面上......這是非常緊密耦合的 –
** AbstractFacade **確實具有所有這些方法。你讓自己變得複雜了,這不是一個好習慣。如果你有多少個實體,你會怎麼做? –
獨立工作分爲兩層DAO和服務
注入你的DAO實現的依賴關係到你的Web服務層和調用你的CRUD操作(這是EJB概念,你也可以嘗試春季)
也許你應該採取看春,數據...你只是有一個Maven的導入,界面與所有你需要的方法,它會使用你的名稱的方法提出要求......
你應該定義你所有的CRUD操作一個安靜的班級。在每個寧靜類的方法中,你應該調用一個服務接口方法,該方法有另一個類,它的實現就是ServiceImpl。您的服務的每種方法Impl都應該與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「示例http://www.madebyjohann.com/index.php/college/learn-how/57-crud-in-a-restful-api-with-netbeans –
@ring持票人我訪問了許多他們設計的網站示例Helloword程序使用RESTful Webservice,或者他們展示了基本代碼,即由IDE生成但不是CRUD操作。 –
@ring持票人我遵循此鏈接http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/RESTfulWebServices/RESTfulWebservices.htm#t2其中描述示例數據庫連接並自動從數據庫選項從RESTful Webservice生成代碼選項來自Netbeans –