【Java】+操作数据库

 

一、操作MySQL数据库

已封装好 可直接导入使用

  1 import org.testng.annotations.Test;
  2 
  3 import java.sql.*;
  4 import java.util.ArrayList;
  5 import java.util.List;
  6 
  7 /**
  8  * @author 
  9  * @version 1.0
 10  * @time 2020/1/6 16:30
 11  */
 12 public class Data {
 13     // MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL
 14     static private String JDBC_DRIVER = "com.mysql.jdbc.Driver";
 15     static private String DB_URL = "jdbc:mysql://数据库IP:3306/库";
 16 
 17     // MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
 18 //    static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
 19 //    static final String DB_URL = "jdbc:mysql://数据库IP:3306/RUNOOB?useSSL=false&serverTimezone=UTC";
 20 
 21     // 数据库的用户名与密码,需要根据自己的设置
 22     static private String USER = "账号";
 23     static private String PASS = "密码";
 24 
 25     /**
 26      * 更新数据(增、删、改)
 27      *
 28      * @param updatesSql sql语句
 29      */
 30     public static void dataUpdate(List<String> updatesSql) {
 31         Connection conn = null;
 32         Statement stmt = null;
 33         try {
 34             // step1 注册 JDBC 驱动
 35             Class.forName(JDBC_DRIVER);
 36 
 37             // step2 连接数据库 返回一个指针 用于操作数据库
 38             conn = DriverManager.getConnection(DB_URL, USER, PASS);
 39 
 40             // step3 创建一个实例化对象 返回一个对象指针 用于执行sql语句
 41             stmt = conn.createStatement();
 42 
 43             // step4 执行sql语句
 44             String sql = "";
 45             int rs = 0;
 46             for (int i = 0; i < updatesSql.size(); i++) {
 47                 sql = updatesSql.get(i);
 48                 rs = stmt.executeUpdate(sql);
 49                 System.out.println(String.format("执行第 %s 条sql:%s", i + 1, sql));
 50             }
 51 
 52             // step5 关闭所有指针
 53             stmt.close();
 54             conn.close();
 55         } catch (SQLException se) {
 56             // 处理 JDBC 错误
 57             se.printStackTrace();
 58         } catch (Exception e) {
 59             // 处理 Class.forName 错误
 60             e.printStackTrace();
 61         } finally {
 62             // 关闭资源
 63             try {
 64                 if (stmt != null) stmt.close();
 65             } catch (SQLException se2) {
 66             }// 什么都不做
 67             try {
 68                 if (conn != null) conn.close();
 69             } catch (SQLException se) {
 70                 se.printStackTrace();
 71             }
 72         }
 73         System.out.println("Goodbye!");
 74     }
 75 
 76     /**
 77      * 查询数据(查)
 78      *
 79      * @param searchSql sql语句
 80      * @return 返回查询后的结果(每一行、每一列)
 81      */
 82     public static List<ArrayList> dataSearch(String searchSql) {
 83         List<ArrayList> resultList = new ArrayList<>();
 84 
 85         Connection conn = null;
 86         Statement stmt = null;
 87         try {
 88             // step1 注册 JDBC 驱动
 89             Class.forName(JDBC_DRIVER);
 90 
 91             // step2 连接数据库 返回一个指针 用于操作数据库
 92             conn = DriverManager.getConnection(DB_URL, USER, PASS);
 93 
 94             // step3 创建一个实例化对象 返回一个对象指针 用于执行sql语句
 95             stmt = conn.createStatement();
 96 
 97             // step4 执行sql语句
 98             String sql = searchSql;
 99             ResultSet resultSet = stmt.executeQuery(sql);
100             System.out.println(String.format("查询后的结果总列数:%s", resultSet.getMetaData().getColumnCount()));
101             int columnCount = resultSet.getMetaData().getColumnCount();
102             System.out.println(String.format("查询后的结果总列数:%s", columnCount));
103 
104             while (resultSet.next()) {
105                 System.out.println(resultSet.getObject(1));
106                 ArrayList result = new ArrayList();
107                 // 组装一行数据
108                 for (int i = 0; i < columnCount; i++) {
109                     result.add(resultSet.getObject(i + 1));
110                 }
111                 resultList.add(result);
112 
113             }
114 
115             // step5 关闭所有指针
116             stmt.close();
117             conn.close();
118         } catch (SQLException se) {
119             // 处理 JDBC 错误
120             se.printStackTrace();
121         } catch (Exception e) {
122             // 处理 Class.forName 错误
123             e.printStackTrace();
124         } finally {
125             // 关闭资源
126             try {
127                 if (stmt != null) stmt.close();
128             } catch (SQLException se2) {
129             }// 什么都不做
130             try {
131                 if (conn != null) conn.close();
132             } catch (SQLException se) {
133                 se.printStackTrace();
134             }
135         }
136         System.out.println("Goodbye!");
137 
138         return resultList;
139     }
140 
141     @Test
142     public void test() {
143         String sql = "sql查询语句";
144         List<ArrayList> arrayLists = dataSearch(sql);
145         for (int i = 0; i < arrayLists.size(); i++) {
146             System.out.println(String.format("第%s行数据:%s", i, arrayLists.get(i)));
147         }
148     }
149 }
posted @ 2020-01-07 10:44  淡怀  阅读(208)  评论(0编辑  收藏  举报