从网上直接拿来的代码https://blog.csdn.net/csdnzouqi/article/details/87382143,在安卓里我修改了一部分内容网上直接拿来的代码
问题相关代码
/**
* 数据库工具类:连接数据库用、获取数据库数据用
* 相关操作数据库的方法均可写在该类
*/
public class DBUtils {
private static String driver = "com.mysql.jdbc.Driver";// MySql驱动
// private static String url = "jdbc:mysql://localhost:3306/map_designer_test_db";
private static String user = " ";// 用户名
private static String password = " ";// 密码
private static Connection getConn(String dbName){
Connection connection = null;
try{
Class.forName(driver);// 动态加载类
String ip = " ";// 写成本机地址,不能写成localhost,同时手机和电脑连接的网络必须是同一个
// 尝试建立到给定数据库URL的连接
connection = DriverManager.getConnection("jdbc:mysql://" + ip + ":3306/" + dbName,
user, password);
}catch (Exception e){
e.printStackTrace();
}
return connection;
}
public static HashMap<String, Object> getInfoByName(String name){
HashMap<String, Object> map = new HashMap<>();
// 根据数据库名称,建立连接
Connection connection = getConn("ceshi");
try {
// mysql简单的查询语句。这里是根据MD_CHARGER表的NAME字段来查询某条记录
String sql = "select * from lyb where ID = ?";
// String sql = "select * from MD_CHARGER";
if (connection != null){// connection不为null表示与数据库建立了连接
PreparedStatement ps = connection.prepareStatement(sql);
if (ps != null){
// 设置上面的sql语句中的?的值为name
ps.setString(1, name);
// 执行sql查询语句并返回结果集
ResultSet rs = ps.executeQuery();
if (rs != null){
int count = rs.getMetaData().getColumnCount();
Log.e("DBUtils","列总数:" + count);
while (rs.next()){
// 注意:下标是从1开始的
for (int i = 1;i <= count;i++){
String field = rs.getMetaData().getColumnName(i);
map.put(field, rs.getString(field));
}
}
connection.close();
ps.close();
return map;
}else {
return null;
}
}else {
return null;
}
}else {
return null;
}
}catch (Exception e){
e.printStackTrace();
Log.e("DBUtils","异常:" + e.getMessage());
return null;
}
}
}
运行结果及报错内容
我觉得可能是我上传的这一块代码的问题,实在是不太清楚
程序返回的报错只有一条。我用的不是本地数据库用的是云服务器qwq虽然可能没区别吧`(>﹏<)′
12-07 14:52:49.068 8256-8299/com.example.shujukuceshi E/DBUtils: 列总数:8