简易sql程序介绍

主函数:引用建立数据库连接方法,输入数据表名称,索引到菜单界面

 1 import java.sql.Connection;
 2 import java.sql.ResultSet;
 3 import java.sql.SQLException;
 4 import java.util.Scanner;
 5 
 6 public class Manage {
 7     public static Scanner input=new Scanner(System.in);
 8     public static java.sql.Statement stmt = null;;
 9     public static ResultSet rs =null;
10     public static Connection Con = DBUtil.getConnection();//得到数据库连接
11     @SuppressWarnings({ "resource" })
12     public static void main (String [] args) throws SQLException{            
13         stmt =  Con.createStatement(); //得到statement
14         Scanner input=new Scanner(System.in);//构造输入对象
15         System.out.println("成功连接数据库!");
16         System.out.println("请输入所要操作的数据表名");
17         String a=input.nextLine();
18         System.out.println("请选择您需要执行的操作");
19         Menu.Chose(a);        
20     }
21 }

连接:准备连接数据库的参数,连接数据库,关闭数据库连接

 1 import java.io.IOException;
 2 import java.io.InputStream;
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 import java.sql.Statement;
 8 import java.util.Properties;
 9 
10 public class DBUtil {
11     private static String driverName;
12     private static String url;
13     private static String name;
14     private static String password;
15 
16     static {
17         try {
18             Properties properties = new Properties();
19             InputStream inputStream = DBUtil.class.getClassLoader().getResourceAsStream("dbconfig.properties");
20             properties.load(inputStream);
21             driverName = (String) properties.get("driverName");
22             url = (String) properties.get("url");
23             name = (String) properties.get("name");
24             password = (String) properties.get("password");
25             Class.forName(driverName);
26             System.out.println("loading...");
27         } catch (IOException | ClassNotFoundException e) {
28             e.printStackTrace();
29         }
30     }
31 
32     public static Connection getConnection() {
33         Connection connection = null;
34         try {
35             connection = DriverManager.getConnection(url, name, password);
36         } catch (SQLException e) {
37             e.printStackTrace();
38         }
39         return connection;
40     }
41 
42     public static void close(Connection connection, Statement statement, ResultSet resultSet) {
43         if (resultSet != null) {
44             try {
45                 resultSet.close();
46             } catch (SQLException e) {
47                 e.printStackTrace();
48             }
49         }
50         if (statement != null) {
51             try {
52                 statement.close();
53             } catch (SQLException e) {
54                 e.printStackTrace();
55             }
56         }
57         if (connection != null) {
58             try {
59                 connection.close();
60             } catch (SQLException e) {
61                 e.printStackTrace();
62             }
63         }
64     }
65 }

 

目录:索引到操作界面

 1 import java.sql.SQLException;
 2 import java.util.Scanner;
 3 
 4 public class Menu{
 5     public static void Chose(String a) throws SQLException{
 6     System.out.println("1.向数据库中添加内容");
 7     System.out.println("2.删除数据库中的内容");
 8     System.out.println("3.修改数据库中的内容");
 9     System.out.println("4.查找数据库中的内容");
10     int A =((Scanner) Manage.input).nextInt();
11     switch(A){
12     case 1:Add.Zeng(a);
13            break;
14     case 2:Delete.Shan(a); 
15            break;
16     case 3:Change.Gai(a);
17            break;
18     case 4:Seek.Cha(a);
19            break;
20     }
21     }
22 }

Add类,用于向数据库添加内容,添加模式采取先输入索要添加的记录条数。再显示表中的各列名以及类型设置,根据各列的属性设置,依次进行添加。

 1 import java.sql.SQLException;
 2 import java.util.Scanner;
 3 
 4 public class Add {
 5      public static  void Zeng(String a ) throws SQLException{
 6          String sql ="select * from "+ a ;
 7          String sql1=null;
 8          String b=null;
 9             Manage.rs = Manage.stmt.executeQuery(sql);
10          System.out.println("请输入所要添加的数据条数");
11          int A =((Scanner) Manage.input).nextInt();//输入条数
12          int count =Manage.rs.getMetaData().getColumnCount();//查数据表列数
13          for(int i=1;i<=count;i++){
14              //获取数据表列名、列类型、列的数据长度
15              System.out.print(Manage.rs.getMetaData().getColumnName(i)+"\t"+Manage.rs.getMetaData().getColumnTypeName(i)+"\t"+Manage.rs.getMetaData().getColumnDisplaySize(i)+",");
16          }
17          System.out.println();
18          System.out.println("请输入所要添加的数据");
19          while(A>=0){
20              sql1="Insert into "+ a + " values(";//编写sql语句
21          for(int i=1; i<=count;i++ ){
22              b=((Scanner) Manage.input).nextLine();
23              sql1=sql1+"'"+b+"'";//编写sql语句
24              if(i<count){
25                  sql1=sql1+",";
26              }
27              else{
28                  sql1=sql1+")";
29              }
30          }
31          A--;
32          }
33          Manage.stmt.executeUpdate(sql1);//更新数据表内容
34          System.out.println("添加完成!");
35          Judge.panduan(a);
36      }
37 }

删除:用于删除数据表中的记录,由于一开始无法得知数据表中的内容,所以单个删除或者多个删除的操作尚未完善,目前只有全部删除的功能

 1 import java.sql.SQLException;
 2 import java.util.Scanner;
 3 
 4 public class Delete {
 5     public static void Shan(String a ) throws SQLException{
 6     String sql ="delete from "+ a ;
 7     System.out.println("请选择所要删除的范围");
 8        System.out.println("1.删除所有数据");
 9        System.out.println("2.删除部分数据");
10     int A =((Scanner) Manage.input).nextInt();
11     switch (A){
12     case 1:Manage.stmt.executeUpdate(sql);
13           break;
14     case 2:
15           break;
16     default :System.out.println("操作失败");
17           break;
18     }
19     Judge.panduan(a);
20     } 
21 }

修改:用于对数据表中的数据进行修改,模式采用将列名,原有数据,改动后数据依次输入的方式。

import java.sql.SQLException;
import java.util.Scanner;

public class Change {
  public static void Gai (String a ) throws SQLException{
     String sql="update "+ a + " set ";
     System.out.println("请选择列名(输入列名)");
     Manage.rs = Manage.stmt.executeQuery("select * from "+a);
      int count = Manage.rs.getMetaData().getColumnCount();//查数据表列数
      for(int i=1;i<=count;i++){
          //获取数据表列名、列类型、列的数据长度
          System.out.print(Manage.rs.getMetaData().getColumnName(i)+"\t"+Manage.rs.getMetaData().getColumnTypeName(i)+"\t"+Manage.rs.getMetaData().getColumnDisplaySize(i)+",");
          if(i==count){
             System.out.println();
          }
      }
      ((Scanner) Manage.input).nextLine();
      String lieming=((Scanner) Manage.input).nextLine();
       System.out.println("请输入要改动的数值");
       String shuzhi=((Scanner) Manage.input).nextLine();
       System.out.println("请输入改动后的数值");
       String gaidong=((Scanner) Manage.input).nextLine();
       System.out.println(sql+lieming+"="+shuzhi +"-" + gaidong);
       int i=Manage.stmt.executeUpdate(sql+lieming+"="+shuzhi +"-" + gaidong);
       System.out.println("改动成功一共修改了" + i + "条记录" );
       Judge.panduan(a);
  }
}


查找:用于查找数据表中的记录,对于针对性的记录功能还在开发中,目前只拥有全部显示的功能

 1 import java.sql.SQLException;
 2 
 3 public class Seek {
 4 
 5       public static  void Cha(String a) throws SQLException{
 6           String sql ="select * from "+ a ;
 7           Manage.rs = Manage.stmt.executeQuery(sql);
 8           int count= Manage.rs.getMetaData().getColumnCount();//得到数据表的列数
 9           while (Manage.rs.next()){//遍历行
10               for (int i = 1 ; i<=count ;i++){//遍历列
11                   System.out.print(Manage.rs.getString(i));
12                   System.out.print(",");
13               }
14               System.out.println();
15           }
16           Judge.panduan(a);
17       }
18 }

判断:用于操作完成后判断是否需要再次操作,选择否则关闭数据库连接,退出系统。

 1 import java.sql.SQLException;
 2 import java.util.Scanner;
 3 
 4 public class Judge {
 5     public static void panduan (String a) throws SQLException{
 6     int B=1;
 7     while(B==1){
 8     System.out.println("继续进行操作(1.是   0.否)");
 9     B=((Scanner) Manage.input).nextInt();
10     if(B==1){
11         Menu.Chose(a);
12     }
13     else{
14         break;
15     }
16     }
17     DBUtil.close(Manage.Con, Manage.stmt, Manage.rs);//关闭数据库连接
18     System.out.println("系统已退出");
19 }
20 }import java.sql.SQLException;
21 import java.util.Scanner;
22 
23 public class Judge {
24     public static void panduan (String a) throws SQLException{
25     int B=1;
26     while(B==1){
27     System.out.println("继续进行操作(1.是   0.否)");
28     B=((Scanner) Manage.input).nextInt();
29     if(B==1){
30         Menu.Chose(a);
31     }
32     else{
33         break;
34     }
35     }
36     DBUtil.close(Manage.Con, Manage.stmt, Manage.rs);//关闭数据库连接
37     System.out.println("系统已退出");
38 }
39 }

 

posted @ 2020-05-03 07:30  源星  阅读(462)  评论(0)    收藏  举报