简易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 }
浙公网安备 33010602011771号