之前使用JAVA原始的selvert开发服务端api的时候,是直接使用了JDBC的驱动,查询得到的数据结果集不够友好,需要进行转换处理,一般的mysql数据查询都是多条记录(一条记录也同样可以这样使用),每条记录里是一个Hashmap<string, string>,即对应每个字段和值,这是当时写的一个将查询结果统一转换成List<Hash>的方法。使用mybatis框架后这些代码就再也不用写了,它帮我们做了很多事,包括mysql连接池的管理,在使用JDBC驱动连接mysql查询数据的时候发现过一段时间,sql查询就会因为连接失效(未重新再连)而不能生效。mybatis框架在底层均已进行重新连接,方便不少。原方法代码如下:本文地址:http://47.93.183.36/article/893.html,未经许可,不得转载.
package model; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.HashMap; import conf.Config; public class Base { static Connection conn = null; static Statement stmt = null; //共用数据库连接获取 public Base() { //第一次初始化数据库连接 if(conn == null) { try{ // 注册 JDBC 驱动 Class.forName(Config.Database.JDBC_DRIVER); // 打开链接 conn = DriverManager.getConnection(Config.Database.MYSQL_DSN, Config.Database.USER, Config.Database.PASS); // 执行查询 stmt = conn.createStatement(); }catch(Exception e){ // 处理 Class.forName 错误 e.printStackTrace(); } } } public ArrayList<HashMap<String,String>> query(String sql) { try{ //提取结果集 ResultSet rs = stmt.executeQuery(sql); ResultSetMetaData rsm = rs.getMetaData(); int count = rsm.getColumnCount(); //将结果集转化为hashmap ArrayList<HashMap<String,String>> arr = new ArrayList<HashMap<String,String>>(); while (rs.next()) { HashMap<String, String> map = new HashMap<String, String>(); for (int i = 0; i < count; i++) { String columnName = rsm.getColumnName( (i + 1)); map.put(columnName, rs.getString(columnName)); } arr.add(map); } rs.close(); return arr; }catch(SQLException se){ // 处理 JDBC 错误 se.printStackTrace(); } ArrayList<HashMap<String,String>> arr = new ArrayList<HashMap<String,String>>(); return arr; } //关闭数据库连接 public void close() { try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ } try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } }本文地址:http://47.93.183.36/article/893.html,未经许可,不得转载.
配置文件代码示例:本文地址:http://47.93.183.36/article/893.html,未经许可,不得转载.
package conf; public interface Config { /** * 数据库配置 */ public static class Database { //数据库配置 public static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; public static final String MYSQL_DSN = "jdbc:mysql://127.0.0.1:3306/test"; //数据库用户名与密码 public static final String USER = "test"; public static final String PASS = "123456"; } }本文地址:http://47.93.183.36/article/893.html,未经许可,不得转载.
本文地址:http://47.93.183.36/article/893.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
手机扫码直接打开本页面 |