Android端同之前
服务器端:
entity存放实体类
dao 数据访问对象,dao包中存放所有数据库相关操作,增删查改等
util 工具包,加载驱动链接数据库等
PreparedStatment 有两个方法executeUpdate(),用于进行更新操作
executeQuery(),用于进行查询操作
命名规则如:cn.zt.dao,下图错
User:
可以有多个构造函数,这里下面会有只存放一个password得情况
package entity;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User(String username, String password) {
super();
this.username = username;
this.password = password;
}
public User(String password) {
super();
this.password = password;
}
}
DBHelper:
没有成功登陆数据库则会报 空指针异常
下面不需要加rs.close()否则rs会释放掉,rs这个结果集中得数据存放到一个List中
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBHelper {
private Connection conn;
private PreparedStatement ps;
private ResultSet rs;
private void getConnection(){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.out.println("Error: unable to load driver class!");//可以加入异常输出信息
e.printStackTrace();
}
String url = "jdbc:mysql://localhost:3306/test";
try {
conn = DriverManager.getConnection(url,"root","7271603Zt");
} catch (SQLException e) {
System.out.println("Error: unable to login database");//可以加入异常输出信息
e.printStackTrace();
}
}
public void close(){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
if(ps!=null){
try {
ps.close();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
public ResultSet executePassword(String sql,Object...objects){//objects为一个参数数组
this.getConnection();
try {
ps = conn.prepareStatement(sql);
if(objects!=null){
for(int i=0;i<objects.length;i++){
ps.setObject(i+1, objects[i]);//填充下面LoginDao中sql语句中的?号的值
}
}
return rs = ps.executeQuery();
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
return null;
}
}
LoginDao:
这里rs用完后需要进行close
package dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import entity.User;
import util.DBHelper;
public class LoginDao extends DBHelper {
public List<User> getUserPassword(String usernmae){
List<User> list = new ArrayList<User>();
String sql = "select password from user where username =?";
ResultSet rs = this.executePassword(sql, usernmae);
try {
while(rs.next()){
list.add(new User(rs.getString(1)));
}
} catch (SQLException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}finally{this.close();}
return list;
}
}
Servlet:
android端传json格式数据,post
package servlet;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
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 dao.LoginDao;
import entity.User;
import net.sf.json.JSON;
import net.sf.json.JSONObject;
/**
* Servlet implementation class login
*/
@WebServlet("/login")
public class login extends HttpServlet {
private String name=null;
private String pwd=null;
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public login() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
name=request.getParameter("name");
pwd=request.getParameter("pwd");
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
System.out.println("name:"+name+" pwd:"+pwd);
System.out.println(name.length());
LoginDao loginDao = new LoginDao();
List<User> list = loginDao.getUserPassword(name);
String pp=list.get(0).getPassword();
System.out.println(pp);
if(("admin").equals(name)&&(pwd).equals(pp)){
System.out.println("true");
out.print("true");
}else{
System.out.print("false");
out.print("false");
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
// response.setContentType("text/html");
// response.setCharacterEncoding("utf-8");
//
// name = request.getParameter("username");
// pwd = request.getParameter("password");
// System.out.println("name:"+name+" pwd:"+pwd);
// System.out.println(name.length());
//
// PrintWriter out = response.getWriter();
//
// if(("admin").equals(name)&&("admin").equals(pwd)){
// System.out.println("true");
// out.print("true");
//
// }else{
// System.out.print("false");
// out.print("false");
// }
String jsonString = getRequestBody(request);
System.out.println(jsonString);
JSONObject jsonObj = JSONObject.fromObject(jsonString);
System.out.println(jsonObj);
pwd = jsonObj.getString("password").toString();
name = jsonObj.getString("username");
System.out.println("name:"+name+" pwd:"+pwd);
System.out.println(jsonObj.getString("username"));
System.out.println(name.length());
PrintWriter out = response.getWriter();
LoginDao loginDao = new LoginDao();
List<User> list = loginDao.getUserPassword(name);
String pp=list.get(0).getPassword();
System.out.println(pp);
if(("admin").equals(name)&&(pwd).equals(pp)){
System.out.println("true");
out.print("true");
}else{
System.out.print("false");
System.out.print("ff");
out.print("false");
}
// String jsonStr = "{\"password\":\"\",\"username\":\"张三\"}";
// System.out.println(jsonStr);
// JSONObject jsonObj2 = JSONObject.fromString(jsonStr);
// String uu = jsonObj2.getString("username");
// String pp = jsonObj2.optString("password");
// System.out.println(uu);
// System.out.println(pp);
}
public static String getRequestBody(HttpServletRequest req) throws IOException {
BufferedReader reader = req.getReader();
String input = null;
StringBuffer requestBody = new StringBuffer();
while((input = reader.readLine()) != null) {
requestBody.append(input);
}
return requestBody.toString();
}
}