如何在java中实现SQL命令,就是在控制台输入查询 删除等命令
并返回等同于SQL的结果

解决方案 »

  1.   

    现成工具没见过,自己调用jdbc到是可以实现,不过这个需求到是很奇怪。
      

  2.   

    主要是JDBC怎么调,似乎不方便吧,若是单个表的制定操作还行
      

  3.   

    我想这就是基于jdbc的封装了,比如那些orm框架,jdbcTemplate ,楼主有兴趣可以搞搞
      

  4.   

    Scanner读入控制台输入,读到某个特殊行(表示sql输入结束符号),通过jdbc,把输入的文本作为参数直接调用Statement的executeQuery(String sql), 然后把返回的结果集ResultSet遍历,打印出来。
     
      

  5.   

    调用executeQuery(String sql)方法
      

  6.   

    必须用jdbc,否则自己写程序调数据库API还不累死
      

  7.   

    select 和 desc 功能已经实现了,insert 怎么弄,这个有难度 
      

  8.   

    insert 要调用Statement的executeUpdate方法,自己判断一下是select还是insert语句,分别调用就可以了
      

  9.   

    java连接了数据库后,就可以通过Scanner读入控制台输入,读到某个特殊行(表示sql输入结束符号),通过jdbc,把输入的文本作为参数直接调用Statement的executeQuery(String sql), 然后把返回的结果集ResultSet遍历,打印出来。
     
    package com.xinzhanedu.DBmanager;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;

    /**
     * 连接数据库部分
     * @author Administrator
     *
     */
    public class DBManager {

    private    Connection  connection;
    private   Statement statement;
    private  ResultSet  resultSet;
    private String url = "jdbc:sqlserver://localhost:1433;databaseName=studentInfo";
    private String username = "sa";
    private String pwd = "123";

    /**
     * 打开数据库
     */
    public  DBManager openDatabase(){

    try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    Connection connection=DriverManager.getConnection(url,username,pwd);
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return null;
    }
    /**
     * 关闭数据库
     */

    public  void  closeDatabase(){
    if(connection!=null){
    try {
    connection.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    if(statement!=null){
    try {
    statement.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    if(resultSet!=null){
    try {
    resultSet.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    }


    /**
     * 处理数据库的结果集
     */ public ResultSet query(String sql) {
    try {
    openDatabase();
    Connection connection=DriverManager.getConnection(url,username,pwd);
    statement = connection.createStatement();
    return statement.executeQuery(sql);
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return null; }


    /**
     * 执行数据库里的增,删,改,查
     */ public int update(String sql) {
    try {
    openDatabase();
    Connection connection=DriverManager.getConnection(url,username,pwd);
    Statement statement = connection.createStatement();
    int  rows= statement.executeUpdate(sql);
    return  rows;
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return -1;
    } }
      

  10.   

    想法不错,也就是 Java.sql.* 下的一些PAI 可以自己去实现