Java Web Service - java-json.jar包的使用以及JDBC的配置链接
来源:互联网 发布:淘宝买人参靠谱的店 编辑:程序博客网 时间:2024/05/12 09:46
Java Web Service - java-json.jar包的使用以及JDBC的配置链接
- Java Web Service - java-jsonjar包的使用以及JDBC的配置链接
- Preface
- 环境工具
- 建立简单的getpost web service以及一个客户端
- 在mysql中创建database Library 并insert 一些数据
- 修改你的RestService类
- 修改客户端
Preface
- 本Sample是对上一篇java web service 的延续,主要说明创建java web service项目的简要过程
- 网上很多关于JDBC的链接sample都会在src/下创建dto(Data Transaction Objects)、model、webService、pojo(Plain Old Java Object)等几个package分属不同功能,本sample为简洁起见,将功能都放入了webService中
- 本文原创,允许转载但务必贴出本文链接
环境&工具
- Jersey JAX-RS 2.0 RI bundle 解压后将所有.jar文件放在WebContent>WEB-INF>lib下面
- json.jar 注:因为eclipse有特殊的喜好,在web servicejar 工程中,jar包的引用根据web容器而有所不同,对于tomcat,所有引用.jar必须放在web-info/lib/下
- mysql-connector-java-5.1.35.tar.gz注:需要向oracle出卖自己的email他才会让你下这个东西,之和后json.jar一样需要放在web-info/lib/下
- java version “1.8.0_40”
- tomcat 8.0
- eclipse Luna
- mysql 5.6.19
建立简单的get、post web service以及一个客户端
- 该步骤请参考:
一个包含Jersey库的简单Web Service以及一个发送Json数据的Java客户端
在mysql中创建database Library 并insert 一些数据
create database Library;use Librarycreate table `Book` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` text NOT NULL, `description` text NULL, PRIMARY KEY(`id`));insert into Book (title, description) values("Stardust", "Stardust is a novel by Neil Gaiman, usually published with illustrations by Charles Vess. Stardust has a different tone and style from most of Gaiman''s prose fiction, being consciously written in the tradition of pre-Tolkien English fantasy, following in the footsteps of authors such as Lord Dunsany and Hope Mirrlees. It is concerned with the adventures of a young man from the village of Wall, which borders the magical land of Faerie.");insert into Book (title) values("testTitle2"),("testTitle3");
修改你的RestService类
内容如下:
package simpleRestWebService;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import javax.ws.rs.GET;import javax.ws.rs.Produces;import javax.ws.rs.Consumes;import javax.ws.rs.POST;import javax.ws.rs.Path;import javax.ws.rs.core.MediaType;import javax.ws.rs.core.Response;import org.json.JSONException;import org.json.JSONObject;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import com.mysql.jdbc.Connection;import com.mysql.jdbc.PreparedStatement;@Path("/restService")public class RestService { @POST @Consumes(MediaType.APPLICATION_JSON) public Response json_restResponse(InputStream incomingData) { // json receiving variables String receivedString = ""; JSONObject receivedJson = null; // configuration of data source connection String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://127.0.0.1:3306/Library"; String usr = "root"; String pwd = "123456"; // connection variables PreparedStatement stmt = null; Connection conn = null; // temp variables // returnCode will be send to client and be present in the console view String returnCode = "SEARCH PROGRESS & RESULTS:"; // receive the json data as receivedJson(JSONObject) try { BufferedReader in = new BufferedReader(new InputStreamReader(incomingData)); String line = null; while ((line = in.readLine()) != null) { receivedString += line; } try { receivedJson = new JSONObject(receivedString); returnCode += "\n\n- receive json data successfully..."; } catch (JSONException e){ System.out.println("Error new Json - "); } } catch (Exception e) { System.out.println("Error Parsing: - "); } // load JDBC driver try { Class.forName(driver).newInstance(); returnCode += "\n\n- the driver is on..."; } catch(Exception e) { e.printStackTrace(); } // connect to mysql database "Library" and search for book with "title" = "Stardust" try { conn = (Connection) DriverManager.getConnection(url, usr, pwd); stmt = (PreparedStatement) conn.prepareStatement("select * from Book"); returnCode += "\n\n- 'select * from Book' is executed successfully..."; // A table of data representing a database result set, which is // usually generated by executing a statement that queries the // database. ResultSet rs = stmt.executeQuery(); while (rs.next()) { returnCode += ("\n\ntitle:\t" + rs.getString("title")); if (rs.getString("title").equals(receivedJson.getString("title"))) { returnCode += "\t-that's it!"; } else { returnCode += ("\t-not the one I'm finding..." + rs.getString("title")); } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { // Close Statement and Connection if (stmt != null) { try { stmt.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return Response.status(200).entity(returnCode).build(); } @GET @Produces(MediaType.TEXT_PLAIN) public String sayPlainTextHello() { String returnCode = "this is a test~"; return returnCode; }}
port 3306为mysql默认的端口,另外我将这边的流程和搜索过程以returnCode返回client
修改客户端
- 写一个小的json文件作为输入,如:
{ "title":"Stardust"}
- 如果和之前的文件不是同一个,修改clientInputStream变量
- 我将in.readLine()的内容,即server返回的returCode收集后返回如下:
0 0
- Java Web Service - java-json.jar包的使用以及JDBC的配置链接
- java处理json使用的jar包
- Java使用json需要的jar包
- struts2 中使用 json需要的jar包以及配置
- struts2 中使用 json需要的jar包以及配置
- struts2 中使用 json需要的jar包以及配置
- java连接oracle数据库JDBC使用的jar报包
- Java使用JSONObject的Jar包问题,json-lib 2.4
- java中使用json-lib需要用到的jar包
- 在Java中使用json所需要的jar包
- 在Java中使用JSON需要的jar包
- JAVA中CLASSPATH配置以及package和jar包的使用(如何import)
- java json 需要的jar 包
- java JSon所需的jar包
- java私人封装的加密jar包以及使用
- Java list泛型与JSON的相互转换(含jar包下载链接)
- java web常用jar包的作用
- Java 对象转JSON Jar包配置
- Android侧滑菜单之DrawerLayout的使用
- position
- 获取页面所有标签的属性值
- [Android][KK][SMS]Frameworks学习——接收短信流程分析
- Java代码的执行
- Java Web Service - java-json.jar包的使用以及JDBC的配置链接
- 记.上次完成的项目进度管理系统PSMS
- 应用程序的生命周期
- python里的进制数
- 有关SCAN与VIP的试验(一)
- 解决ADT及SDK Manager 下载失败的问题
- 通过域名获取ip地址
- dubbo learning- day 1
- Mac下安装React native