前言:
准备工做:
1.Java EE的eclipse。固然你eclipse能建web项目也能够
2.mysql和Navicat for mysql,由于服务器须要用mysql做为后台数据库。Navicat for mysql是管理mysql可视化软件。
3.Tomcat7.0。这个东西你们都知道的。
以上软件,各位同窗自行下载。我就不传了。java
开发技术:Android客户端经过后台服务 络访问服务器。通讯采用Tomcat7.0。服务器采用Servlet响应客户请求
主要功能:
1.登陆和注册,此点餐只给员工,因此又叫员工端
2.功能主菜单
3.点餐
4.结帐
5.并桌/改桌
6.桌子查询mysql
服务器端:
准备的工具收集齐了。首先咱们先把服务器先搭建好。服务器工做比客户端还要多的多,咱们采用mvc+dao模式。打开eclipse,按菜单Window-Perfernces-Server-Runtime Enviroments(运行环境),这个动做在于先把Tomcat环境搭建起来。而后是数据库。打开Navicat for mysql(不过呢你要把mysql先装好),数据库名字本身起。新建一张表叫usertbl,字段分别为id(自动增加+键),account,password,name,gender,permission,remark.建完后能够往表添加数据。做为验证的依据。接下来咱们要新建一个web项目,注意了是web项目。由于服务器须要访问数据库,因此要有个访问mysql架包以及json解析包.若是有了务必WEB-INF下的lib文件下.下面就是写访问mysql的类了。在src下新建一个包如com.order.util,存放链接数据库的包。由于还须要配置文件。配置文件新建一个文件,把文件名改为DBConfig.properties.在这个配置文件写链接mysql一些信息:driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost/gourmet_dbseUnicode=true&characterEncoding=utf-8
username=你的mysql的用户名
password=你的mysql的用密码注意这里的gourmet_db是你数据库的名字
android
下面须要链接数据库,所以须要一个链接工具类:
web
public class DBUtil {
//关闭数据库
public void closeConn(Connection conn){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
//打开数据库链接
public Connection openConnection() {
//实例化Properties
Properties prop = new Properties();
//驱动
String driver = null;
//数据库链接url
String url = null;
//用户名
String username = null;
//密码
String password = null;
try {
//加载配置文件
prop.load(this.getClass().getClassLoader().getResourceAsStream(
“com/order/util/DBConfig.properties”));
//获取数据库驱动
driver = prop.getProperty(“driver”);
//得到数据库url
url = prop.getProperty(“url”);
//获取用户名
username = prop.getProperty(“username”);
//获取密码
password = prop.getProperty(“password”);
//注册驱动
Class.forName(driver);
System.out.println(“数据库名称:”+driver+”数据库用户名:”+username+”数据库密码是:”+password);
//返回数据库链接
return DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}既然涉及到面向对象的话,那么实体类是少不了。得忘记说了建立一个com.order.entity包了
private int id;
// 帐
private String account;
// 密码
private String password;
// 用户名称
private String name;
// 性别
private String gender;
// 权限
private int permission;
// 备注
private String remark;…………Get和Set省略接下来就是重点了Dao+Serlvet了,Dao就是写一个接口,而后去实现它而已,那么确定建立一个Userdao的包吧。
public User login(String account,String password);
public int UpdatePWD(String account,String opwd,String npwd);
public int changeId(String username);
public int addUser(String username,String pwd);
public boolean hasUser(String username);第一个方法是登陆方法,第二个修改密码,第三个根据用户名返回ID,第四个注册用户,第五个是检查是否存在这个用户。写好了接口。必须去实现它.不要建立一个包,专门实现接口的包如UserDaoImpl。在这个类声明三个类:DBUtil util,Connection conn,User user = null;同时建立一个构造函数,不建立的话致使链接数据库没法关闭。为了节约时间。咱们只写第一个方法,sql语句少不了。而后得到预约义语句,接下来设置查询参数并封装用户参数。
public User login(String account, String password) {
// 查询SQL语句
String sql = ” select id,account,password,name,permission,remark “
+ ” from usertbl ” + ” where account=and password=”;
// System.out.println(account + ” ” + password);
try {
// 得到预约义语句
PreparedStatement pstmt = conn.prepareStatement(sql);
// 设置查询参数
pstmt.setString(1, account);
pstmt.setString(2, password);
// 执行查询
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
// 得到用户信息
int id = rs.getInt(1);
String name = rs.getString(4);
int permission = rs.getInt(5);
String remark = rs.getString(6);
// 封装用户信息
User u = new User();
u.setId(id);
u.setAccount(account);
u.setPassword(password);
u.setName(name);
u.setPermission(permission);
u.setRemark(remark);
return u;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
util.closeConn(conn);
}
return null;
}接下来就是Servlet。注意新建一个是Servlet而不是类。若是你经过类去继承servelt恐怕不行。Servlet里经过 request.getParameter获取请求参数,再调用login方法,响应结果信息。由于需求要求用get方式。因此咱们要写在doGet里。从下面代码用Json形式返回给客户端,因此客户端也用Json形式请求:
response.setContentType(“text/html”);
PrintWriter out = response.getWriter();
String username = request.getParameter(“name”);
String password = request.getParameter(“paw”);
System.out.println(“该用户名:”+username+”密码是:”+password);
JSONObject json = new JSONObject();
if(request.getParameter(“category”).equals(“user”)){
UserDao dao = new UserDaoImpl();
// 得到客户端请求参数
User u = dao.login(username, password);
if(u!=null){
try {
json.put(“rt”, “200”);
json.put(“rtmsg”, “登陆成功”);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
try {
json.put(“rt”, “21”);
json.put(“rtmsg”, “用户名或者密码错误”);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
out.print(json.toString());
}Android客户端:
最终如图:sql
/**
* 使用HttpGet判断用户名+密码是否正确
*/
public static String LoginIn(String name, String paw) {
HttpResponse response;
String result;
JSONObject jsonObject;
// 拼接字符
String url = LOGIN_URL + “ame=” + name + “&paw=” + paw
+ “&category=user”;
HttpGet httpGet = new HttpGet(url);
try {
response = httpClient.execute(httpGet);
if (response.getStatusLine().getStatusCode() == 200) {
result = EntityUtils.toString(response.getEntity(), HTTP.UTF_8);
jsonObject = new JSONObject(result);
return jsonObject.getString(“rtmsg”);
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}最后打开服务器以及客户端打开,输入用户密码来测试下便可,登陆部分我讲完了。有不明觉厉的地方在评论提出来
相关资源:校园自助点餐APP的开发.rar-互联 文档类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!