后台端(MyEclipse)
Result.java
package com.example.oracle;
import java.util.List;
/**
* Created by Administrator on 2018/5/27.
*/
//json构造
public class Result {
private int result;
public int getResult() {
return result;
}
public void setResult(int result) {
this.result = result;
}
public List<Sqldata> getPersonsData() {
return personsData;
}
public void setPersonsData(List<Sqldata> personsData) {
this.personsData = personsData;
}
private List<Sqldata>personsData;
}
SqlData.java
package com.example.oracle;
//数据库所需数据
public class Sqldata {
private String lastname,Firstname;
private int iD,sale;
public int getSale() {
return sale;
}
public void setSale(int sale) {
this.sale = sale;
}
public int getiD() {
return iD;
}
public void setiD(int iD) {
this.iD = iD;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getFirstname() {
return Firstname;
}
public void setFirstname(String firstname) {
Firstname = firstname;
}
}
Test.java
package com.example.oracle;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
public class Test extends HttpServlet {
/**
* Constructor of the object.
*/
public Test() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//数据库连接
String DriverName="oracle.jdbc.driver.OracleDriver";
String URL="jdbc:oracle:thin:@localhost:1521:ORCL";
String UserName="system";
String PassWord="wzyzy";
java.sql.Connection conn;
try{
Class.forName(DriverName);
conn=DriverManager.getConnection(URL, UserName, PassWord);
System.out.println("OK");
Statement State=conn.createStatement();
String sql="select *from HR.EMPLOYEES";
ResultSet rs=State.executeQuery(sql);
String name = null;
String name1=null;
int id = 0,sale = 0;
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
Result result=new Result();
//json数据
result.setResult(1);
List<Sqldata>list=new ArrayList<Sqldata>();
result.setPersonsData(list);
while(rs.next()){
sale=rs.getInt("SALARY");//获取Oracle中需要的数据
id=rs.getInt("EMPLOYEE_ID");
name=rs.getString("LAST_NAME");
name1=rs.getString("FIRST_NAME");
name=new String(name.getBytes("ISO-8859-1"),"GB2312");
System.out.println(id+"\t"+name+"\t"+sale);
Sqldata person1=new Sqldata();
person1.setiD(id);
person1.setLastname(name);
person1.setFirstname(name1);
person1.setSale(sale);
list.add(person1);
/*
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
Result result=new Result();
//json数据
result.setResult(1);
List<Sqldata>list=new ArrayList<Sqldata>();
result.setPersonsData(list);
Sqldata person1=new Sqldata();
person1.setiD(id);
person1.setLastname(name);
person1.setSale(sale);
list.add(person1);
Gson gson=new Gson();//使用Gjson封装数据
System.out.println(gson.toJson(result));
out.println(gson.toJson(result));
*/
}
Gson gson=new Gson();//使用Gjson封装数据
System.out.println(gson.toJson(result));
out.println(gson.toJson(result));
rs.close();
conn.close();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}
Android端
HttpOracle
package com.example.administrator.jsonkey; import android.os.Handler; import android.util.Log; import android.widget.ListView; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; /** * Created by Administrator on 2018/6/10. */ public class HttpOracle extends Thread { private String url; private ListView listView; private OracleAdpter oracleAdpter; private Handler handler; public HttpOracle(String url,ListView listView,OracleAdpter oracleAdpter,Handler handler){ this.url=url; this.listView=listView; this.oracleAdpter=oracleAdpter; this.handler=handler; } @Override public void run() { URL httpUrl; try { httpUrl=new URL(url); try { HttpURLConnection con=(HttpURLConnection)httpUrl.openConnection(); con.setRequestMethod("GET"); con.setReadTimeout(5000); /* if(con.getResponseCode()==200) { }else { } */ BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream())); StringBuffer sb = new StringBuffer(); String str; while ((str = bufferedReader.readLine()) != null) { sb.append(str); } final List<OracleData>data=oracleDatas(sb.toString()); handler.post(new Runnable() { @Override public void run() { oracleAdpter.setData(data); listView.setAdapter(oracleAdpter); } }); } catch (IOException e) { e.printStackTrace(); } } catch (MalformedURLException e) { e.printStackTrace(); } } private List<OracleData>oracleDatas(String json) { Log.i("info",json); try { JSONObject jsonObject = new JSONObject(json); List<OracleData> oracleDatas = new ArrayList<>(); int result = jsonObject.getInt("result"); if(result==1) { JSONArray jsonArray = jsonObject.getJSONArray("personsData"); Log.i("info", String.valueOf(jsonArray.length())); for (int i = 0; i < jsonArray.length(); i++) { OracleData oracleData = new OracleData(); oracleDatas.add(oracleData); JSONObject object = jsonArray.getJSONObject(i); String name = object.getString("lastname"); String name1=object.getString("Firstname"); int id = object.getInt("iD"); int sale = object.getInt("sale"); oracleData.setName(name); oracleData.setName1(name1); oracleData.setiD(id); oracleData.setSale(sale); } return oracleDatas; } } catch (JSONException e) { e.printStackTrace(); } return null; } }
OracleJson.java
package com.example.administrator.jsonkey; import android.content.Context; import android.os.Handler; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import java.util.List; import java.util.zip.Inflater; /** * Created by Administrator on 2018/6/10. */ public class OracleAdpter extends BaseAdapter { private List<OracleData>list; public Context context; private LayoutInflater inflater; private Handler handler=new Handler(); public OracleAdpter(Context context) { this.context=context; inflater= LayoutInflater.from(context); } public void setData(List<OracleData>list){ this.list=list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } Hold hold; @Override public View getView(int position, View convertView, ViewGroup parent) { if(convertView==null){ convertView=inflater.inflate(R.layout.oracledata,null); hold=new Hold(convertView); convertView.setTag(hold); }else { hold=(Hold)convertView.getTag(); } OracleData oracleData=list.get(position); hold.LastName.setText(oracleData.getName()); hold.FirstName.setText(oracleData.getName1()); hold.ID.setText(oracleData.getiD()+""); hold.Sale.setText(oracleData.getSale()+""); return convertView; } class Hold{ public TextView LastName; public TextView ID; public TextView Sale; public TextView FirstName; public Hold(View view) { FirstName=view.findViewById(R.id.tv_FirstName); LastName=view.findViewById(R.id.tv_LastName); ID=view.findViewById(R.id.tv_ID); Sale=view.findViewById(R.id.tv_Sale); } } }
OracleData.java
package com.example.administrator.jsonkey; /** * Created by Administrator on 2018/6/10. */ public class OracleData { private String name; private int iD; private int sale; private String name1; public String getName1() { return name1; } public void setName1(String name1) { this.name1 = name1; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getiD() { return iD; } public void setiD(int iD) { this.iD = iD; } public int getSale() { return sale; } public void setSale(int sale) { this.sale = sale; } }
MainActivity.java
package com.example.administrator.jsonkey; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ImageView; import android.widget.ListView; public class MainActivity extends AppCompatActivity { private ListView listView; private ImageView img; private JsonAdpter adpter; private OracleAdpter oracleAdpter; private Handler handler=new Handler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView=(ListView)findViewById(R.id.L_json); img=(ImageView)findViewById(R.id.img_json); //adpter=new JsonAdpter(this); oracleAdpter=new OracleAdpter(this); // String url="http://192.168.43.155:8080/firstApp/JsonServlet"; /* String url="http://192.168.253.5:8080/firstApp/JsonServlet"; new HttpJson(url,listView,adpter,handler).start(); */ String url="http://192.168.43.155:8080/Oracle/Test"; new HttpOracle(url, listView, oracleAdpter, handler).start(); } }
oracleData.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="LastName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30dp" android:id="@+id/tv_LastName" android:layout_alignParentEnd="true" android:layout_toEndOf="@+id/textView2" /> <TextView android:text="L-名字:" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/tv_ID" android:textSize="30dp" android:layout_alignParentStart="true" android:id="@+id/textView2" android:layout_alignParentTop="true" /> <TextView android:text="薪水:" android:textSize="30dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView4" android:layout_below="@+id/textView3" android:layout_alignParentStart="true" /> <TextView android:text="Sale" android:textSize="30dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_Sale" android:layout_alignBaseline="@+id/textView4" android:layout_alignBottom="@+id/textView4" android:layout_alignParentEnd="true" android:layout_toEndOf="@+id/textView4" /> <TextView android:text="F-名字:" android:textSize="30dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView2" android:layout_alignParentStart="true" android:id="@+id/textView5" /> <TextView android:text="ID:" android:textSize="30dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView3" android:layout_below="@+id/textView5" android:layout_alignParentStart="true" /> <TextView android:text="ID" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_ID" android:textSize="30dp" android:layout_marginTop="35dp" android:layout_below="@+id/tv_LastName" android:layout_alignParentEnd="true" android:layout_toEndOf="@+id/textView5" /> <TextView android:text="FirstName" android:textSize="30dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/textView5" android:id="@+id/tv_FirstName" android:layout_alignParentEnd="true" android:layout_toEndOf="@+id/textView5" /> </RelativeLayout>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.administrator.jsonkey.MainActivity"> <ListView android:id="@+id/L_json" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentTop="true" android:layout_alignParentEnd="true" android:layout_marginEnd="10dp" /> </RelativeLayout>