1. 怎样使android程序调用mysql数据库里面的数据
一、首先要加载JDBC驱动包。
步骤:右击项目找到build path->configure build path->libraries——>add External JARs添加驱动包
二、写测试类:TestCon.java
(在此之前,首先
1.在自己的电脑上Mysql下确定账户是"root",密码是"123456";
2.进入账户,创建数据库cui;
3.在数据库cui下面,创建表test1 包含_id(int 类型自动增加) username(String 类型)、password(String 类型);
4.在表中插入数据,以便显示
)
1 package com.test.an;
2
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.PreparedStatement;
6 import java.sql.ResultSet;
7 import java.sql.SQLException;
8
9
10 public class TestCon1{
11 public static void main(String[] args)
12 {
13 Connection con = null;
14 String sql;
15 PreparedStatement pre;
16 ResultSet rs;
17
18 try {
19 String driver="com.mysql.jdbc.Driver";
20 Class.forName(driver);
21
22 String url="jdbc:mysql://localhost:3306/cuiuseUnicode=true&characterEncoding=latin1";//utf-8也行
23 con = DriverManager.getConnection(url, "root", "123456");
24
25 sql = "select _id,username,password from test1" ;
26 pre = con.prepareStatement(sql);
27
28 rs = pre.executeQuery();
29 while(rs.next()){
30 int id = rs.getInt(1);
31 String username = rs.getString(2);
32 String password = rs.getString(3);
33
34 System.out.println("id="+id+";username="+username+";password="+password);
35 }
36 con.close();
37 } catch (SQLException e) {
38 e.printStackTrace();
39 } catch (ClassNotFoundException e) {
40 e.printStackTrace();
41 }
42
43 }
44
45 }
运行结果:
id=1;username=ccc;password=123456
id=2;username=xxx;password=654321
id=3;username=ddd;password=123456
id=4;username=ddf÷;password=yyt
id=5;username=cuixiaodong;password=cxd
id=6;username=vv;password=cxd
2. android怎么链接数据库mysql
有点多请耐心看完。
希望能帮助你,还请及时采纳谢谢。
一.前言
android连接数据库的方式有两种,第一种是通过连接服务器,再由服务器读取数据库来实现数据的增删改查,这也是我们常用的方式。第二种方式是android直接连接数据库,这种方式非常耗手机内存,而且容易被反编译造成安全隐患,所以在实际项目中不推荐使用。
二.准备工作
1.加载外部jar包
在Android工程中要使用jdbc的话,要导入jdbc的外部jar包,因为在Java的jdk中并没有jdbc的api,我使用的jar包是mysql-connector-java-5.1.18-bin.jar包,网络上有使用mysql-connector-java-5.1.18-bin.jar包的,自己去用的时候发现不兼容,所以下载了比较新版本的,jar包可以去官网下载,也可以去网络,有很多前人们上传的。
2.导入jar包的方式
方式一:
可以在项目的build.gradle文件中直接添加如下语句导入
compile files('libs/mysql-connector-java-5.1.18-bin.jar')
方式二:下载jar包复制到项目的libs目录下,然后右键复制过来的jar包Add as libs
三.建立数据库连接
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_jdbc);
new Thread(runnable).start();
}
Handler myHandler=new Handler(){
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
Bundle data=new Bundle();
data=msg.getData();
//System.out.println("id:"+data.get("id").toString()); //输出第n行,列名为“id”的值
Log.e("TAG","id:"+data.get("id").toString());
TextView tv= (TextView) findViewById(R.id.jdbc);
//System.out.println("content:"+data.get("content").toString());
}
};
Runnable runnable=new Runnable() {
private Connection con = null;
@Override
public void run() {
// TODO Auto-generated method stub
try {
Class.forName("com.mysql.jdbc.Driver");
//引用代码此处需要修改,address为数据IP,Port为端口号,DBName为数据名称,UserName为数据库登录账户,Password为数据库登录密码
con =
//DriverManager.getConnection("jdbc:mysql://192.168.1.202:3306/b2b", "root", "");
DriverManager.getConnection("jdbc:mysql://http://192.168.1.100/phpmyadmin/index.php:8086/b2b",
UserName,Password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
testConnection(con); //测试数据库连接
} catch (java.sql.SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void testConnection(Connection con1) throws java.sql.SQLException {
try {
String sql = "select * from ecs_users"; //查询表名为“oner_alarm”的所有内容
Statement stmt = con1.createStatement(); //创建Statement
ResultSet rs = stmt.executeQuery(sql); //ResultSet类似Cursor
//<code>ResultSet</code>最初指向第一行
Bundle bundle=new Bundle();
while (rs.next()) {
bundle.clear();
bundle.putString("id",rs.getString("userid"));
//bundle.putString("content",rs.getString("content"));
Message msg=new Message();
msg.setData(bundle);
myHandler.sendMessage(msg);
}
rs.close();
stmt.close();
} catch (SQLException e) {
} finally {
if (con1 != null)
try {
con1.close();
} catch (SQLException e) {}
}
}
};
注意:
在Android4.0之后,不允许在主线程中进行比较耗时的操作(连接数据库就属于比较耗时的操作),需要开一个新的线程来处理这种耗时的操作,没新线程时,一直就是程序直接退出,开了一个新线程处理直接,就没问题了。
当然,连接数据库是需要网络的,千万别忘了添加访问网络权限:
<uses-permission android:name=”android.permission.INTERNET”/>
四.bug点
1.导入的jar包一定要正确
2.连接数据库一定要开启新线程
3.数据库的IP一定要是可以ping通的,局域网地址手机是访问不了的
4.数据库所在的服务器是否开了防火墙,阻止了访问
————————————————
版权声明:本文为CSDN博主“shuaiyou_comon”的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shuaiyou_comon/article/details/75647355
3. android 连接mysql数据库问题
我也是初学,给你参考一下
tomcat服务器端:
public class LoginOrRegServlet extends HttpServlet { //登录和注册服务器
private static final long serialVersionUID = 1L;
private static final String Driver = "com.mysql.jdbc.Driver"; //mysql驱动
private static final String ConnectUrl = "jdbc:MySQL://localhost:3306/itosystem";//连接数据库的URL
private String User = "root"; //登录数据库的用户名和密码
private String Password = "num12369";
@Override
protected void service(HttpServletRequest request,HttpServletResponse response) { String connUserName; //取得请求中的用户名和密码
String connPassword;
String Action; //判断请求中是登录还是注册
boolean isNull = false; //根据用户名查询数据库是否查到
Connection conn = null;
DataOutputStream dos = null;
Statement statement = null;
ResultSet rs = null;
connUserName = request.getParameter("userName");//取得请求中的各种值
connPassword = request.getParameter("password");
Action = request.getParameter("action");
System.out.println(connUserName + "-" + connPassword+"-"+Action);
try { //设置驱动和连接数据库
Class.forName(Driver);
conn = DriverManager.getConnection(ConnectUrl, User, Password);
} catch (Exception e1) {
e1.printStackTrace();
}
if(Action.equals("reg")){ //if请求为注册
try {
if (conn != null) { //if数据库连接成功
statement = conn.createStatement(); //取得对数据库的操作对象
rs = statement.executeQuery("select password from user where name='"
+ connUserName + "'"); //根据请求中的用户名使用mysql语句对数据库的查询操作
dos = new DataOutputStream(response.getOutputStream()); //对请求做出回应的对象
if(!rs.next()){ //如果没有查到记录,表明用户名可以使用
statement.executeUpdate("insert into user values('"+connUserName+"','"+connPassword+"')");
//执行插入操作
dos.writeInt(5); //回应给客户端的值(值可以随意),5表示成功
}else{
dos.writeInt(10); //10表示用户已存在
}
dos.flush(); //关闭各种对象
dos.close();
rs.close();
statement.close();
conn.close();
}else{
System.out.println("数据库连接失败");
}
} catch (Exception e) {
System.out.println("产生异常");
e.printStackTrace();
}
//注册结束
}else if(Action.equals("login")){//if请求为登录
try {
if (conn != null) {
statement = conn.createStatement();
rs = statement.executeQuery("select password from user where name='"+ connUserName + "'"); //查询数据库
dos = new DataOutputStream(response.getOutputStream());
while(rs.next()){//if查询到有这个用户名的记录
String backPassword;
backPassword = rs.getString("password"); //从数据库获得这个用户名的密码
if (backPassword.equals(connPassword)) { //用数据库返回的密码和连接请求中的密码对比
dos.writeInt(10); //如果相等,返回值,登录成功
}else{
dos.writeInt(0); //否则登录失败
}
isNull = true; //查到有记录,将其赋值为true
}
if(!isNull){ //if没查到记录
dos.writeInt(5); //返回5,表示用户不存在
}
dos.flush(); //关闭各种对象
dos.close();
rs.close();
statement.close();
conn.close();
} else {
System.out.println("数据库连接失败");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}//登录操作结束
}
4. android镐庝箞杩炴帴mysql
璇磋存柟娉曞惂銆侫ndroid寮鍙戜腑锛屽ぇ澶氭暟杩炴帴鍒拌繙绋婱ySQL鏁版嵁搴撶殑鏂规硶鏄锷犲叆鐗瑰畾镄凷ervice鍒颁唬镰佷腑銆傜敱浜崄ySQL阃氩父鏄鍜孭HP涓璧蜂娇鐢ㄧ殑锛屾渶绠鍗曚互鍙婃渶甯歌佺殑鏂规硶鏄鍐橮HP鑴氭湰绠$悊鏁版嵁杩炴帴锛屼互鍙娄粠Android绯荤粺涓娄娇鐢℉TTP鍗忚杩愯岃繖涓鑴氭湰銆
5. 怎么连接android和php mysql数据库
如何连接android和php mysql数据库
我们先来看一个简单的Android app例子(这里是一个商品存货清单项目),在Android程序中,我们可以访问(call)PHP脚本来执行简单的CRUD操作(创建,读取,更新,删除)。为了使你对它的体系结构有一个大概的了解,这里先说一下它是怎么工作的。首先你的Android项目访问(call)PHP脚本来执行一条数据操作,我们称它为“创建”。然后PHP脚本连接MySQL数据库来执行这个操作。这样,数据从Android程序流向PHP脚本,最终存储在MySQL数据库中。
好了,让我们来深入的看一下。
请注意:这里提供的代码只是为了使你能简单的连接Android项目和PHP,MySQL。你不能把它作为一个标准或者安全编程实践。在生产环境中,理想情况下你需要避免使用任何可能造成潜在注入漏洞的代码(比如MYSQL注入)。MYSQL注入是一个很大的话题,不可能用单独的一篇文章来说清楚,并且它也不在本文讨论的范围内,所以本文不以讨论。
1. 什么是WAMP Server
WAMP是Windows,Apache,MySQL和PHP,Perl,Python的简称。WAMP是一个一键安装的软件,它为开发PHP,MySQL Web应用程序提供一个环境。安装这款软件你相当于安装了Apache,MySQL和PHP。或者,你也可以使用XAMP。
2. 安装和使用WAMP Server
你可以从http://www.wampserver.com/en/下载WAMP,安装完成之后,可以从开始->所有程序->WampServer->StartWampServer运行该程序。
在浏览器中输入http://localhost/来测试你的服务器是否安装成功。同样的,也可以打开http://localhost/phpmyadmin来检验phpmyadmin是否安装成功。
3. 创建和运行PHP项目
现在,你已经有一个能开发PHP和MYSQL项目的环境了。打开安装WAMP Server的文件夹(在我的电脑中,是C:\wamp\),打开www文件夹,为你的项目创建一个新的文件夹。你必须把项目中所有的文件放到这个文件夹中。
新建一个名为android_connect的文件夹,并新建一个php文件,命名为test.php,尝试输入一些简单的php代码(如下所示)。输入下面的代码后,打开http://localhost/android_connect/test.php,你会在浏览器中看到“Welcome,I am connecting Android to PHP,MySQL”(如果没有正确输入,请检查WAMP配置是否正确)
test.php
4. 打开MainScreenActivity.java为main_screen.xml文件里的两个按钮添加点击事件
MainScreenActivity.java
7. 添加一个新产品(写入)
创建一个新的view和activity来向MySQL数据库添加新产品。
新建一个简单的表单,创建提供输入产品名称,价格和描述的EditText
add_proct.xml
8. 新建一个Activity来处理向MySQL数据库插入新产品。
新建名为NewProctActivity.java的文件,输入以下代码。在下面的代码中
首先,从EditText获得用户输入的产品数据,格式化成基本参数格式
然后,向create_proct.php发送请求,通过HTTP POST创建一个新的产品
最后,从create_proct.php获取json返回值,如果success值为1,新得到的列表中就加入了新增的产品。
NewProctActivity.java
11. JSONParser类
我用一个JSONParser类从URL获得JSON格式的数据。这个类支持两种http请求,GET和POST方法从URL获取JSON数据
JSONParser.java
packagecom.example.androidhive; importjava.io.BufferedReader; importjava.io.IOException; importjava.io.InputStream; importjava.io.InputStreamReader; importjava.io.UnsupportedEncodingException; importjava.util.List; importorg.apache.http.HttpEntity; importorg.apache.http.HttpResponse; importorg.apache.http.NameValuePair; importorg.apache.http.client.ClientProtocolException; importorg.apache.http.client.entity.UrlEncodedFormEntity; importorg.apache.http.client.methods.HttpGet; importorg.apache.http.client.methods.HttpPost; importorg.apache.http.client.utils.URLEncodedUtils; importorg.apache.http.impl.client.DefaultHttpClient; importorg.json.JSONException; importorg.json.JSONObject; importandroid.util.Log; publicclassJSONParser { staticInputStream is = null; staticJSONObject jObj = null; staticString json = ""; // constructor publicJSONParser() { } // function get json from url // by making HTTP POST or GET mehtod publicJSONObject makeHttpRequest(String url, String method, List<NameValuePair> params) { // Making HTTP request try{ // check for request method if(method == "POST"){ // request method is POST // defaultHttpClient DefaultHttpClient httpClient = newDefaultHttpClient(); HttpPost httpPost = newHttpPost(url); httpPost.setEntity(newUrlEncodedFormEntity(params)); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); }elseif(method == "GET"){ // request method is GET DefaultHttpClient httpClient = newDefaultHttpClient(); String paramString = URLEncodedUtils.format(params, "utf-8"); url += "?"+ paramString; HttpGet httpGet = newHttpGet(url); HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } } catch(UnsupportedEncodingException e) { e.printStackTrace(); } catch(ClientProtocolException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } try{ BufferedReader reader = newBufferedReader(newInputStreamReader( is, "iso-8859-1"), 8); StringBuilder sb = newStringBuilder(); String line = null; while((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); json = sb.toString(); } catch(Exception e) { Log.e("Buffer Error", "Error converting result "+ e.toString()); } // try parse the string to a JSON object try{ jObj = newJSONObject(json); } catch(JSONException e) { Log.e("JSON Parser", "Error parsing data "+ e.toString()); } // return JSON String returnjObj; } }
到这里,本教程就结束了。
6. 怎样使Android程序调用mysql数据库里面的数据
1.首先需要安装MySQLServer5.1和navicatformysql。这个安装是很简单的,网上很多教程,和安装一般软件差不多。只有在安装MySQLServer5.1时,要注意选择字符编码为gb2312(中文)那个选项。
2.使用navicatformysql导入数据文件
a打开navicatformysql,和localhost本地数据库连接,就可以看到刚才建立的数据库和表,
b可以导入本地的txt数据文件,注意保持格式正确,
c下面一步要注意一下,如果数据库中有中文数据,编码格式一定要选择是中文的GB2312,
d然后间隔符为空格(根据txt中的具体情况来定),
e并选择目标表,将每一列一一对应,即可导入。