package cn.gtmap.onemap.server.service.impl; import java.sql.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** * Created by ss on 2017/1/24. */ public class MetadataService2Impl implements MetadataService2{ @Override public List findMapsByGroupName(String name) { Statement statement = null; Connection con = null; ResultSet rs = null; //下面使用JDBC 进行连接处理 List list2 = new ArrayList(); try { //加载LDBC驱动 Class.forName("oracle.jdbc.OracleDriver"); //分配一个Connection对象 con = DriverManager.getConnection("jdbc:oracle:thin:@数据库IP:orcl","账户","密码"); //执行对应的语句 String sql = "select m.* from OM_MAP m,OM_MAP_GROUP p where m.GROUP_ID = p.ID and p.NAME = '"+name+"'" ; //此处没有使用占位符,当时我的项目中使用占位符没有效果,未找到确切的原因,于是改成拼接的写法。//2017-08-04 有一次在使用Mysql数据库的时候,使用占位符也一直没用,后来发在JDBC连接的时候, 之前没写上编码,怎么也不行,于是尝试 jdbc:mysql://127.0.0.1:3306/micro_message?characterEncoding=utf8
statement = con.createStatement(); rs = statement.executeQuery(sql); //下面对结果集进行处理,将返回的结果给到集合中,此处借助ResultSetMetaData 和Map 将ResultSet结果集转换为List。 ResultSetMetaData md = rs.getMetaData(); int count = md.getColumnCount(); while (rs.next()){ java.util.Map rowData = new HashMap(); for (int i=1;i<=count;i++){ rowData.put(md.getColumnName(i),rs.getObject(i)); } list2.add(rowData); } } catch (ClassNotFoundException e) { System.out.println("驱动类无法找到!"); e.printStackTrace(); } catch (SQLException e) { System.out.println("数据库访问异常!"); e.printStackTrace(); }finally { //最后依次关闭连接 try { if (rs != null) { rs.close(); } if (statement != null) { statement.close(); } if (con != null) { con.close(); } } catch (SQLException e) { System.out.println("关闭连接时发生异常!"); } } return list2; }
JDBC连接ORACLE数据库--自己随手记
最新推荐文章于 2022-05-07 13:10:34 发布