android MySQL servlet_使用MySQL和Servlet编写Android接口样例

废话不多说,直接上代码。

一、服务端

0818b9ca8b590ca3270a3433284dd417.png

1、使用

0818b9ca8b590ca3270a3433284dd417.png连接MySQL数据库,具体配置如下:

在项目根目录下创建配置文件conf.mxl;代码如下:

2、配置mapper的方法,只要实现了数据库的增删查改功能;

select * from login where id=#{id}#

select * from login where name=#{name}#

useGeneratedKeys="true" keyProperty="id">

insert into login(name,password)

values(#{name},#{password})

update login set name=#{name},password=#{password} where id=#{id}

delete from login where id=#{id}

其中UserService.java是方便数据库查询而写的一个增删查改的一个接口

public User selectUserById(int id);//根据id查询用户信息

public List selectUsersByName(String userName);//根据用户名查询用户信息

public void addUser(User user);//插入用户

public void updateUser(User user);//更新用户

public void deleteUser(int id);//删除用户最后就是直接新建servlet,响应客户端,返回json就可以了,下面是Login的servlet:

public class Login extends HttpServlet {

private static final long serialVersionUID = 1L;

private static SqlSessionFactory sqlSessionFactory;

static {

try {

// mybatis的配置文件

String resource = "conf.xml";

// 使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)

InputStream is = Test2.class.getClassLoader().getResourceAsStream(

resource);

// 构建sqlSession的工厂

sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);

} catch (Exception e) {

e.printStackTrace();

}

}

public static SqlSessionFactory getSession() {

return sqlSessionFactory;

}

/**

* @see HttpServlet#HttpServlet()

*/

public Login() {

super();

}

@Override

public void init() throws ServletException {

// TODO Auto-generated method stub

super.init();

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse

* response)

*/

protected void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

this.doPost(request, response);

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse

* response)

*/

protected void doPost(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

// 设置响应内容类型

response.setContentType("text/html;charset=utf-8");

request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8");

// 实际的逻辑是在这里

PrintWriter out = response.getWriter();

Map map = new HashMap();

JSONObject jsonObject = new JSONObject();

String name = request.getParameter("name");

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

if (Login.getUserList(name, password)) {

map.put("message", "成功");

map.put("code", "100");

map.put("name", name);

map.put("password", password);

jsonObject.put("map", map);

out.write(jsonObject.toString());

} else {

map.put("message", "参数错误");

map.put("code", "101");

map.put("name", name);

map.put("password", password);

jsonObject.put("map", map);

out.write(jsonObject.toString());

}

}

@Override

public void destroy() {

super.destroy();

}

public static boolean getUserList(String userName, String password) {

SqlSession session = sqlSessionFactory.openSession();

try {

UserService userService = session.getMapper(UserService.class);

List users = userService.selectUsersByName(userName);

for (User user : users) {

if (user.getPassword().equals(password)) {

return true;

}

}

} finally {

session.close();

}

return false;

}

}

二、客户端就更简单了,

0818b9ca8b590ca3270a3433284dd417.png

为了方便我直接使用volley请求的,

private void Login() {

String url = "http://192.168.56.1:8080/TestLogin/Login";

StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener() {

@Override

public void onResponse(String response) {

Log.e("response", response);

JSONObject jsonObject;

try {

jsonObject = new JSONObject(response);

JSONObject jsonObject1 = jsonObject.getJSONObject("map");

String message = jsonObject1.getString("message");

Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();

} catch (JSONException e) {

e.printStackTrace();

}

}

}, null) {

@Override

protected Map getParams() throws AuthFailureError {

Map map = new HashMap<>();

map.put("name", name.getText().toString());

map.put("password", password.getText().toString().trim());

return map;

}

};

mQueue.add(request);

}我主要实现了注册和登陆这连个功能的,经本人测试,成功;

附上服务器代码:点击打开链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值