通过web服务器访问MYSQL数据库,使其数据同步到android SQLite数据库

来源:互联网 发布:仓位在线软件 编辑:程序博客网 时间:2024/05/29 15:12

     (  本文出自http://blog.csdn.net/Mary881225,如需转载,请注明出处)

 

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

1、创建MYSQL数据库,并建表(如:menu表)。

2、连接数据库。

3、访问数据库

 

     过程2、3 具体步骤:

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

web.xml实例如下:

[html] view plaincopy
  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、用户名和密码。

[plain] view plaincopy
  1. <span style="font-size:18px;">driver=com.mysql.jdbc.Driver  
  2. url=jdbc:mysql://localhost:3306/wirelessorder_db?useUnicode=true&characterEncoding=utf-8  
  3. username=root  
  4. password=123</span>  

 

3、连接数据库:

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

[java] view plaincopy
  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   
[java] view plaincopy
  1. */  
  2. public class DBUtil {  
  3.       
  4.     /* 
  5.      * 关闭数据库连接 
  6.      */  
  7.     public void closeConn(Connection conn){  
  8.         try {  
  9.             conn.close();  
  10.         } catch (SQLException e) {  
  11.             e.printStackTrace();  
  12.         }  
  13.     }  
  14.       
  15.     /* 
  16.      * 打开数据库连接 
  17.      */  
  18.     public Connection openConnection() {  
  19.         Properties prop = new Properties();  
  20.         String driver = null;  
  21.         String url = null;  
  22.         String username = null;  
  23.         String password = null;  
  24.   
  25.         try {  
  26.             prop.load(this.getClass().getClassLoader().getResourceAsStream(  
  27.                     "DBConfig.properties"));  
  28.   
  29.             driver = prop.getProperty("driver");  
  30.             url = prop.getProperty("url");  
  31.             username = prop.getProperty("username");  
  32.             password = prop.getProperty("password");  
  33.               
  34.             Class.forName(driver);  
  35.             return DriverManager.getConnection(url, username, password);  
  36.         } catch (Exception e) {  
  37.             e.printStackTrace();  
  38.         }  
  39.   
  40.         return null;  
  41.     }  
  42.   
  43. }  


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

[java] view plaincopy
  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. }  


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

[java] view plaincopy
  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. }  

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

 

至此,大功告成。

0 0
原创粉丝点击