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=https://www.04ip.com/post/new Bundle();
data=https://www.04ip.com/post/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://",
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
//codeResultSet/code最初指向第一行
Bundle bundle=new Bundle();
while (rs.next()) {
【安卓mysql怎么传值 安卓直连mysql】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版权协议,转载请附上原文出处链接及本声明 。
原文链接:
mysql的存储过程怎么传入数组参数没试过往里面传数组,一般都是多传几个参数,把几个参数放入SqlParameter[]中,然后cmd.Parameters.AddRange(pars);
创建方法:
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@PageIndex","ccc"),
new SqlParameter("@PageSize","ccc"),
new SqlParameter("@StrSql","ccc")
};
ccc就是你想传入的值,带@的就是你在存储过程中定义的参数 。
算是一种另类的数组吧 。要不你就把所有条件组合成一个字符串,中间用特殊符号隔开,到数据库用split方法再分回来 , 不过这个方法比较麻烦,不推荐
mysql转移数据的方法mysqldump工具或者select into outfile ''的方法,对应的导入就是load data local infile,具体你可以GOOGLE
mysql 语句 怎样传递一个函数的参数CREATE FUNCTION `fristPinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8
BEGIN
DECLARE V_RETURN VARCHAR(255);
SET V_RETURN = ELT(INTERVAL(CONV(HEX(left(CONVERT(P_NAME USING gbk),1)),16,10),
0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7,
0xBFA6,0xC0AC,0xC2E8,0xC4C3,0xC5B6,0xC5BE,0xC6DA,0xC8BB,
0xC8F6,0xCBFA,0xCDDA,0xCEF4,0xD1B9,0xD4D1),
'A','B','C','D','E','F','G','H','J','K','L','M','N','O','P','Q','R','S','T','W','X','Y','Z');
RETURN V_RETURN;
END
pinyin :此函数是将一个中文字符串对应拼音母的每个相连 (例如:"中国人"-ZGR)
复制代码 代码如下:
CREATE FUNCTION `pinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8
BEGIN
DECLARE V_COMPARE VARCHAR(255);
DECLARE V_RETURN VARCHAR(255);
DECLARE I INT;
SET I = 1;
SET V_RETURN = '';
while ILENGTH(P_NAME) do
SET V_COMPARE = SUBSTR(P_NAME, I, 1);
IF (V_COMPARE != '') THEN
#SET V_RETURN = CONCAT(V_RETURN, ',', V_COMPARE);
SET V_RETURN = CONCAT(V_RETURN, fristPinyin(V_COMPARE));
#SET V_RETURN = fristPinyin(V_COMPARE);
END IF;
SET I = I1;
end while;
IF (ISNULL(V_RETURN) or V_RETURN = '') THEN
SET V_RETURN = P_NAME;
END IF;
RETURN V_RETURN;
END
示例:
复制代码 代码如下:
mysql select p.province, fristPinyin(p.province), pinyin(p.province) from province p;
------------------ ------------------------- --------------------
| province| fristPinyin(p.province) | pinyin(p.province) |
------------------ ------------------------- --------------------
| 北京市| B| BJS|
| 天津市| T| TJS|
| 河北省| H| HBS|
| 山西省| S| SXS|
| 内蒙古自治区| N| NMGZZQ|
------------------ ------------------------- --------------------
5 rows in set
Android 开发 。。。如何连接到服务器上的mysql数据库1、打开Tableau软件 。
2、在连接中安卓mysql怎么传值,找到红框位置的MySQL安卓mysql怎么传值,点击开始连接Mysql 。
3、在弹出的连接界面安卓mysql怎么传值,输入Mysql服务器地址、端口、用户名、密码 。
4、输入完成后安卓mysql怎么传值,点击红框位置 确认 进行连接 。
5、此时已经连接到MySQL服务器上,为了测试 我们点击红框位置 选择数据库查看一下 。
安卓mysql怎么传值的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于安卓直连mysql、安卓mysql怎么传值的信息别忘了在本站进行查找喔 。
推荐阅读
- sap工厂对应的利润中心,sap利润中心编码规则
- 视频会议服务器,视频会议服务器如何搭建
- 牙片拍摄应注意什么,拍牙片的角度视频
- oracle如何破解版 oracle19c破解版
- pg数据库命令行,pg数据库常用命令
- 美国电影三个人的恋爱游戏,三个人的的游戏
- 网络游戏怎么还能抽奖,网游抽奖怎么触发低概率
- php发送数据给小程序 小程序对接php接口接收数据
- 男装直播什么风格好看,男装直播哪个好