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

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

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

2、连接数据库。

3、访问数据库

过程2、3 具体步骤:

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

web.xml实例如下:

  1. <?xmlversion="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. <servlet>
  7. <servlet-name>LoginServlet</servlet-name>
  8. <servlet-class>com.amaker.servlet.LoginServlet</servlet-class>
  9. </servlet>
  10. <servlet-mapping>
  11. <servlet-name>UpdateMenuServlet</servlet-name>
  12. <url-pattern>/servlet/UpdateMenuServlet</url-pattern>
  13. </servlet-mapping>
<?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、用户名和密码。

  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>
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用于连接和关闭数据库。具体代码如下。

  1. package com.amaker.util;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.SQLException;
  5. import java.util.Properties;
  6. /**
  7. *
  8. * @author BlackhorseMary
package com.amaker.util;

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

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

  1. package com.amaker.entity;
  2. public class Menu {
  3. private int id;
  4. private int price;
  5. private int typeId;
  6. private String name;
  7. private String pic;
  8. private String remark;
  9. public int getId() {
  10. return id;
  11. }
  12. public void setId(int id) {
  13. this.id = id;
  14. }
  15. public String getName() {
  16. return name;
  17. }
  18. public void setName(String name) {
  19. this.name = name;
  20. }
  21. public String getPic() {
  22. return pic;
  23. }
  24. public void setPic(String pic) {
  25. this.pic = pic;
  26. }
  27. public int getPrice() {
  28. return price;
  29. }
  30. public void setPrice(int price) {
  31. this.price = price;
  32. }
  33. public String getRemark() {
  34. return remark;
  35. }
  36. public void setRemark(String remark) {
  37. this.remark = remark;
  38. }
  39. public int getTypeId() {
  40. return typeId;
  41. }
  42. public void setTypeId(int typeId) {
  43. this.typeId = typeId;
  44. }
  45. }
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表)。

  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. int id = rs.getInt(1);
  24. int typeId = rs.getInt(2);
  25. int price = rs.getInt(3);
  26. String name = rs.getString(4);
  27. String pic = rs.getString(5);
  28. String remark = rs.getString(6);
  29. Menu m = new Menu();
  30. m.setId(id);
  31. m.setName(name);
  32. m.setPic(pic);
  33. m.setPrice(price);
  34. m.setRemark(remark);
  35. m.setTypeId(typeId);
  36. list.add(m);
  37. }
  38. return list;
  39. } catch (SQLException e) {
  40. e.printStackTrace();
  41. } finally {
  42. util.closeConn(conn);
  43. }
  44. return null;
  45. }
  46. }
/**
 * @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表的结果。

 本文出自http://blog.csdn.net/Mary881225

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值