1,android调用mysql时,版本要匹配,什么意思呢?
android通过JDBC调用mysql,需要mysql提供的jar包,这个jar包可以去mysql官网下载(可参考我的上篇文章)。关键点来了,手机真机做android Studio的调试机,如果手机的android系统是8.0以下的,那么只能调用mysql 5.0的jar;如果手机是8.0及以上的,那么可以调用5.0或8.0的jar,但具体的连接数据库语句代码略有差别,记得把连接语句放try{}俩面。
jar是5.0的版本:
private Connection conn;
//驱动程序名
String driver = "com.mysql.cj.jdbc.Driver";
Class.forName(driver);
//getConnection()方法,连接MySQL数据库!!
conn = DriverManager.getConnection("jdbc:mysql://10.1.8.14:3306/warehouse", "root", "123456");
jar是8.0的版本:
//声明Connection对象
Connection conn;
//驱动程序名
String driver = "com.mysql.cj.jdbc.Driver";
//URL指向要访问的数据库名mysql
String url = "jdbc:mysql://localhost:3306/mysql?useSSL=false&serverTimezone=UTC";
//加载驱动程序
Class.forName(driver);
//getConnection()方法,连接MySQL数据库!!
conn = DriverManager.getConnection(url,"root","123456");
2,MySQL里面中文乱码的问题
首先查下数据库的编码格式,语句
show variables like 'character%';
这个红色框里面的编码格式有时候是Latin1,这个真是反人类,我们要把Latin1改为utf8,相信大家都在网上查了不少遍,长期策略无非就是找到安装目录的my.ini文件,这个文件的位置可能在这2个位置:1,C:\Program Files\MySQL\MySQL Server 5.7\my.ini 2,C:\ProgramData\MySQL\MySQL Server 5.7\my.ini,如果是第1个位置,那你直接改my.ini里面的参数,修改内容如下
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
然后重启mysql服务,在任务管理器的“服务”里面找到MySQL,然后停止再开启,问题应该能解决。
重点来了,文件在第二个位置,并且改了my.ini里面的参数,然而并没什么卵用,反而可能导致mysql服务崩溃,一直显示“正在启动”,然后你开始查找资料,说是找到C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe,然后***,结果就是服务一直启动不了,数据库还连不上了。解决方案:去C:\Program Files\MySQL\MySQL Server 5.7\里面新建一个my.ini文件,把下面内容写到这个文件里:
[mysqld]
character-set-server=utf8
basedir="C:/Program Files/MySQL/MySQL Server 5.7/"
datadir=C:/ProgramData/MySQL/MySQL Server 5.7/Data
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
然后把MySQL服务重启下,如果重启不了,还是一直显示“正在启动”,拿出终极绝招,进入C:\Program Files\MySQL\MySQL Server 5.7\bin\,按住键盘“Shift”与鼠标右键,选择“打开命令窗口”,执行命令mysqld --remove移除,然后执行mysqld --install安装,再执行net start mysql,OK大功告成。