点餐程序android,Android点餐系统教程(登陆篇)

点餐程序android,Android点餐系统教程(登陆篇)前言:点餐系统融合知识也不少,最多的部分都是网络。本教程是本人亲自写。若有转载,需写明原做者喔。点餐系统做用性我懒的说,何时想到了再编辑吧。html准备工做:1.JavaEE的eclipse。固然你eclipse能建web项目也能够2.mysql和Navicatformysql,由于服务器须要用mysql做为后台数据库。Navicatformysql是管理mysql可视化软件。3.Tom…

大家好,又见面了,我是你们的朋友全栈君。

前言:

点餐系统融合知识也不少,最多的部分都是网络。本教程是本人亲自写。若有转载,需写明原做者喔。点餐系统做用性我懒的说,何时想到了再编辑吧。html

准备工做:

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_db?useUnicode=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

5131811a11ed8ada931322fe624eb2f4.png

d0ef0f102ea0e9d9d298e61d1ce2f75d.png

android我建议各位用手机测试并开启网络,版本是4.2.由于如今手机都是4.0以上。首先建个包存放Activity的包。先建立一个BaseActivity。这个Activity做用在于把重复的操做所有写在这个类如横屏竖屏是否全屏等。由于还须要ProgressDialog表示进度状态.建立两个类Login和Main。前者是登陆,后者是主菜单。Login两个EditText,三个按钮。背景颜色什么的本身设置。咱们要采用Handler+Thread作网络获取的工做。其余功能也是如此。在此以前咱们须要一个类来经过服务器验证,因此要有HttpUtil类,固然这个类自定义的。此类专门从服务器获取并封装起来。由于用户在EditText输入后,客户端提交后服务器看你编辑框输入的东西和数据库进行匹配,不一致服务器那边显示错误。一致了直接进去主菜单,封装方法以下,既然服务器用Get,那么客户端少不了也要用Get,你要用Post请求没什么反应的。这里 LOGIN_URL指的是登陆用户的Servlet类,后面拼接字符串。若是数据库有数据不妨先测试下这拼接字符。若是服务器返回json数据的话,那么表示成功了。接着经过httpClient.execute执行这个拼接字符。若是返回码是200把结果返回出来。再用JSONObject把这个result传进来并用getString获取,再回到主界面只要调用LoginIn方法便可。LoginIn方法以下:数据库

/**

* 使用HttpGet判断用户名+密码是否正确

*/

public static String LoginIn(String name, String paw) {

HttpResponse response;

String result;

JSONObject jsonObject;

// 拼接字符

String url = LOGIN_URL + “?name=” + 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;

}最后打开服务器以及客户端打开,输入用户密码来测试下便可,登陆部分我讲完了。有不明觉厉的地方在评论提出来

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150948.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • windows服务器解决挖矿程序问题

    windows服务器解决挖矿程序问题windows服务器解决挖矿程序问题

    2022年6月17日
    24
  • pycharm2021.10激活码教程【最新永久激活】[通俗易懂]

    (pycharm2021.10激活码教程)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html0UY7RF7AC5-eyJsaWNlbnNlSW…

    2022年3月28日
    80
  • CPU C-state & cpuidle driver[通俗易懂]

    CPU C-state & cpuidle driver[通俗易懂]1.什么是C-states、C-mode?为了在CPU空闲时节约能源,可以命令CPU进入低功耗模式。C-state是intelCPU处于空闲时的一种状态,CPU有几种电源模式,它们统称为“c状态”或“c模式”低功耗模式最初是在486DX4处理器中引入的。到目前为止,已经引入了更多的功耗模式,并且对每种模式进行了增强,以使CPU在这些低功耗模式下消耗更少的功率。CPU的每个状态都使用不同的电量,并且对应用程序性能的影响也不同。每当CPU内核处于空闲状态时,内置的节能逻辑就会启动,并尝试将内核从当前

    2025年7月13日
    0
  • idea文档注释设置_idea怎么设置注释模板

    idea文档注释设置_idea怎么设置注释模板IDEA自带的注释模板不是太好用,我本人到网上搜集了很多资料系统的整理了一下制作了一份比较完整的模板来分享给大家,我不是专业玩博客的,写这篇文章只是为了让大家省事。这里设置的注释模板采用Eclipse的格式,下面先贴出Eclipse的注释模板,我们就按照这种格式来设置:类注释模板:…

    2022年8月15日
    15
  • arm指令周期_arm指令sub

    arm指令周期_arm指令sub1.大部分算术运算和逻辑运算指令都是单周期的,例如加法、减法、位级运算和移位2.乘法指令根据操作数位数的不同,从2-5个周期都有可能。3.无条件跳转语句和跳转语句成功跳转,需要重新填充流水线,因此至少需要3个周期4.跳过条件不满足的指令只需要花1个周期(以上周期应该是指各指令包含的机器周期数)时钟周期:振荡周期,即CPU主频。机器周期:又称CPU周期,完…

    2022年8月31日
    3
  • Android之布局详解

    Android之布局详解四种基本布局

    2022年6月2日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号