Android+Servlet+MySQL实现仿兼职地带app



首先这个仿自兼职地带,只写了部分功能并且不作任何商业用途。

转载请注明出处:http://blog.csdn.net/qq_31288799/article/details/51382804

本文适合有一定开发经验的读者。

东西虽然很简单,但是毕竟算是前后端一起做,工作量还是不算小。这也是帮人家写的毕业项目,算是顺便练练手吧。

这里只说明登录是怎么实现的,感兴趣的朋友可以加q:446558196

废话不多说,先看效果图:

好了,一些主要的界面效果就是这样了,不要喷界面、细节和icon。。。我不是美工

第一步:配置环境及开发工具

这里就不解释怎么配了,说明一下需要什么(自行百度):mysql数据库(我用的navicat),tomcat,eclipse(javaEE版),android ide(这里我用的android studio来开发)。

第二步:搭建数据库

这里只建了3张表(职位表、用户表、报名表),每张表有一些字段。既然只说登录,那么只需要用户表并且有id、username、password这3个字段就OK。

第三步:创建服务器

这是本文主要的部分之一。

首先,得创建一个web项目,步骤如下:

第一次创建的话图中标1处会是空的,那么需要创建一个,选择下载好的tomcat根目录就好,接下来一直点next就好,最后一步有个勾选generate web.xml 什么的,记得选上。

OK,接下来就是创建servlet了。

//这种注册方式可能需要tomcat7.0以上,其中前一个名称随意,后一个是访问路径
@WebServlet({ "/JzddLoginServlet", "/login" })
public class JzddLoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public JzddLoginServlet() {
		super();
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		super.doGet(request, response);
		// 获得url中参数
		String userName = request.getParameter("username");
		String password = request.getParameter("password");
		System.out.println("userName:" + userName);
		System.out.println("password:" + password);

		User user = new User();
		user.setUserName(userName);
		user.setPassword(password);
		LoginDao dao = new LoginDao();
		// 登录
		ResponceLogin object = dao.excuteLogin(user);
		// 返回结果
		response.getWriter().print(new Gson().toJson(object));
		response.getWriter().close();
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}
接下来是连接数据库的dao

public class LoginDao extends BaseDao {

	/**
	 * 登入 账号密码错误返回-1,登入成功返回0
	 * 
	 * @param user
	 * @return
	 */
	public ResponceLogin excuteLogin(User user) {
		ResponceLogin object = new ResponceLogin();
		ResponceUserInfo userInfo = new ResponceUserInfo();
		String sql = "select username,password from user where username = ? and password = ?";
		//准备执行sql语句
		PreparedStatement statement = getPreparedStatement(sql);
		ResultSet resultSet = null;
		try {
			//完善sql语句的值
			statement.setString(1, user.getUserName());
			statement.setString(2, user.getPassword());
			//执行sql语句
			resultSet = statement.executeQuery();
			//解析结果
			if (resultSet.next()) {// 登入成功
				object.setLoginState(0);
				sql = "select * from user where username = ?";
				statement = getPreparedStatement(sql);
				statement.setString(1, user.getUserName());
				close(resultSet, null, null);
				resultSet = statement.executeQuery();
				if (resultSet.next()) {
					userInfo.setUserid(resultSet.getString("userid"));
					userInfo.setName(resultSet.getString("name"));
					userInfo.setSex(resultSet.getString("sex"));
					userInfo.setPhone(resultSet.getString("phone"));
					userInfo.setCity(resultSet.getString("city"));
					userInfo.setPicture(resultSet.getString("picture"));
					userInfo.setCredit(resultSet.getString("credit"));
					userInfo.setZhifubao(resultSet.getString("zhifubao"));
					userInfo.setMoney(resultSet.getString("money"));
					userInfo.setHeight(resultSet.getString("height"));
					userInfo.setSchool(resultSet.getString("school"));
					userInfo.setEducation(resultSet.getString("education"));
					userInfo.setIntroduce(resultSet.getString("introduce"));
				}
			} else {
				object.setLoginState(-1);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			close(resultSet, statement, conn);
		}
		object.setUserInfo(userInfo);
		return object;
	}
}
具体连接数据库在basedao里

public class BaseDao {
	//连接数据库需要
	public static final String DRIVER = "com.mysql.jdbc.Driver";
	public static final String URL = "jdbc:mysql://localhost:3306/jzdd";
	public static final String USER_NAME = "root"; 
	public static final String PASSWORD = "root"; 
	
	static{
		try {
			Class.forName(DRIVER);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		
	}
	//连接
	protected Connection conn;
	public BaseDao() {
		conn = getConn();
	}
	/**
	 * 建立连接
	 * @return
	 */
	public  Connection getConn(){
		Connection conn = null;
		try {
			conn = (Connection) DriverManager.getConnection(
					URL, USER_NAME, PASSWORD);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}
	/**
	 * 准备执行sql语句
	 * @param sql
	 * @return
	 */
	public  PreparedStatement getPreparedStatement(String sql){
		PreparedStatement prepareStatement = null;
		try {
			prepareStatement = conn.prepareStatement(sql);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return prepareStatement;
	}
	/**
	 * 关闭连接
	 * @param resultSet
	 * @param statement
	 * @param conn
	 */
	public  void close(ResultSet resultSet,PreparedStatement statement,Connection conn){
		if(resultSet != null){
			try {
				resultSet.close();
				resultSet = null;
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		if(statement != null){
			try {
				statement.close();
				statement = null;
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		if(conn != null){
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

OK,到这里登录功能服务器端就完成了,接下来可以跑一下服务器,不过要记得打开mysql,选择run on server。在弹出来的窗口里按如下输入(你的数据库中得有这个用户),若返回则表示成功。



   第四步:创建app

待续。



已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页