mysql数据库管理系统 java菜鸟

1 篇文章 0 订阅
1 篇文章 0 订阅

包    mysql-connector-java-8.0.17.jar

 

Main class

package src;

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


public class Main extends Method {
	static Connection conn;//sql连接
	public static void main(String[] args) {
		new Main();
	}
	public Main() {
		try {
			 conn = DriverManager.getConnection("jdbc:mysql://ip:3306/数据库?useUnicode=true&characterEncoding=UTF-8","账号","密码");
			System.out.println("数据库连接成功!");
			//Help word
			help();
		} catch (SQLException e) {
			e.printStackTrace(); 
		}finally {
			try {
				conn.close();
				println("已关闭sql连接通道\n正在退出系统\n退出系统");
				System.exit(0);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
	}

}
方法类

package src;

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

public class Method {
	static SQLTable SqlClass = new SQLTable();
	static Scanner Scan = new Scanner(System.in);
	static Main m = new Main();
	public static void Switch() throws SQLException {
		String tableName;
		print("");
		String input = Scan.next();
		switch (input) {
			case "help":
				help();
				break;
			case "exit":
				break;
			case "1":
				SqlClass.showtables(Main.conn);
				break;
			case "2":
				tableName = input("请输入表名");
				SqlClass.show(Main.conn,tableName);
				break;
			case "3":
				tableName = input("请输入表名");
				print("请输入姓名,年龄  PS:格式  宋**   18  ");
				String data[] = new String[2];
				//遍历输入
				for(int i = 0 ; i<data.length;i++)
				{
					data[i]=Scan.next();
				}
				String name = data[0];
				int age = Integer.valueOf(data[1]);
				SqlClass.add(Main.conn,tableName, name, age);
				break;
			case "4":
				tableName = input("请输入表名");
				String delName = input("请输入删除的姓名");
				SqlClass.del(Main.conn, tableName, delName);
				break;
			case "5":
				tableName = input("请输入表名"); 
				String queryname = input("请输入查询的姓名");
				SqlClass.query(Main.conn, tableName, queryname);
				break;
			case "6":
				tableName = input("请输入表名"); 
				String updatename = input("请输入要更新年龄的姓名");
				print("请输入要更新的年龄");
				int updateAge = Scan.nextInt();
				SqlClass.update(Main.conn, tableName, updatename,updateAge);
				break;
			default:
				help();
				break;
		}
	}
	//获取输入方法 参数:显示给用户的提示
	public static String input(String str) {
		
		print(str);
		str = Scan.next();
		return str;
	}
	public static void help() throws SQLException {
		/*
		 查看表列表
		 查看表数据
		 增
		 删
		 改
		 查		 
		*/
		println("help命令帮助文档\n"+
				"exit命令退出系统\n"+
				"1:查看表列表\n" + 
				"2:查看表数据\n" + 
				"3:增加记录\n" + 
				"4:删除记录\n" + 
				"5:查询记录\n" + 
				"6:更新年龄"
			);
		//流程控制
		Switch();
	}
	public static void exit() {
		
	}
	public static void println(String str) {
		System.out.println(str);
	}
	public static void print(String str) {
		System.out.print(str+"\nSQL:>");
	}
}
sql语句类

package src;

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

public class SQLTable extends Method{
	Statement stat;
	ResultSet rs ;
	
	//添加记录 参数:sql连接 表名  姓名 年龄
	public void add(Connection conn, String tableName , String name , int age ) throws SQLException {
		String sql = "INSERT INTO "+tableName+"(name,age) VALUES(\""+name+"\","+age+")";
		
		stat = conn.createStatement();
		stat.execute(sql);//执行sql语句并返回结果集
		if(stat != null)
			System.out.println("数据添加成功");//提示数据结果
		else
			System.out.println("数据添加失败");
		Switch();
	}
	
	//删除记录 参数:sql连接 表名  姓名 
	public void del(Connection conn, String tableName , String delName ) throws SQLException {
		String sql ="DELETE FROM "+tableName+" WHERE name=\""+delName+"\"";
		stat = conn.createStatement();
		stat.execute(sql);//执行sql语句并返回结果集
		if(stat != null)//提示数据结果
			System.out.println("数据删除成功");
		else
			System.out.println("数据删除失败|可能无此学生");
		Switch();
	}
	
	//查询记录 参数:sql连接 表名  姓名 
	public void query(Connection conn, String tableName , String queryName ) throws SQLException{
		String sql ="SELECT * FROM "+tableName+" WHERE name=\""+queryName+"\" ";
		stat = conn.createStatement();
		rs = stat.executeQuery(sql);//执行sql语句并返回结果集
		if(rs != null) {
			System.out.println("数据搜索成功");//提示数据结果
			System.out.println("序号\t姓名\t年龄");
			while (rs.next()) {//显示表数据
				int id = rs.getInt("id");
				String name = rs.getString("name");
				int age = rs.getInt("age");
				System.out.println(id+"\t"+name+"\t"+age);
				}
		}
		else
		{
			System.out.println("数据搜索失败");	
		}
		Switch();
	}
	
	//更新记录 参数:sql连接 表名  姓名  更新姓名  更新年龄
	public void update(Connection conn, String tableName , String name , int updateAge ) throws SQLException {
		String sql ="UPDATE "+tableName+" SET age="+updateAge+" WHERE name=\""+name+"\"";
		stat = conn.createStatement();
		stat.execute(sql);
		if(stat != null)
			System.out.println("数据更新成功");//提示数据结果
		else
			System.out.println("数据更新失败");
		
		Switch();
	}
	
	//显示所有表数据  参数:sql连接 表名 
	public void show(Connection conn, String tableName ) throws SQLException {
		String sql = "SELECT * FROM `"+tableName+"` ";
		stat = conn.createStatement();
		rs = stat.executeQuery(sql);//执行sql语句并返回结果集
		System.out.println("序号\t姓名\t年龄");
		while (rs.next()) {//显示表
			int id = rs.getInt("id");
			String name = rs.getString("name");
			int age = rs.getInt("age");
			System.out.println(id+"\t"+name+"\t"+age);
			}
		
		Switch();
	}
	
	//显示表列表
	public void showtables(Connection conn) throws SQLException {
		String sql = "SHOW TABLES";
		stat = conn.createStatement();
		rs = stat.executeQuery(sql);//执行sql语句并返回结果集
		//遍历结果集
		while (rs.next()) {
			System.out.println("表名:\t"+rs.getString(1));//显示表名
		}
		if(rs.next())
			System.out.println("无表");//提示数据库无表
		Switch();
	}
}

 

如果无法连接数据库,请把你的数据库设置一个%的用户,linux服务器可能要设置防火墙

linux:关闭防火墙systemctl stop firewalld.service

linux:开启防火墙systemctl start firewalld.service

设置开放3306端口:https://www.cnblogs.com/uoar/p/8056174.html【如有侵权,联系删除】

 

注:阿里云服务器centOS过程,以下是阿里云售后的技术人员提供

centos7,防火墙放行3306端口可输入命令: firewall-cmd --permanent --add-port=3306/tcp 然后重启防火墙: systemctl restart firewalld

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值