文件操作,联网操作,服务器的创建,mysql数据库操作

第一部分:文件操作

1、首先需要添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

2、获取内存卡状态并看是否可用:Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)

3、获取目录  File sdfile = Environment.getExternalStorageDirectory();

4、然后文件的读写操作和普通的在Java中操作一样

第二部分:联网操作

1、联网无论是socket还是url都要把它放到子线程中去跑;

2、添加权限 <uses-permission android:name="android.permission.INTERNET" />

3、根据网址,创建URL,然后开启连接,设置连接属性,连接,关闭连接。

下面以一个发送post请求为例贴个代码:

public static String[] getAllDrugname() {
        URL url;
        HttpURLConnection connection;
        try {
            url = new URL(IP + "Drug");//这里是网址
            connection = (HttpURLConnection) url.openConnection();
            connection.setRequestProperty("accept", "*/*");
            connection.setDoInput(true);
            connection.setDoOutput(true);
            PrintWriter writer = new PrintWriter(connection.getOutputStream());
            writer.write("type=getAllDrugName");
            writer.flush();
            connection.connect();
            if (connection.getResponseCode() == 200) {
                InputStreamReader in = new InputStreamReader(
                        connection.getInputStream(), "UTF-8");
                StringBuilder str = new StringBuilder();
                int len;
                char[] cbuf = new char[1024];
                while ((len = in.read(cbuf, 0, cbuf.length)) != -1) {
                    str.append(new String(cbuf, 0, len));
                }
                return (str.toString()).split("[|]");
            }
        } catch (MalformedURLException e) {
            return new String[] { "Error:" + e.getMessage() };
        } catch (IOException e) {
            return new String[] { "Error" + e.getMessage() };
        }
        return null;
    }

第三部分:服务器的创建:

1、创建dynamic web project,并为之选定服务器,我用的是tomcat,数据库用的是mysql;

2、复制两个jar包到【工程目录】\\webcontent\\web-inf\\lib下面,jar包分别是mysql-connector-java-5.1.7-bin.jar(用于数据库连接)和servlet-api.jar(服务器);

3、然后是写服务器:这里贴代码:

 1 package Service;
 2 
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 import java.util.LinkedList;
 6 
 7 import javax.servlet.ServletException;
 8 import javax.servlet.http.HttpServlet;
 9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11 
12 import FileOperation.SaveAndReadImage;
13 import MySql.MySqlHelper;
14 
15 public class DrugService extends HttpServlet {
16     @Override
17     public void doGet(HttpServletRequest request, HttpServletResponse response)
18             throws ServletException, IOException {
19         response.setContentType("text/html;charset=UTF-8");
20         PrintWriter writer = response.getWriter();
21         String str = request.getParameter("type");
22         System.out.println("type=" + str);
23         switch (str) {
24         case "getDrugMessageByName":
25             String name = request.getParameter("name");
26             name = new String(name.getBytes("ISO-8859-1"), "UTF-8");
27             String context = getDrugMessageByName(name);
28             writer.write(context);
29             System.out.println("getDrugMessageByName completed");
30             break;
31         case "getAllDrugName":
32             LinkedList<String> names = getAllDrugName();
33             StringBuffer resultName = new StringBuffer();
34             boolean first = true;
35             for (String ele : names) {
36                 if (first) {
37                     resultName.append(ele);
38                     first = false;
39                 } else {
40                     resultName.append("|" + ele);
41                 }
42             }
43             writer.write(resultName.toString());
44             System.out.println("getAllDrugNames completed");
45             break;60         default:
61             writer.write("没有找到合适的匹配");
62         }
63         writer.flush();
64         writer.close();
65         System.out.println("exitService");
66     }
67     @Override
68     public void doPost(HttpServletRequest req, HttpServletResponse resp)
69             throws ServletException, IOException {
70         doGet(req, resp);
71     }86 }

4、部署服务器:这一步很关键,决定了我们的服务器是否可以被正常访问到。新建文件:[工程目录]\WebContent\WEB-INF\web.xml,内容:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app>
 3     <servlet>
 4         <servlet-name>DrugService</servlet-name> 这里是给我们的服务器起个名字,任意取
 5         <servlet-class>Service.DrugService</servlet-class>这里要指明我们的class
 6     </servlet>
 7     <servlet-mapping>
 8         <servlet-name>DrugService</servlet-name>这个名字一定要和上面的名字一样
 9         <url-pattern>/Drug</url-pattern>这个是url后面要加的东西
10     </servlet-mapping>
19 </web-app>

 

第四部分:数据库操作:

数据库操作主要是个流程,经清楚流程其他没什么,这里就直接贴代码了;

 1 package MySql;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 import java.util.LinkedList;
 8 
 9 public class MySqlHelper {
10     private static Connection connection;
11     private static java.sql.Statement statement;
12     static{
13         try {
14             Class.forName("com.mysql.jdbc.Driver");//加载驱动
15         } catch (ClassNotFoundException e) {
16             e.printStackTrace();
17         }
18         Connection connection = null;
19         try {
20             connection = DriverManager.getConnection(
21                     "jdbc:mysql://[IP]:[port]/[database]", "[name]", "[password]");//建立连接,port一般为3306
22             statement=connection.createStatement();
23         } catch (SQLException e) {
24             e.printStackTrace();
25         }
26     }//-----------以下为一些数据库的增删查改等操作--------------------
27     public static String[] getDrug(int id){
28         StringBuffer sql=new StringBuffer("select `name`,`context` "
29                 + "from drug where `id`=");
30         sql.append("'"+id+"'");
31         ResultSet resultSet=null;
32         try {
33             resultSet = statement.executeQuery(sql.toString());
34         } catch (SQLException e) {
35             e.printStackTrace();
36         }
37         try {
38             int count=resultSet.getMetaData().getColumnCount();
39             System.out.println(count);
40             while(resultSet.next()){
41                 return new String[]{resultSet.getString(1),resultSet.getString(2)};
42             }
43         } catch (SQLException e) {
44             e.printStackTrace();
45         }
46         return null;
47     }57     public static LinkedList<String> getAllDrugName(){
58         LinkedList<String> names=new LinkedList<String>();
59         String sql=new String("select `name` from `drug`");
60         ResultSet result=null;
61         try {
62             result = statement.executeQuery(sql);
63         } catch (SQLException e) {
64             e.printStackTrace();
65         }
66         try {
67             while(result.next()){
68                 names.add(result.getString(1).trim());
69             }
70         } catch (SQLException e) {
71             e.printStackTrace();
72         }
73         return names;
74     }
75     public static String getDrugMessageByName(String name){
76         String sql=new String("select `context` from `drug` "
77                 + "where `name` like '%"+name+"%'");
78         ResultSet result=null;
79         try {
80             result = statement.executeQuery(sql);
81         } catch (SQLException e) {
82             e.printStackTrace();
83         }
84         try {
85             if(result.next())
86                 return result.getString(1);
87         } catch (SQLException e) {
88             e.printStackTrace();
89         }
90         return null;
91     }
92 }

 

posted @ 2015-04-24 20:52  冠king  阅读(183)  评论(0)    收藏  举报