• android开发 如何通过web服务器访问MYSQL数据库并且使其数据同步到android SQLite数据库?


    通过web服务器访问MYSQL数据库有以下几个过程:

    1、在MySql下创建自己的数据库和自己的表单

    2、连接数据库。

    3、访问数据库

    1、创建web工程 (服务器端)

      在Myeclipse下新建一个web项目,为了好统一管理在WEB-INF下建一个web.xml用来加载服务器启动时的配置信息。这个文件是由大量的<servlet></servlet>与<servlet-mapping></servlet-mapping>组成,这里只做讲解,

    web.xml实例如下:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
     5     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
     6     
     7     <servlet>
     8         <servlet-name>LoginServlet</servlet-name>
     9         <servlet-class>com.amaker.servlet.LoginServlet</servlet-class>
    10     </servlet>
    11     
    12     <servlet-mapping>
    13         <servlet-name>UpdateMenuServlet</servlet-name>
    14         <url-pattern>/servlet/UpdateMenuServlet</url-pattern>
    15     </servlet-mapping>

    2、为了方便对数据库验证信息的统一管理,在src目录下建一个DBConfig.properties文件。包含内容有:连接mysql数据库的驱动、url、用户名和密码。

    1 driver=com.mysql.jdbc.Driver
    2 url=jdbc:mysql://localhost:3306/wirelessorder_db?useUnicode=true&characterEncoding=utf-8
    3 username=rootpassword=123

    3、连接数据库

    a、可以先在src目录下建一个工具类DBUtil.java用于连接和关闭数据库。具体代码如下。

     1 package com.amaker.util;
     2 
     3 import java.sql.Connection;
     4 import java.sql.DriverManager;
     5 import java.sql.SQLException;
     6 import java.util.Properties;
     7 
     8 /**
     9  * 
    10  * @author BlackhorseMary 
    11 */
    12 public class DBUtil {
    13     
    14     /*
    15      * 关闭数据库连接
    16      */
    17     public void closeConn(Connection conn){
    18         try {
    19             conn.close();
    20         } catch (SQLException e) {
    21             e.printStackTrace();
    22         }
    23     }
    24     
    25     /*
    26      * 打开数据库连接
    27      */
    28     public Connection openConnection() {
    29         Properties prop = new Properties();
    30         String driver = null;
    31         String url = null;
    32         String username = null;
    33         String password = null;
    34 
    35         try {
    36             prop.load(this.getClass().getClassLoader().getResourceAsStream(
    37                     "DBConfig.properties"));
    38 
    39             driver = prop.getProperty("driver");
    40             url = prop.getProperty("url");
    41             username = prop.getProperty("username");
    42             password = prop.getProperty("password");
    43             
    44             Class.forName(driver);
    45             return DriverManager.getConnection(url, username, password);
    46         } catch (Exception e) {
    47             e.printStackTrace();
    48         }
    49 
    50         return null;
    51     }
    52 
    53 }

     
    b、再在src目录下新建一个Menu.java,用于设置获取其属性。

     1 package com.amaker.entity;
     2 
     3 public class Menu {
     4     private int id;
     5     private int price;
     6     private int typeId;
     7     private String name;
     8     private String pic;
     9     private String remark;
    10     
    11     public int getId() {
    12         return id;
    13     }
    14     public void setId(int id) {
    15         this.id = id;
    16     }
    17     public String getName() {
    18         return name;
    19     }
    20     public void setName(String name) {
    21         this.name = name;
    22     }
    23     public String getPic() {
    24         return pic;
    25     }
    26     public void setPic(String pic) {
    27         this.pic = pic;
    28     }
    29     public int getPrice() {
    30         return price;
    31     }
    32     public void setPrice(int price) {
    33         this.price = price;
    34     }
    35     public String getRemark() {
    36         return remark;
    37     }
    38     public void setRemark(String remark) {
    39         this.remark = remark;
    40     }
    41     public int getTypeId() {
    42         return typeId;
    43     }
    44     public void setTypeId(int typeId) {
    45         this.typeId = typeId;
    46     }
    47     
    48 }
     1 /**
     2  * @author BlackhorseMary
     3  *    完成更新SQLite数据功能
     4  */
     5 public class Update {
     6     // 获得菜单列表
     7     public List<Menu> getMenuList() {
     8         // 查询SQL语句
     9         String sql =" select id,typeId,price,name,pic,remark from MenuTbl ";
    10         // 数据库连接工具类
    11         DBUtil util = new DBUtil();
    12         // 获得连接
    13         Connection conn = util.openConnection();
    14         try {
    15             // 获得预定义语句
    16             Statement pstmt = conn.createStatement();
    17             // 执行查询
    18             ResultSet rs = pstmt.executeQuery(sql);
    19             // 判断订单详细
    20             List<Menu> list = new ArrayList<Menu>();
    21             while (rs.next()) {
    22                 // 获得菜单信息
    23                 
    24                 int id = rs.getInt(1);
    25                 int typeId = rs.getInt(2);
    26                 int price = rs.getInt(3);
    27                 String name = rs.getString(4);
    28                 String pic = rs.getString(5);
    29                 String remark = rs.getString(6);
    30                 
    31                 Menu m = new Menu();
    32                 m.setId(id);
    33                 m.setName(name);
    34                 m.setPic(pic);
    35                 m.setPrice(price);
    36                 m.setRemark(remark);
    37                 m.setTypeId(typeId);
    38                 
    39                 list.add(m);
    40             }
    41             return list;
    42         } catch (SQLException e) {
    43             e.printStackTrace();
    44         } finally {
    45             util.closeConn(conn);
    46         }
    47         return null;
    48     }
    49     
    50 }

    4、在src下建一个update.java类用于执行同步,即更新android SQLites数据库中的数据(前提是SQLite数据库里面有对应的Menu表)。

     

    5、启动服务器,在浏览器中输入相应URL地址,可以把相应的SQLITE数据库导出来,用SQLITE数据库工具,查看数据库中Menu表的结果。 

    至此,大功告成。

  • 相关阅读:
    我眼中的DevOps
    Jenkins常用插件介绍之权限控制插件Role-based Authorization Strategy
    sql查询一个班级中总共有多少人以及男女分别多少人
    win8 图片等路径
    WPF 设置TextBox为空时,背景为文字提示。
    WCF服务发布
    win8 摄像
    oracle 删除主键
    oracle 数据库连接
    oracle 创建用户表
  • 原文地址:https://www.cnblogs.com/cuixiaodong427/p/3150104.html
Copyright © 2020-2023  润新知