文件操作,联网操作,服务器的创建,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 }

浙公网安备 33010602011771号