android MySQL servlet_简单的Android+MySQL+Servlet登陆注册演示

title: Android+tomcat+MySQL实现简单的登录注册

准备工作

事先准备好开发环境:

编译器:myeclipse+Android studio;

数据库:MySQL

服务器:Tomcat

服务器端环境新建一个Java Web Project;

把必要的包先加入到lib然后在add to build path(因为需要用到数据库和json格式数据传输所以需要用到这两个jar包点击下载)(fastjson-1.2.22.jar、mysql-connector-java-5.1.45-bin.jar,不能下载的自己去找包也是一样的)

建立数据库,可以采用Navicat可视化的操作数据库,也可以采用命令行指令操作数据库。

这样服务器端的环境就准备好了,可以开始准备编写代码:

链接数据库package Util;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import com.mysql.jdbc.Connection;import com.mysql.jdbc.Statement;public class DatabaseUtil {public static final String TABLE_ACCOUNT = "userInforma";//用户信息表// connect to MySql database  public static Connection getConnect() {

String url = "jdbc:mysql://localhost:3306/demo?autoReconnect=true&useUnicode=true&characterEncoding=gbk&mysqlEncoding=utf8";Connection connecter = null;  try {

Class.forName("com.mysql.jdbc.Driver"); // java反射,固定写法  connecter = (Connection) DriverManager.getConnection(url, "root", "*******");//******是自己的密码 LogUtil.log("创建数据库连接"); } catch (ClassNotFoundException e) {

e.printStackTrace();  } catch (SQLException e) {

System.out.println("SQLException: " + e.getMessage());

System.out.println("SQLState: " + e.getSQLState());

System.out.println("VendorError: " + e.getErrorCode());   }  return connecter;  }  public static ResultSet query(String querySql) throws SQLException {

Statement stateMent = (Statement) getConnect().createStatement();return stateMent.executeQuery(querySql);}}

用来专门连接数据库的类。、自己编写的日志打印类:package Util;//自定义的日志打印工具类public class LogUtil {public static void log(String message){

System.out.println(message);}}

用户类package Servlet;public class User {private int id;//序号private String account;//手机号码private String name;//昵称private String password;//密码private String sex;//性别private String birth;//生日public User(){}public String Setuser(){return "id:"+id+",账户:"+account+",昵称:"+name+",密码:"+password+",性别:"+sex+",生日:"+birth;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getAccount() {return account;}public void setAccount(String account) {this.account = account;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getBirth() {return birth;}public void setBirth(String birth) {this.birth = birth;}}

为每一个用户新建一个用户对象的用户类

注册package Servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.ResultSet;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.alibaba.fastjson.JSON;import com.mysql.jdbc.Connection;import com.mysql.jdbc.Statement;import Util.DatabaseUtil;import Util.LogUtil;/**

* Servlet implementation class RegisterServlet

*/@WebServlet("/RegisterServlet")public class RegisterServlet extends HttpServlet {private static final long serialVersionUID = 1L;   /**

* @see HttpServlet#HttpServlet()

*/public RegisterServlet() {super();// TODO Auto-generated constructor stub}/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置一个用来返回的状态码int code=0;//接受传进来的参数String account = request.getParameter("userAccount");

String password = request.getParameter("userPassword");String name=request.getParameter("userName");//打印接受的参数LogUtil.log("userAccount:"+account + ";userPassword:" + password+";userName:"+name);

//创建链接Connection connect = DatabaseUtil.getConnect();  try {

Statement statement = (Statement) connect.createStatement();

//创建指令String sql = "select userAccount from " + DatabaseUtil.TABLE_ACCOUNT + " where userAccount='" + account + "'";

LogUtil.log(sql);  //访问数据库ResultSet result = statement.executeQuery(sql);  if (result.next()) { // 能查到该账号,说明已经注册过了  code = 300;

//"该账号已存在";  } else {

//插入数据指令String sqlInsert = "insert into " + DatabaseUtil.TABLE_ACCOUNT + "(userAccount, userPassword, userName) values('"  + account + "', '" + password + "', '"+name+"')";

LogUtil.log(sqlInsert);  if (statement.executeUpdate(sqlInsert) > 0) { // 否则进行注册逻辑,插入新账号密码到数据库  code = 400;  //"注册成功";  } else {

code =500;  //"注册失败";  }  }  } catch (SQLException e) {

e.printStackTrace();  }

response.setContentType("text/html;charset=utf-8"); // 设置响应报文的编码格式

PrintWriter out = response.getWriter();//把数据转换成JSON格式的字符串传递到APPString json=JSON.toJSONString(code);

out.println(json);

out.flush();

out.close();}/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

会得到状态码:400

现在数据库就会得到一条新的数据。

登录package Servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.ResultSet;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.alibaba.fastjson.JSON;import com.mysql.jdbc.Connection;import com.mysql.jdbc.Statement;import Util.DatabaseUtil;import Util.LogUtil;/**

* Servlet implementation class LoginServlet

*/@WebServlet("/LoginServlet")public class LoginServlet extends HttpServlet {private static final long serialVersionUID = 1L;   /**

* @see HttpServlet#HttpServlet()

*/public LoginServlet() {super();// TODO Auto-generated constructor stub}/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {int code = 0;

String account = request.getParameter("userAccount");

String password = request.getParameter("userPassword");

LogUtil.log("userAccount:"+account + ";userPassword:" + password);

Connection connect = DatabaseUtil.getConnect();  try {

Statement statement = (Statement) connect.createStatement();

String sql = "select userAccount from " + DatabaseUtil.TABLE_ACCOUNT +" where userAccount='" + account  + "' and userPassword='" + password + "'";

LogUtil.log(sql);

ResultSet result = statement.executeQuery(sql);  if (result.next()) {

// 能查到该账号,说明已经注册过了  code = 200;

//"登陆成功";  } else {

code = 100;

//"登录失败,密码不匹配或账号未注册";  }  } catch (SQLException e) {

e.printStackTrace();  }

response.setContentType("text/html;charset=utf-8"); // 设置响应报文的编码格式

PrintWriter out = response.getWriter();String json=JSON.toJSONString(code);

out.println(json);

out.flush(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值