Java jdbc 连接数据库、通用增删改查、事务回滚
时间:2020-05-23
本文章向大家介绍Java jdbc 连接数据库、通用增删改查、事务回滚,主要包括Java jdbc 连接数据库、通用增删改查、事务回滚使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.先下载mysql-connector-java-5.1.40.jar包;
2.写代码;
获取数据库连接、通用查询和同意增删改代码;
public static Connection getConnection() { Connection con = null; try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("数据库驱动加载成功"); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/maxinhai?characterEncoding=UTF-8", "maxinhai", "maxinhai"); System.out.println("数据库连接成功"); } catch (SQLException e) { e.printStackTrace(); } return con; } /** * 执行增加、删除、修改 sql操作 * * @auther maxinhai * @param con 连接对象 * @param sql 增加、删除、修改sql语句 * @param params 条件参数 * @return 查询结果 */ public static int executeUpdate(Connection con, String sql, List<Object> params) { int num = 0; PreparedStatement ps = null; try { // 预处理对象 System.out.println(sql); ps = con.prepareStatement(sql); // 填充参数 if (params.size() > 0) { for (int i = 0; i < params.size(); i++) { ps.setObject(i + 1, params.get(i)); } } // 执行sql num = ps.executeUpdate(); System.out.println("影响了" + num + "条信息"); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (ps != null) ps.close(); if (con != null) con.close(); } catch (Exception e) { e.printStackTrace(); } } return num; } /** * 执行查询语句 * * @auther maxinhai * @param con 连接对象 * @param querySql 查询语句 * @param params 查询条件参数 * @return 查询结果 */ public static List<Map<String, Object>> executeQuery(Connection con, String querySql, List<Object> params) { List<Map<String, Object>> table = null; PreparedStatement ps = null; ResultSet queryResult = null; try { // 获取预处理对象 ps = con.prepareStatement(querySql); // 填充参数 if (params != null && params.size() > 0) { for (int i = 0; i < params.size(); i++) { ps.setObject(i + 1, params.get(i)); } } // 执行查询 queryResult = ps.executeQuery(); // 获取键名 ResultSetMetaData md = queryResult.getMetaData(); // 获取行的数量 int columnCount = md.getColumnCount(); table = new ArrayList(); while (queryResult.next()) { // 链表保证顺序 Map<String, Object> rowData = new LinkedHashMap<>(); for (int i = 1; i <= columnCount; i++) { // 获取键名及值 rowData.put(md.getColumnName(i), queryResult.getObject(i)); } table.add(rowData); } } catch (SQLException e) { e.printStackTrace(); } finally { try { if (ps != null) ps.close(); if (con != null) con.close(); if (queryResult != null) queryResult.close(); } catch (Exception e) { e.printStackTrace(); } } return table; }
原文地址:https://www.cnblogs.com/mxh-java/p/12943876.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 逐行阅读Spring5.X源码(番外篇)自定义扫描器, Mybatis是如何利用spring完成Mapper扫描的
- 逐行阅读Spring5.X源码(七)扫描和注册神器 ConfigurationClassPostProcessor ,学此类者,胜过学九阳神功!胆小勿入!
- 「Mysql索引原理(三)」Mysql中的Hash索引原理
- RNN、lstm、gru详解
- 「Mysql索引原理(四)」单列索引
- 「Mysql索引原理(五)」多列索引
- 「Mysql索引原理(六)」聚簇索引
- 「Mysql索引原理(七)」覆盖索引
- 「Mysql索引原理(八)」使用索引扫描做排序
- 「Mysql索引原理(九)」前缀压缩索引
- 「Mysql索引原理(十)」冗余和重复索引
- 「Mysql索引原理(十一)」索引和锁
- 「Mysql索引原理(十二)」索引案例1-支持多种过滤条件
- 「Mysql索引原理(十三)」索引案例2-避免多个范围条件
- 「Mysql索引原理(十四)」索引案例3-优化排序