借助Java的JDBC自制“DBMS”管理操作数据库

 1 package jdbc;
 2 
 3 import java.sql.Connection;
 4 import java.sql.Driver;
 5 import java.sql.DriverManager;
 6 import java.sql.ResultSetMetaData;
 7 
 8 /**
 9  * @author liuwenlong
10  * @create 2020-08-11 14:36:20
11  */
12 @SuppressWarnings("all")
13 public class LwlSql {
14     public static void main(String[] args) {
15         Connection conn = null;
16         try {
17             //第一步,测试是否已经添加了操作oracle的jar包
18             Class.forName("oracle.jdbc.driver.OracleDriver");
19             //第二步:和数据库连接
20             conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.3:1521:xe", "lwl", "123456");
21             //第三步,创建执行sql语句的对象
22             java.sql.Statement st = conn.createStatement();
23 
24             java.sql.ResultSet rs = null;
25             byte[] b = new byte[300];
26             String sql = null;
27             while (true) {
28                 try {
29                     System.out.println("jwlSql>");
30                     int len = System.in.read(b);
31                     if (len < 5) {
32                         System.err.println("invalid sql");
33                         continue;
34                     }
35                     if (b[len - 2] == 13 && b[len - 1] == 10) {
36                         len = len - 2;
37                     } else {
38                         len = len - 1;
39                     }
40                     sql = new String(b, 0, len);
41                     if (sql.equals("exit") || sql.equals("quit")) {
42                         System.out.println("welcome again!!");
43                         return;
44                     }
45                     //查询
46                     if (sql.startsWith("select")) {
47                         rs = st.executeQuery(sql);
48                         ResultSetMetaData md = rs.getMetaData();
49                         int fld = md.getColumnCount();
50                         for (int i = 1; i <= fld; i++) {
51                             System.out.print(md.getColumnName(i) + "	");//显示列名字
52                         }
53                         System.out.println();
54                         while (rs.next()) {//显示数据
55                             for (int i = 1; i <= fld; i++) {
56                                 System.out.print(rs.getString(i) + "		");
57                             }
58                             System.out.println();
59                         }
60                     } else {
61                         st.executeUpdate(sql);
62                     }
63                 } catch (Exception e) {
64                     System.err.println(e.getMessage());
65                 }
66             }
67         } catch (Exception e) {
68             System.err.println(e.getMessage());
69         }
70     }
71 }

原文地址:https://www.cnblogs.com/lwl80/p/13479421.html