通过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表的结果。

至此,大功告成。

android开发 如何通过web服务器访问MYSQL数据库并且使其数据同步到android SQLite数据库?的更多相关文章

  1. 自学Zabbix4.1 zabbix监控web服务器访问性能

    自学Zabbix4.1 zabbix监控web服务器访问性能 使用Zabbix实现对web性能的监控,通过它可以了解web站点的可用性以及性能.最终将各项指标绘制到图形中,这样我们可以了解到一个站点的 ...

  2. SQLite与MySQL、SQLServer等异构数据库之间的数据同步

    SQLite DBSync是开源嵌入式数据库SQLite的数据同步引擎,实现了SQLite与SQLite数据库之间以及SQLite与异构数据库(Oracle.MySQL.SQLServer)之间的增量 ...

  3. Android 之数据存储(sdCard,sharedPreference,sqlite数据库)

    sdCard:默认路径在 /storage/sdcard/... Android支持OpenFileOutput和openFileInput方式访问手机存储器上的文件. Context提供了如下两个方 ...

  4. TiDB 作为 MySQL Slave 实现实时数据同步

    由于 TiDB 本身兼容绝大多数的 MySQL 语法,所以对于绝大多数业务来说,最安全的切换数据库方式就是将 TiDB 作为现有数据库的从库接在主 MySQL 库的后方,这样对业务方实现完全没有侵入性 ...

  5. 【安富莱专题教程第3期】开发板搭建Web服务器,利用花生壳让电脑和手机可以外网远程监控

    说明:1.  开发板Web服务器的设计可以看我们之前发布的史诗级网络教程:链接.2.  需要复杂些的Web设计模板,可以使用我们V6开发板发布的综合Demo:链接.3.  教程中使用的是花生壳免费版, ...

  6. asp.net 开发问题:Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值。

    "Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值." 这个问题在开发需要上传文件的时候可能会遇到,今天遇到这个问题,百度过也有挺多的修改方法. 方法1: 修 ...

  7. C#自制Web 服务器开发:用C#开发自己的Web服务器

    当输入: GET / HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Accept-Language: zh-CN User-Agent: ...

  8. C#开发自己的Web服务器

    介绍 我们将学习如何写一个简单的web服务器,用于响应知名的HTTP请求(GET和POST),用C#发送响应.然后,我们从网络访问这台服务器,这次我们会说“Hello world!” 背景 HTTP协 ...

  9. (转)C#自制Web 服务器开发:用C#开发自己的Web服务器

    当输入:127.0.0.1:5050 GET / HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Accept-Language: zh- ...

随机推荐

  1. python查询IP地址所属地

    1.linux命令行版 #!/usr/bin/python #-*- coding: utf-8 -*- import json import urllib import sys def get_da ...

  2. nginx 基础配置详解

    #本文只对nginx的最基本配置项做一些解释,对于配置文件拆分管理,更详细的集群健康检查的几种方式,检查策略等在此不做详细解释了. #运行用户user nobody;#启动进程,通常设置成和cpu的数 ...

  3. 13.Django模版

    没什么好说的,看官方文档 https://docs.djangoproject.com/en/1.9/ref/templates/builtins/

  4. 500 Lines or Less: A Template Engine(模板引擎)

    介绍: 多数项目都是包含很多的逻辑处理,只有少部分的文字文本处理.编程语言非常擅长这类项目.但是有一些项目只包含了少量的逻辑处理,大量的文本数据处理.对于这些任务,我们期望有一个工具能够很好的处理这些 ...

  5. jquery跟DOM转换

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  6. Oracle分页总汇

    Oracle分页总汇 select * from (select a.*,rownum row_num from (select * from mytable t order by t.id desc ...

  7. 隐藏c语言烦人的{ }

    .vimrc文件中添加 autocmd BufNewFile,BufRead * :syn match braces conceal "[{}]" set conceallevel ...

  8. noVNC

    noNVC基础用法: 1.下载noVNC git clone https://github.com/novnc/noVNC.git 2.编辑qemu.conf配置文件 Vim /etc/libvirt ...

  9. maven pom filter 导致的问题记录

    Maven提供了一个很不错的功能 Resource Filter, 可以将按不同环境的进行变量赋值, 比如数据库链接, redis, 日志输出位置等等.. 具体的filter如何使用我这里不做介绍, ...

  10. JavaScript 使用技巧(持续更新)

    JavaScript 使用技巧(持续更新) 类型检测 使用Object.prototype.toString.call(obj)的方式. 因为无论typeof还是instanceof都无法做到精确判断 ...