使用MySQL和Servlet编写Android接口样例
2016-02-18 16:32
459 查看
废话不多说,直接上代码。
一、服务端
1、使用
连接MySQL数据库,具体配置如下:
在项目根目录下创建配置文件conf.mxl;代码如下:
二、客户端就更简单了,
为了方便我直接使用volley请求的,
附上服务器代码:点击打开链接
一、服务端
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(); } @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<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()); } } @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<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); }我主要实现了注册和登陆这连个功能的,经本人测试,成功;
附上服务器代码:点击打开链接
相关文章推荐
- Android中当加载大图片时进行缩放
- Android开发笔记(六十六)自定义对话框
- Android View中getViewTreeObserver().addOnGlobalLayoutListener()
- AndroidManifest.xml文件解析
- recyclerview的一些用法
- Android开发经验总结
- “Android Studio 真机调试时LogCat无显示问题”的解决
- LinkedHashMap特性 按插入和访问顺序排序
- Android使用aidl来绑定远程服务
- Android 进程间通信之AIDL
- android重复的文件复制APK META-INF许可证错误记录
- Android Studio添加assets文件夹
- Android 拍照获取图片并剪切
- 最全的android开发资料大集合
- 关于android postDelayed
- 阅读《Android 从入门到精通》(26)——上下文菜单
- Android 实现预览,录像,拍照
- android 判断横竖屏的方法
- 清单文件 installLocation简析
- Android相机开发那些坑