Android:目录

HttpThread.java
package com.example.saads;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import android.R.string;

public class HttpThread extends Thread {
String url;
String title;
String content;

public HttpThread(String url, String title, String content) {// TODO Auto-generated constructor stubthis.url = url;this.title = title;this.content = content;
}private void doGet() throws IOException {/*将title和content传给Tomcat服务器*/url=url+"?title="+title+"&content="+content;try {URL httpUrl = new URL(url);/*获取网络连接*/HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();/*设置请求方法为GET方法*/conn.setRequestMethod("GET");/*设置访问超时时间*/conn.setReadTimeout(5000);BufferedReader reader=new BufferedReader(new InputStreamReader(conn.getInputStream()));String str;StringBuffer sb=new StringBuffer();//读取服务器返回的信息while((str=reader.readLine())!=null){sb.append(str);}//把服务端返回的数据打印出来System.out.println("result"+sb.toString());} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*在run中调用doGet*/
@Override
public void run() {try {doGet();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}
}

}

ListActivity.java //记得ip地址改为自己电脑的IP地址
package com.example.saads;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONObject;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

class User {
private int id;
private String title;
private String content;

public int getId() {return id;
}public void setId(int id) {this.id = id;
}public String gettitle() {return title;
}public void settitle(String title) {this.title = title;
}public String getcontent() {return content;
}public void setcontent(String content) {this.content = content;
}@Override
public String toString() {return id + "、 标题:" + title +'\n'+"内容:" + content;}

}
public class ListActivity extends Activity {
ListView listView;
List list = new ArrayList();
Handler handler = new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
listView.setAdapter(new ArrayAdapter(
ListActivity.this, android.R.layout.simple_expandable_list_item_1, list));
break;

     default:break;}};
};@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_list);listView = (ListView) findViewById(R.id.list_view);
}public void click(View view) {new Thread() {public void run() {Log.e("hua", "enter run");try {URL url = new URL("http://192.168.1.108:8080/register/register"); Log.e("hua", "url is " + url.toString());HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();//httpURLConnection.connect();int code = httpURLConnection.getResponseCode();if (code == 200) {InputStream is = httpURLConnection.getInputStream();StringBuffer stringBuffer = new StringBuffer();byte[] buffer = new byte[1024];while (is.read(buffer) != -1) {stringBuffer.append(new String(buffer));}JSONObject object = new JSONObject(stringBuffer.toString());JSONArray array = object.getJSONArray("list");for (int i = 0; i < array.length(); i++) {JSONObject jb = array.getJSONObject(i);int id = jb.getInt("id");String title = jb.getString("title");String content = jb.getString("content");User user = new User();user.setId(id);user.settitle(title);user.setcontent(content);Log.e("hua", user.toString());list.add(user.toString());}Message message = new Message();message.what = 1;handler.sendMessage(message);}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}};}.start();
}

}

MainActivity.java 下面的网络地址改为自己的IP地址。
package com.example.saads;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener{
private TextView title;
private TextView content;
private Button signup;
private Button butlishi;

@Overrideprotected void onCreate(Bundle savedInstanceState)
{super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);title=(TextView) findViewById(R.id.etSgAccount);content=(TextView) findViewById(R.id.etSgPassword);signup=(Button) findViewById(R.id.baocun);butlishi=(Button) findViewById(R.id.lishi);butlishi.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubIntent intent = new Intent(MainActivity.this,ListActivity.class);startActivity(intent);}});}/*发起HTTP请求*/
public void onLogin(View v)
{String url="http://192.168.1.108:8080/register/MyServlet";new HttpThread(url, title.getText().toString(), content.getText().toString()).start();
}@Override
public void onClick(View arg0) {// TODO Auto-generated method stub}

}

界面很简单随便写了两个增加与查询的界面,写的很难看读者自行创作

max.xml

<?xml version="1.0" encoding="utf-8"?>

    <TextViewandroid:layout_width="match_parent"android:layout_height="30dp"android:textColor="#0F00C6"android:textSize="15sp"android:gravity="center"android:text="@string/edit_title_text"/></LinearLayout><RelativeLayoutandroid:id="@+id/body"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginLeft="10dp"android:layout_marginStart="10dp"android:layout_marginRight="10dp"android:layout_marginEnd="10dp"android:layout_marginBottom="10dp"><LinearLayoutandroid:id="@+id/edit_title_lay_lay"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><LinearLayoutandroid:id="@+id/edit_title_lay"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/text_tile"android:textSize="15sp"/><EditTextandroid:id="@+id/etSgAccount"android:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="15sp"android:hint="@string/edit_hint"/></LinearLayout></LinearLayout><Buttonandroid:id="@+id/lishi"android:layout_width="wrap_content"android:layout_height="45dp"android:layout_alignParentBottom="true"android:layout_alignParentStart="true"android:layout_alignParentLeft="true"android:text="@string/baocun"android:textColor="#0F00C6"android:textSize="20sp"/><EditTextandroid:id="@+id/etSgPassword"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_above="@id/lishi"android:layout_below="@id/edit_title_lay_lay"android:layout_marginTop="10dp"android:gravity="start"android:hint="@string/Password"android:textSize="10sp" /><Buttonandroid:id="@+id/baocun"android:layout_width="wrap_content"android:layout_height="45dp"android:layout_alignParentBottom="true"android:layout_alignParentEnd="true"android:layout_alignParentRight="true"android:text="@string/lishi"android:textColor="#0F00C6"android:textSize="20sp"android:onClick="onLogin"/></RelativeLayout>

list.xml

<RelativeLayoutandroid:id="@+id/body"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginLeft="10dp"android:layout_marginStart="10dp"android:layout_marginRight="10dp"android:layout_marginEnd="10dp"android:layout_marginBottom="10dp"><Buttonandroid:id="@+id/createButton"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"            android:textSize="20sp"android:layout_centerInParent="true"android:layout_alignParentBottom="true"android:onClick="click"android:text="查看记录"/><ListViewandroid:id="@+id/list_view"android:layout_above="@id/createButton"android:layout_width="match_parent"android:layout_height="match_parent"android:dividerHeight="1dp"></ListView>
</RelativeLayout>

注意事项:在AndroidManifest.xml里要加上

如下图样式

J2EE端
项目目录:

MyServlet extends.java
package com.ioss;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

import org.apache.catalina.Context;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

/**

  • Servlet implementation class MyServlet
    */
    @WebServlet("/MyServlet")
    public class MyServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**

    • @see HttpServlet#HttpServlet()
      */
      public MyServlet() {
      super();
      // TODO Auto-generated constructor stub
      }

    /**

    • @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 {

     String title = request.getParameter("title");String content = request.getParameter("content");PrintWriter out = response.getWriter();System.out.println("title" + ":" + title);System.out.println("content" + ":" + content);int rs ;String sql = "insert into jsbtable(id,title,content) values(null,?,?)";try {InitialContext ctx = new InitialContext();DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/jsb");java.sql.Connection conn =ds.getConnection();conn = ds.getConnection();PreparedStatement ps = conn.prepareStatement(sql);ps.setString(1, title);ps.setString(2, content);rs= ps.executeUpdate();} catch (SQLException se) {System.out.println("SQLException: " + se.getMessage());} catch (NamingException ne) {System.out.println("NamingException: " + ne.getMessage());}
    

    }
    }

DBUtil.java
package com.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DBUtil {
static String driver = “com.mysql.jdbc.Driver”;
static String url = “jdbc:mysql://localhost:3306/jsb”;
static String user = “root”;
static String password = “lmj1314”;
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
conn = DriverManager.getConnection(url,user, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}

public static void close(PreparedStatement preparedStatement,Connection connection) {if (preparedStatement != null) {try {connection.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if (connection != null) {try {connection.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}
public static void close(PreparedStatement preparedStatement,Connection connection,ResultSet resultSet) {if (preparedStatement != null) {try {connection.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if (connection != null) {try {connection.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if (resultSet != null) {try {resultSet.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

}

InsertUser.java
package com.jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;

public class InsertUser implements Dao {
Connection conn = DBUtil.getConnection();
PreparedStatement preparedStatement;
@Override
public void insertUser(User user) {
String title = user.gettitle();
String content = user.getcontent();
String sql = “insert into jsbtable(title,content) values(’” + title + “’,’” +content + “’)”;
System.out.println(sql);
try {
preparedStatement = conn.prepareStatement(sql);
preparedStatement.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DBUtil.close(preparedStatement, conn);

}@Override
public List<User> selectAll() {// TODO Auto-generated method stubreturn null;
}

}

SelectAll.java
package com.jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class SelectAll implements Dao {

@Override
public void insertUser(User user) {// TODO Auto-generated method stub
}@Override
public List<User> selectAll() {// TODO Auto-generated method stubConnection connection = DBUtil.getConnection();String sql = "select * from jsbtable";ResultSet resultSet = null;PreparedStatement preparedStatement = null;List<User> list = new ArrayList<>();try {preparedStatement = connection.prepareStatement(sql);resultSet = preparedStatement.executeQuery();while (resultSet.next()) {User myuser = new User();myuser.setId(resultSet.getInt(1));myuser.settitle(resultSet.getString(2));myuser.setcontent(resultSet.getString(3));list.add(myuser);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}DBUtil.close(preparedStatement, connection, resultSet);return list;
}

}

User
package com.jdbc;

import java.util.Date;

public class User {
private int id;
private String title;
private String content;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String gettitle() {
return title;
}
public void settitle(String title) {
this.title = title;
}
public String getcontent() {
return content;
}
public void setcontent(String content) {
this.content = content;
}
@Override
public String toString() {
return “User [id=” + id + “, title=” + title + “, content=” + content
+ “]”;
}

}

Register .java
package com.register;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.ws.Response;

import net.sf.json.JSONObject;

//import com.jdbc.InsertUser;
import com.jdbc.SelectAll;
import com.jdbc.User;

public class Register extends HttpServlet {
List list;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
SelectAll selectAll = new SelectAll();
list = selectAll.selectAll();

 JSONObject jsonObject=new JSONObject();//jsonObject.put(key, value);jsonObject.put("list", list);resp.setCharacterEncoding("utf-8");PrintWriter printWriter = resp.getWriter();printWriter.write(jsonObject.toString());// TODO Auto-generated method stub/*PrintWriter pWriter = resp.getWriter();pWriter.write(resp.getCharacterEncoding());String username = req.getParameter("username");String password = req.getParameter("password");System.out.println("------" + username + "," + password  + "--------");if (username == null || password == null || username.equals("")|| password.equals("")) {return;}username = new String(username.getBytes("iso-8859-1"),"utf-8");password = new String(password.getBytes("iso-8859-1"),"utf-8");username = URLDecoder.decode(username, "utf-8");password = URLDecoder.decode(password, "utf-8");System.out.println("------" + username + "," + password  + "--------");User user = new User();user.setName(username);user.setPassword(password);InsertUser insertUser = new InsertUser();insertUser.insertUser(user);*/
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {/*PrintWriter pWriter = resp.getWriter();pWriter.write("hello");*/doGet(req, resp);
}

}

**配置Tomcat数据库连接池:
index.html
index.htm
index.jsp

DataServiceServlet
com.ioss.MyServlet

DataServiceServlet
/DataServiceServlet

DB Connection
jdbc/jsb
javax.sql.DataSource
Container

**

**打开Tomcat的context.xml加上如下图

我的MYSQL数据库中数据库名为JSB
表名为jsbtable
数据库密码为lmj1314
读者根据自己的数据库更改
**

MYSQL数据库设计

好了一切完毕!与老学长一起看看运行效果吧!
1、先看看MYSQL数据库里有什么吧!下图是初始的数据库数据

2、启动J2EE的Tomcat服务器

3、运行Android 输入数据并保存

J2 EE的效果:

再看看数据库是不是保存进去了呢

Android端查看历史记录

看看J2EE端从数据库获取到的数据

原码下载地址:https://download.csdn.net/download/qq_40529129/10993224

Android前端通过Http协议与J2EE后端数据交互。工具eclipse、MySQL、Tomcat。通过JoSn获取数据。Android端实现对MySQL增删改查功能。相关推荐

  1. Android 中编写一个简易购物车,商品包括商品名称,单价,数量,可以对商品进行增删改查功能。(ArrayList,SQLite)

    Android 中编写一个简易购物车,商品包括商品名称,单价,数量,可以对商品进行增删改查功能.(ArrayList,SQLite) 布局(activity_main.xml): <?xml v ...

  2. SpringBoot的开发(3)--前端页面的搭建、前端页面的编写、分页和增删改查功能的实现...

    前端页面的搭建 首先我们在resources包下新建一个文件夹static,SpringBoot默认会去把static包下的文件做一个路由 然后在static包下新建一个HTML File类型的文件, ...

  3. mock模拟的数据能增删改查吗_Mock.js模拟数据,脱离后端独立开发,实现增删改查功能...

    在目前容近对端手近对端手近对端手近对端手近我们的生产实际中,后端的接口往往是较晚才会出来,并且还要写接口文档,于是我们的前端的许多开发都要等到接口给我们才能进行,这样对于我们前端来说显得十分的被动,于 ...

  4. web前端期末大作业 基于HTML+CSS+JavaScript角色管理(带增删改查功能)

    ⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIV+CSS 布局制作,HTML+CSS网页设计期末课程大作业 | 学生管理系统网页设计 | OA管理系统 | 后台管理模板 | ...

  5. Android安卓期末大作业 新闻app 实现注册登录增删改查功能

    Android安卓期末大作业 新闻app (文末附下载链接) app情况如下图所示: 点我下载 https://download.csdn.net/download/weixin_43474701/7 ...

  6. datatables增删改查php,jQuery+datatables插件实现Ajax加载数据与增删改查功能示例_白峰_前端开发者...

    本文实例讲述了 这里给大家分享一下我在项目中用datatables实现ajax加载数据与增删改查 注意,需要引入  搜索  新增  编辑  删除 职业姓名性别爱好 //点击查找 $(" ...

  7. Vue 脚手架结合 SpringBoot 构建前后端分离入门项目(实现增删改查)

    Vue 脚手架构建前后端分离项目 项目简介与预览 数据库建表 主要模块代码 index.js 路由代码 User.vue 用户组件 RAP2 创建接口进行测试 切换路由组件的显示: this.$rou ...

  8. android连接sqlite进行简单的增删改查和事务管理

    为什么80%的码农都做不了架构师?>>>    Android连接数据库sqlite并进行简单的表创建和增删改查功能参考代码,使用Android单元测试进行验证,首先新建项目进行配置 ...

  9. Android中数据库的一些操作(增删改查)

    提起Android的开发,就不得不提数据库,几乎每个App中都会用到Sqlit数据库存储一些数据,小编闲暇时期,写了一个小demo关于数据库的增删改查,之前也介绍过数据库的一个开源框架ORMLite, ...

最新文章

  1. 计算机数字信号原理,计算机网络通信原理数字信号的基带传输.ppt
  2. 检查本地服务器是否配置成功
  3. python leetcode_Leetcode 常用算法 Python 模板
  4. ros创建工作空间_ROS入门学习之七Moveit机械臂控制
  5. 一个简单的python日志服务器
  6. 爬虫-xpath的用法强化
  7. vs怎么写html5页面,怎么使用vscode写html5
  8. Spring Boot 2 - 初识与新工程的创建
  9. python如何调用阿里云接口_Python调用阿里云API接口实现自定义功能【二】——DescribeInstance窗口操作...
  10. 2. crontab 的使用
  11. 器械传递的方法_天津304不锈钢传递窗报价_碧海云天
  12. 王家林 Scala 深入浅出实战经典视频教程
  13. ARM base instruction -- lsl asl lsr asr ror rrx
  14. freeswitch安装1.6
  15. coreldraw x7对齐快捷键_CorelDraw X7中文版快捷键大全CDR教程
  16. MATLAB对CT图读取,写入
  17. linux 注释批处理,Linux_批处理 正则表达式(findstr) 整理,语法 findstr [/b] [/e] [/l] [/r] [/s] - phpStudy...
  18. photoshp案例技巧-彭亮-专题视频课程
  19. 【论文速读】自动解题+认知推理+常识发现
  20. Android视频编辑器(四)通过OpenGL给视频增加不同滤镜效果

热门文章

  1. 四, Scala 伴生对象, 特质
  2. 叮叮获取所有用户信息_钉钉小程序获取用户信息
  3. oracle userenv('language'),USERENV()获取Oracle环境信息
  4. Android开发实例-Android平台手机新闻客户端
  5. aoc显示器2k165hz测试
  6. 开发必备的最高100个 Flutter 开源精品项目
  7. uni-app:实现PayPal支付功能
  8. 虚拟信用卡绑定paypal验证的教程
  9. 二值图像轮廓追踪算法
  10. Dango 之认证组件Auth模块