借助Java的JDBC自制“DBMS”管理操作数据库
2024-10-09 17:04:22
package jdbc; import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSetMetaData; /**
* @author liuwenlong
* @create 2020-08-11 14:36:20
*/
@SuppressWarnings("all")
public class LwlSql {
public static void main(String[] args) {
Connection conn = null;
try {
//第一步,测试是否已经添加了操作oracle的jar包
Class.forName("oracle.jdbc.driver.OracleDriver");
//第二步:和数据库连接
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.3:1521:xe", "lwl", "123456");
//第三步,创建执行sql语句的对象
java.sql.Statement st = conn.createStatement(); java.sql.ResultSet rs = null;
byte[] b = new byte[300];
String sql = null;
while (true) {
try {
System.out.println("jwlSql>");
int len = System.in.read(b);
if (len < 5) {
System.err.println("invalid sql");
continue;
}
if (b[len - 2] == 13 && b[len - 1] == 10) {
len = len - 2;
} else {
len = len - 1;
}
sql = new String(b, 0, len);
if (sql.equals("exit") || sql.equals("quit")) {
System.out.println("welcome again!!");
return;
}
//查询
if (sql.startsWith("select")) {
rs = st.executeQuery(sql);
ResultSetMetaData md = rs.getMetaData();
int fld = md.getColumnCount();
for (int i = 1; i <= fld; i++) {
System.out.print(md.getColumnName(i) + "\t");//显示列名字
}
System.out.println();
while (rs.next()) {//显示数据
for (int i = 1; i <= fld; i++) {
System.out.print(rs.getString(i) + "\t\t");
}
System.out.println();
}
} else {
st.executeUpdate(sql);
}
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
}
最新文章
- python学习笔记整理——集合 set
- 【8-30】oracle数据库学习
- Sea.js学习3——Sea.js的CMD 模块定义规范
- strcpy函数实现
- Mac下的常用Shell命令
- 使用另一种方式实现js中Function的调用(call/apply/bind)
- MySql相关及如何删除MySql服务
- wamp中的httpd.conf文件设置
- migrate from weblogic to tomcat: directory mapping--reference
- 深入解读ESB与SOA的关系
- 【D3】D3学习轨迹-----学习到一定层度了再更新
- 笔记+R︱风控模型中变量粗筛(随机森林party包)+细筛(woe包)
- 【BZOJ3530】数数(AC自动机,动态规划)
- 学习Android过程中的一些博客或工具收集
- BZOJ.4842.[NEERC2016]Delight for a Cat(费用流)
- js中循环对比(for循环,foreach,for in,for of ,map)
- 微软官方的Windowsphone社区
- SpringBoot扩展SpringMVC自动配置
- [Python 从入门到放弃] 1. 列表的基本操作
- [转]DevOps解决方案-腾讯云