1. 程式人生 > >怎麼通過web伺服器訪問MYSQL資料庫,使其資料同步到android SQLite資料庫?

怎麼通過web伺服器訪問MYSQL資料庫,使其資料同步到android SQLite資料庫?

      通過web伺服器訪問MYSQL資料庫有以下幾個過程:

2、連線資料庫。

3、訪問資料庫

     過程2、3 具體步驟:

1、在Myeclipse下新建一個web專案,為了好統一管理在WEB-INF下建一個web.xml用來載入伺服器啟動時的配置資訊。這個檔案是由大量的<servlet></servlet>與<servlet-mapping></servlet-mapping>組成,這裡只做講解,

web.xml例項如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	
	<servlet>
		<servlet-name>LoginServlet</servlet-name>
		<servlet-class>com.amaker.servlet.LoginServlet</servlet-class>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>UpdateMenuServlet</servlet-name>
		<url-pattern>/servlet/UpdateMenuServlet</url-pattern>
	</servlet-mapping>

2、為了方便對資料庫驗證資訊的統一管理,在src目錄下建一個DBConfig.properties檔案。包含內容有:連線mysql資料庫的驅動、url、使用者名稱和密碼。

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/wirelessorder_db?useUnicode=true&characterEncoding=utf-8
username=root
password=123

3、連線資料庫:

      a、可以先在src目錄下建一個工具類DBUtil.java用於連線和關閉資料庫。具體程式碼如下。

package com.amaker.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

/**
 * 
 * @author BlackhorseMary 
*/
public class DBUtil {
	
	/*
	 * 關閉資料庫連線
	 */
	public void closeConn(Connection conn){
		try {
			conn.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	/*
	 * 開啟資料庫連線
	 */
	public Connection openConnection() {
		Properties prop = new Properties();
		String driver = null;
		String url = null;
		String username = null;
		String password = null;

		try {
			prop.load(this.getClass().getClassLoader().getResourceAsStream(
					"DBConfig.properties"));

			driver = prop.getProperty("driver");
			url = prop.getProperty("url");
			username = prop.getProperty("username");
			password = prop.getProperty("password");
			
			Class.forName(driver);
			return DriverManager.getConnection(url, username, password);
		} catch (Exception e) {
			e.printStackTrace();
		}

		return null;
	}

}


   b、再在src目錄下新建一個Menu.java,用於設定獲取其屬性。

package com.amaker.entity;

public class Menu {
	private int id;
	private int price;
	private int typeId;
	private String name;
	private String pic;
	private String remark;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPic() {
		return pic;
	}
	public void setPic(String pic) {
		this.pic = pic;
	}
	public int getPrice() {
		return price;
	}
	public void setPrice(int price) {
		this.price = price;
	}
	public String getRemark() {
		return remark;
	}
	public void setRemark(String remark) {
		this.remark = remark;
	}
	public int getTypeId() {
		return typeId;
	}
	public void setTypeId(int typeId) {
		this.typeId = typeId;
	}
	
}


4、在src下建一個update.java類用於執行同步,即更新android SQLites資料庫中的資料(前提是SQLite資料庫裡面有對應的Menu表)。

/**
 * @author BlackhorseMary
 *	完成更新SQLite資料功能
 */
public class Update {
	// 獲得選單列表
	public List<Menu> getMenuList() {
		// 查詢SQL語句
		String sql =" select id,typeId,price,name,pic,remark from MenuTbl ";
		// 資料庫連線工具類
		DBUtil util = new DBUtil();
		// 獲得連線
		Connection conn = util.openConnection();
		try {
			// 獲得預定義語句
			Statement pstmt = conn.createStatement();
			// 執行查詢
			ResultSet rs = pstmt.executeQuery(sql);
			// 判斷訂單詳細
			List<Menu> list = new ArrayList<Menu>();
			while (rs.next()) {
				// 獲得選單資訊
				
				int id = rs.getInt(1);
				int typeId = rs.getInt(2);
				int price = rs.getInt(3);
				String name = rs.getString(4);
				String pic = rs.getString(5);
				String remark = rs.getString(6);
				
				Menu m = new Menu();
				m.setId(id);
				m.setName(name);
				m.setPic(pic);
				m.setPrice(price);
				m.setRemark(remark);
				m.setTypeId(typeId);
				
				list.add(m);
			}
			return list;
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			util.closeConn(conn);
		}
		return null;
	}
	
}

5、啟動伺服器,在瀏覽器中輸入相應URL地址,可以把相應的SQLITE資料庫匯出來,用SQLITE資料庫工具,檢視資料庫中Menu表的結果。

至此,大功告成。

相關推薦

怎麼通過web伺服器訪問MYSQL資料庫使資料同步android SQLite資料庫

      通過web伺服器訪問MYSQL資料庫有以下幾個過程: 2、連線資料庫。 3、訪問資料庫      過程2、3 具體步驟: 1、在Myeclipse下新建一個web專案,為了好統一管理在WEB-INF下建一個web.xml用來載入伺服器啟動時的配置資訊。這

通過web伺服器訪問MYSQL資料庫使資料同步android SQLite資料庫

      通過web伺服器訪問MYSQL資料庫有以下幾個過程: 2、連線資料庫。 3、訪問資料庫      過程2、3 具體步驟: 1、在Myeclipse下新建一個web專案,為了好統一管理在WEB-INF下建一個web.xml用來載入伺服器啟動時的配

通過WEB伺服器訪問MYSQL並且資料同步android SQLite資料庫

2、連線資料庫。 3、訪問資料庫      過程2、3 具體步驟: 1、在Myeclipse下新建一個web專案,為了好統一管理在WEB-INF下建一個web.xml用來載入伺服器啟動時的配置資訊。這個檔案是由大量的<servlet></servle

通過web伺服器訪問MySQL資料庫並把資料庫中的某張表解析成xml格式輸出到瀏覽器

可以先想象一下,客戶端用到遠端資料庫中的資訊比如Menu表中的資訊,怎麼獲取呢?可以通過web伺服器獲取。這就需要寫一個繼承 HttpServlet的抽象類,並且重寫doGet()和doPost()方法。    下面就是此類的具體實現: public class Updat

讓兩臺伺服器MySQL(5.7)資料同步_主主同步(互為主從關係)

網上找的大部分定義master-host的其實在新的MySQL中已經停用了,於是乎很悲劇的自己探索寫出了這麼一個東西 RedHat版本7.0 MySQL版本 5.7 伺服器名稱為假的!!!伺服器名稱為假的!!!伺服器名稱為假的!!! 重要事情說三遍~ 另外需要注意的是,你同

解決 web伺服器部署常見問題server application unavailable 和 程式無法連線資料庫 的問題(asp.net 2.0 + oracle9i + winXP)

部署時出現以下錯誤: server application unavailable the web application you are attempting to access on this web server is currently unavailable. pl

通過ssh隧道訪問mysql包括免密碼操作

我的機器可以連線伺服器A,A可以訪問伺服器B上的MySQL,但是我的機器不能訪問B,所以我需要建立一個我本地機器到伺服器A的ssh隧道來訪問伺服器B上的mysql。 理一下思路: 1.我要ssh的伺服器是111.112.113.114,埠是5122,賬戶名是w

mysql修改表字段編碼使支持emoji表情

exception .sql var blog odi utf use pan cor 普通的UTF8編碼是不支持emoji表情插入的,會報異常: Caused by: java.sql.SQLException: Incorrect string value: ‘\xF

【C語言】對一個n*n矩陣通過行變換使每行元素的平均值按遞增順序排序

#include<stdio.h> int main() { int n,a[100][100],r,c,i,j; scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n;j++) scanf("%d",&am

易語言如何連線遠端伺服器上的資料庫並讀取資料

用易語言來連線遠端伺服器上的資料庫,可以使用支援庫中的方法。 連線資料庫方法名: 連線mysql(伺服器地址,使用者名稱,密碼,資料庫名,埠號) 注意:連線mysql()這個方法名,如果沒有,單擊工具欄中的 工具--->支援庫配置  然後全選,確定匯入。這時有這個

web程式傳遞引數新增web伺服器的配置檔案新增shell功能----03

傳遞埠號 如果埠號在伺服器裡面寫死的話,那麼別人拿到伺服器,如果寫死的埠被佔用,那麼伺服器就沒用了,所以我們需要傳遞一個活動的埠號,具體方法就是匯入sys模組,用sys.argv來接受,程式碼如下 def main(): """ 控制整體,建立一個web伺服器物件,然

通過ssh隧道訪問mysql

許多時候當要使用Mysql時,會遇到如下情況: 1. 資訊比較重要,希望通訊被加密。 2. 一些埠,比如3306埠,被路由器禁用。 對第一個問題的一個比較直接的解決辦法就是更改mysql的程式碼,或者是使用一些證書,不過這種辦法顯然不是很簡單。 這裡要介紹另外一種方法,就是利用SSH通

【轉】Sqlserver通過連結伺服器訪問Oracle的解決辦法

一、建立sqlserver連結服務(sqlserver連結oracle)  首先sqlserver 連結oracle可以通過兩個訪問介面: “MSDAORA” 和“OraOLEDB.Oracle” 1、“MSDAORA”訪問介面是由Microsoft OLE DB Provider for O

Js動態追加行並將內容儲存到資料庫並取出資料通過js動態顯示

實現步驟講解: 首先需要在html頁面建立一個table表格和一個動態新增行的按鈕 <input type="button" onclick="addT()" value="新增" /> 然後實現表格中追加行的js方法 //新增動態行(可在實現的列中新增相應的滑鼠事

解決內網通過代理伺服器訪問外網部署WebService報錯問題“請求因 HTTP 狀態 407 失敗”

具體情況如下:在外網的伺服器上部署了一個Web Service,由於公司網路原因,僅能通過內網穿過代理伺服器來訪問外網的Web Service。在新增外網的Web Service時,出現了提示視窗,如下圖:    提示輸入公司內網域的使用者名稱和密碼。我輸入了自己的使用者名稱和密碼,正常新增引用。然後在呼叫時

事件ID 18456:使用者登入失敗。 原因: 基於令牌的伺服器訪問驗證失敗出現基礎結構錯誤

事件型別:稽核失敗 事件來源:MSSQLSERVER 事件種類:登入  事件 ID:18456 日期:2015-4-22 事件:11:11:21 使用者:域\計算機名 計算機:域 描述: 使用者 '域\計算機名$' 登入失敗。 原因: 基於令牌的伺服器訪問驗證失敗,出現基礎

linux定時備份mysql資料庫及解決crontab執行時生成資料庫檔案為空的問題

一、用命令實現備份 進入mysql的bin目錄(mysql安裝目錄的下一級目錄) 1、備份資料 #mysqldump -uusername -ppassword discuz >discuz_2010-04-01.sql -uusernae:-u+mysql的使用者名

Mysql建立create_time跟update_time欄位使自動存值。

建立語句如下: ALTER TABLE table_name ADD COLUMN create_time timestamp NULL DEFAULT CURRENT_TIMESTAMP, ADD COLUMN update_time timesta

修改(python) mysql 資料庫 使可以支援插入中文

先建立一個數據庫,名字叫xsk #!/usr/bin/python # -*- coding:utf-8 -*- import MySQLdb # 開啟資料庫連線(本機,使用者,密碼,資料庫名) d

通過代理伺服器訪問SFTP問題解決

通過代理伺服器訪問SFTP報如下錯誤: Caused by: com.jcraft.jsch.JSchException: ProxyHTTP: java.io.IOException: proxy error: Forbidden 環境說明: 1、代理伺