使用MySQL和Servlet编写Android接口样例
来源:互联网 发布:js toggle() 编辑:程序博客网 时间:2024/06/05 16:24
废话不多说,直接上代码。
一、服务端
1、使用连接MySQL数据库,具体配置如下:
在项目根目录下创建配置文件conf.mxl;代码如下:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><environments default="development"><environment id="development"><transactionManager type="JDBC" /><!-- 配置数据库连接信息 --><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/testdemo" /><property name="username" value="root" /><property name="password" value="yizeng" /></dataSource></environment></environments><mappers><!-- 注册userMapper.xml文件--><mapper resource="com/zy/mapping/userMapper.xml" /></mappers></configuration>2、配置mapper的方法,只要实现了数据库的增删查改功能;
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.zy.test.UserService"><!-- id和parameterType分别与UserService接口中的addUser方法的名字和参数类型必须一致。 --><!-- 根据id查询得到一个user对象 --><select id="selectUserById" parameterType="int" resultType="com.zy.bean.User">select * from login where id=#{id}#</select><select id="selectUsersByName" parameterType="string" resultType="com.zy.bean.User">select * from login where name=#{name}#</select><!--执行增加操作的SQL语句。 useGeneratedKeys设置为"true"表明要MyBatis获取由数据库自动生成的主键; keyProperty="id"指定把获取到的主键值注入到User的id属性--> <insert id="addUser" parameterType="com.zy.bean.User" useGeneratedKeys="true" keyProperty="id"> insert into login(name,password) values(#{name},#{password}) </insert> <update id="updateUser" parameterType="com.zy.bean.User" > update login set name=#{name},password=#{password} where id=#{id} </update> <delete id="deleteUser" parameterType="int"> delete from login where id=#{id} </delete></mapper>其中UserService.java是方便数据库查询而写的一个增删查改的一个接口
public User selectUserById(int id);//根据id查询用户信息public List<User> 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();}@Overridepublic void init() throws ServletException {// TODO Auto-generated method stubsuper.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<String, String> map = new HashMap<String, String>();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());}}@Overridepublic void destroy() {super.destroy();}public static boolean getUserList(String userName, String password) {SqlSession session = sqlSessionFactory.openSession();try {UserService userService = session.getMapper(UserService.class);List<User> 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<String>() { @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<String, String> getParams() throws AuthFailureError { Map<String, String> map = new HashMap<>(); map.put("name", name.getText().toString()); map.put("password", password.getText().toString().trim()); return map; } }; mQueue.add(request); }我主要实现了注册和登陆这连个功能的,经本人测试,成功;
附上服务器代码:点击打开链接
1 0
- 使用MySQL和Servlet编写Android接口样例
- 如何使用Jdbc和Servlet操作Mysql数据库,编写Android登录注册服务端?
- Struts2 访问servlet接口和分文件编写配置文件
- 使用MyEclipse编写Servlet
- servlet编写和配置
- 使用servlet和Java Bean访问MySQL
- 使用servlet和Java Bean访问MySQL
- 使用servlet和Java Bean访问MySQL
- Servlet中的Filter过滤器的介绍和使用 编写过滤器
- Java Servlet编写Json自定义数据接口
- 使用MyEclipse编写servlet程序
- 使用servlet完成用户登录(http,servlet生命周期和相关配置,路径编写)
- Android 网络框架的编写和使用
- Jsp + servlet + mysql 使用
- Servlet基本类和接口
- Servlet主要接口和类
- servlet常用类和接口
- Servlet接口,JSP和转发
- java System.getProperty()用法
- hdu5625 Clarke and chemistry
- 解决vim文件显示乱码问题
- .NET 环境中使用RabbitMQ
- lintcode: Fast Power
- 使用MySQL和Servlet编写Android接口样例
- MySQL INNER JOIN
- DiskLruCache的简单用法 .
- 泰国餐厅网站参考-hsj
- OGR数据模型
- 深入理解Java:注解(Annotation)基本概念
- 矩形嵌套(动态规划)
- Java -Xms -Xmx -Xss -XX:MaxNewSize -XX:MaxPermSize含义记录
- 简单的EasyUI登录界面