android MySQL servlet_使用MySQL和Servlet编写Android接口样例
废话不多说,直接上代码。
一、服务端
1、使用
连接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;
}
}
二、客户端就更简单了,
为了方便我直接使用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);
}我主要实现了注册和登陆这连个功能的,经本人测试,成功;
附上服务器代码:点击打开链接
android MySQL servlet_使用MySQL和Servlet编写Android接口样例相关推荐
- android 用swift开发,使用 Swift 语言编写 Android 应用入门
Swift标准库可以编译安卓armv7的内核,这使得可以在安卓移动设备上执行Swift语句代码.本文解释了如何在你的安卓手机上运行一个简单的"hello,world"程序. 常见问 ...
- Android.mk 编译c语言,编写 android.mk 中 LOCAL_C_INCLUDES 的技巧
编写 android.mk 中 LOCAL_C_INCLUDES 的技巧 在编写android.mk的过程中,免不了要修改LOCAL_C_INCLUDES来设置头文件的include目录, 一般写成这 ...
- 百度地图 Android SDK - 检索功能使用的简单演示样例
百度地图 SDK 不仅为广大开发人员提供了炫酷的地图展示效果.丰富的覆盖物图层,更为广大开发人员提供了多种 LBS 检索的能力. 通过这些接口,开发人员能够轻松的訪问百度的 LBS 数据,丰富自己的移 ...
- 安卓APP注册登录+Tomcat服务器搭建+MySQL数据库建立+加密传输+servlet后端内容编写及部署到Tomcat服务器
认真学习安卓也有三四个月了,现在记录一下关于用户的各种操作. 1.安卓APP的实现: 先看一下展示动图吧! 首先是登录界面的xml---------activity_mian.xml <?xml ...
- Android前端通过Http协议与J2EE后端数据交互。工具eclipse、MySQL、Tomcat。通过JoSn获取数据。Android端实现对MySQL增删改查功能。
Android:目录 HttpThread.java package com.example.saads; import java.io.BufferedReader; import java.io. ...
- 最详细Android连接远程的MySQL数据库实例
最详细Android连接远程的MySQL数据库实例 tags:MySQL 文章目录 最详细Android连接远程的MySQL数据库实例 前言 环境配置 查看MySQL:version方法 新建Andr ...
- 大众点评景点美食楼盘点评(Android,AndroidStudio,IDEA,SpringBoot,Mysql)
今天,我们发布一套[大众点评Android系统], 这套系统包含完整的源代码和数据库脚本,根据我们提供的开发工具和运行视频教程,拿到代码后,很快就能把项目跑起来,同时如果您对项目代码技术不是很熟悉也没 ...
- win10 下Android 连接电脑本地MySQL数据库
1.确认MySQL服务器防火墙关闭,若关闭,则下一步,若未关闭,进行设置 具体方法为 控制面板->系统和安全>Windows Defender 防火墙->高级设置->入站规则 ...
- android安装Mysql服务,android手机可以作为mysql的服务器
资源连接:https://download.csdn.net/download/vlong5461/10413650点击打开链接 1.解压到android手机的目录,如data/data/mysql ...
- 在tomcat下配置mysql的数据库连接池及Servlet
这几天在tomcat下配置mysql的数据库连接池,再使用servlet进行数据访问.碰到不少问题,百度查了不少资料,不是很完整,试了很久,总算调通了.记录下来,供大家参考. Tomcat和MySQL ...
最新文章
- 详解 | 自动泊车中鱼眼相机实现车位线感知
- 成就解锁:BCH修复了所有常见的第三方交易延展性矢量
- vivo自带便签新版_vivo手机笔记在哪里及如何用vivo手机做笔记?
- Python 让所有奇数都在偶数前面,而且奇数升序排列,偶数降序排序
- Component Configuration.js - 所有支持属性列表 - configuration priority
- 如何:带有Thymeleaf和Spring Boot的Java 8日期和时间
- java中文处理_Java的中文乱码处理
- Java基础--反射
- centos7查看进程ps_还在一台台登录网络设备查看日志吗?你太low了
- 甘肃电大计算机考试题2007,甘肃电大2021年春季《C++语言程序设计(专)》形成性考核二满分...
- Atitit mybatisutil 模块测试功能列表 1.1. mybatis读取mapper配置的sql语句 使用xml类库	1 1.2. Mybatis替换参数工具类型	3 Itfs pn
- 机器学习- 吴恩达Andrew Ng Week11 知识总结 Photo OCR
- 《Java程序设计基础 第3版》pdf 附下载链接
- delphi android 串口通信,Delphi 7:操作串口(ComPort)
- 为什么float只有四个字节,存储范围却大于有八个字节的long类型?
- 2022届秋招的总结与体会
- Centos7 [Errno 14] curl#37 - Couldn't open file /mnt/Packages/repodata/repomd.xml
- CSS弹性盒子布局flex
- 超级简单的K线合成方法
- 微信小程序dialog使用
热门文章
- 网络人“时间都去哪儿了”
- sqlServer数据库自动备份
- MySQL基础与操作
- StringJoiner
- Android Fragment学习
- 10分钟学会spring代理模式以及应用原理,个人专用,不适合借鉴,请关闭文章
- php怎么判断文件在下载,php文件下载显示找不到文件怎么办
- pythonrequest函数怎么编写出来的_python requests包的request()函数中的参数-params和data的区别简介...
- C# Dictionary 的几种遍历方法
- win7 ASP.NET 2.0 部署