借助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) + "\t");//显示列名字 52 } 53 System.out.println(); 54 while (rs.next()) {//显示数据 55 for (int i = 1; i <= fld; i++) { 56 System.out.print(rs.getString(i) + "\t\t"); 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 }
原创文章,转载请说明出处,谢谢合作
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律