栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

通过类的java sql连接

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过类的java sql连接

这是非常糟糕的代码-书面上没有用。您有很多工作要做。

我建议您研究一下并丢弃代码:

package persistence;import java.sql.*;import java.util.*;public class DatabaseUtils {    private static final String DEFAULT_DRIVER = "oracle.jdbc.driver.OracleDriver";    private static final String DEFAULT_URL = "jdbc:oracle:thin:@host:1521:database";    private static final String DEFAULT_USERNAME = "username";    private static final String DEFAULT_PASSWORD = "password";    public static void main(String[] args) {        long begTime = System.currentTimeMillis();        String driver = ((args.length > 0) ? args[0] : DEFAULT_DRIVER);        String url = ((args.length > 1) ? args[1] : DEFAULT_URL);        String username = ((args.length > 2) ? args[2] : DEFAULT_USERNAME);        String password = ((args.length > 3) ? args[3] : DEFAULT_PASSWORD);        Connection connection = null;        try { connection = createConnection(driver, url, username, password); DatabasemetaData meta = connection.getmetaData(); System.out.println(meta.getDatabaseProductName()); System.out.println(meta.getDatabaseProductVersion()); String sqlQuery = "SELECt PERSON_ID, FIRST_NAME, LAST_NAME FROM PERSON ORDER BY LAST_NAME"; System.out.println("before insert: " + query(connection, sqlQuery, Collections.EMPTY_LIST)); connection.setAutoCommit(false); String sqlUpdate = "INSERT INTO PERSON(FIRST_NAME, LAST_NAME) VALUES(?,?)"; List parameters = Arrays.asList("Foo", "Bar"); int numRowsUpdated = update(connection, sqlUpdate, parameters); connection.commit(); System.out.println("# rows inserted: " + numRowsUpdated); System.out.println("after insert: " + query(connection, sqlQuery, Collections.EMPTY_LIST));        } catch (Exception e) { rollback(connection); e.printStackTrace();        } finally { close(connection); long endTime = System.currentTimeMillis(); System.out.println("wall time: " + (endTime - begTime) + " ms");        }    }    public static Connection createConnection(String driver, String url, String username, String password) throws ClassNotFoundException, SQLException {        Class.forName(driver);        if ((username == null) || (password == null) || (username.trim().length() == 0) || (password.trim().length() == 0)) { return DriverManager.getConnection(url);        } else { return DriverManager.getConnection(url, username, password);        }    }    public static void close(Connection connection) {        try { if (connection != null) {     connection.close(); }        } catch (SQLException e) { e.printStackTrace();        }    }    public static void close(Statement st) {        try { if (st != null) {     st.close(); }        } catch (SQLException e) { e.printStackTrace();        }    }    public static void close(ResultSet rs) {        try { if (rs != null) {     rs.close(); }        } catch (SQLException e) { e.printStackTrace();        }    }    public static void rollback(Connection connection) {        try { if (connection != null) {     connection.rollback(); }        } catch (SQLException e) { e.printStackTrace();        }    }    public static List<Map<String, Object>> map(ResultSet rs) throws SQLException {        List<Map<String, Object>> results = new ArrayList<Map<String, Object>>();        try { if (rs != null) {     ResultSetmetaData meta = rs.getmetaData();     int numColumns = meta.getColumnCount();     while (rs.next()) {         Map<String, Object> row = new HashMap<String, Object>();         for (int i = 1; i <= numColumns; ++i) {  String name = meta.getColumnName(i);  Object value = rs.getObject(i);  row.put(name, value);         }         results.add(row);     } }        } finally { close(rs);        }        return results;    }    public static List<Map<String, Object>> query(Connection connection, String sql, List<Object> parameters) throws SQLException {        List<Map<String, Object>> results = null;        PreparedStatement ps = null;        ResultSet rs = null;        try { ps = connection.prepareStatement(sql); int i = 0; for (Object parameter : parameters) {     ps.setObject(++i, parameter); } rs = ps.executeQuery(); results = map(rs);        } finally { close(rs); close(ps);        }        return results;    }    public static int update(Connection connection, String sql, List<Object> parameters) throws SQLException {        int numRowsUpdated = 0;        PreparedStatement ps = null;        try { ps = connection.prepareStatement(sql); int i = 0; for (Object parameter : parameters) {     ps.setObject(++i, parameter); } numRowsUpdated = ps.executeUpdate();        } finally { close(ps);        }        return numRowsUpdated;    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400054.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号