MySQL8.0.11借助java程序实现增删等功能(跳坑记,功能待添加)

 

网上有的那些内容我就不再赘述了,只说挡住我的几个“巨坑”。

(注意,以下内容仅适用于MySQL8.0级及以上版本,JDK8及以上版本,网上的例子随影的版本大多很陈旧)

一定要安装MySQL的jdbc包,并且把这个包设置到classpath中,网上教程很多,详细内容就不说了

jdbc包下载地址

下面是连接数据库的一段内容:

String driver = "com.mysql.cj.jdbc.Driver";
String url= "jdbc:mysql://localhost:3306/imooc?useSSL = false&serverTimezone = UTC&";
String user = "root";
String password = "你的密码";

其中,imooc是MySQL中的数据库的名字,查看MySQL数据库有两种方法:一是用MySQL的可视化工具,如Navicat for MySQL查看,二是在cmd中输入mysql -u root -p指令后输入密码登录,然后输入show databases查看数据库。还要注意“?”后面的格式

 

还有一个巨坑,我觉得成熟的程序员都不会踩,但我太年轻了。。。就是建立数据库,命制表名的时候,一定要注意表名不要和数据库中的某些关键字“重名”,否则会引起一些莫名其妙的麻烦。比如我,把一个表名设置成了“table”,现在回想起来,这不作死吗?。。。唉,搞了那么长时间才发现。这个问题延展面很大,以后一定注意。

 

下面是我的程序,供大家参考。(在编程的过程中吸收了诸子百家的内容,我也不知道有哪些内容经过了小Copy,如发现有抄袭嫌疑请联系我)

package Mysql;
import java.sql.Statement;
import java.util.Scanner;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JDBCTest {
	public static void main(String args[])throws SQLException, ClassNotFoundException {
		boolean flag = true;
		while(flag) {
			System.out.println("请输入您要执行的功能(1代表新建学生信息,2代表查看所有学生信息,3代表删除学生信息,其他输入则退出):");
	        Scanner sc = new Scanner(System.in);
	        String choose = sc.nextLine();
	        System.out.println(choose);
	        if(choose.equals("1")) {
	        	System.out.println("请输入您要新建的学生的学号:");
	        	int no = sc.nextInt();
	        	System.out.println(no);
	        	
	        	System.out.println("请输入您要新建的学生的姓名:");
	        	String name = sc.next();
	        	System.out.println(name);
	        	
	        	System.out.println("请输入您要新建的学生的性别:");
	        	String sex = sc.next();
	        	System.out.println(sex);
	        	
	        	System.out.println("请输入您要新建的学生的年龄:");
	        	int age = sc.nextInt();
	        	System.out.println(age);
	        	
	        	System.out.println("请输入您要新建的学生的专业:");
	        	String dept = sc.next();
	        	System.out.println(dept);
	        	
	        	System.out.println("请输入您要新建的学生的奖励情况:");
	        	String prize = sc.next();
	        	System.out.println(prize);
	        	
	        	System.out.println("\n您输入的信息是:\n" + no + "\n" + name + "\n" + sex + "\n" + age + "\n" + dept + "\n" + prize + "\n");
	        	
	        	add(no, name, sex, age, dept, prize);
	        	
	        	System.out.println("\n添加信息成功\n");
	        }
	        else if(choose.equals("2")) {
	        	show();
	        	
	        }
	        else if(choose.equals("3")) {
	        	System.out.println("请输入您要删除的学生的学号:");
	        	int no = sc.nextInt();
	        	del(no);
	        }
	        else {
	        	System.out.println("您已成功退出系统");
	        	flag = false;
	        }
			//add(123, "张三", "男", 20, "CS", "暂无");
	        //update("李诗诗","lishishi@com","666");
	        //show();
	        //del(123);
		}
        
    }
    //插入操作
    public static int add(int no, String name,String sex, int age, String dept, String prize) {
        int i=0;
        String sql="insert into zhy values (?,?,?,?,?,?)";
        DBConnection db = new DBConnection();
        try {        
        	
        	PreparedStatement ptmt = (PreparedStatement) db.conn.prepareStatement(sql);
            ptmt.setInt(1, no);
            ptmt.setString(2, name);
            ptmt.setString(3, sex);
            ptmt.setInt(4, age);
            ptmt.setString(5, dept);
            ptmt.setString(6, prize);
            ptmt.execute();
            //Statement statement = (Statement) db.conn.createStatement();
            //statement.executeUpdate(sql);
            
            ptmt.close();//关闭连接
            db.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return i;//返回影响的行数,1为执行成功
    }
    //查找操作
    public static void show(){
         String sql ="select * from zhy";
         DBConnection db = new DBConnection();
         System.out.println("-----------------");
         System.out.println("学号"+ "\t" + "姓名" +"\t"+ "性别" +"\t"+ "年龄" + "\t" + "专业" + "\t" + "奖励情况");
         System.out.println("-----------------");
         try {
        	 Statement stmt = db.conn.createStatement();
             ResultSet rs = stmt.executeQuery(sql);
             while(rs.next()){
                 int no = rs.getInt("no");
                 String name = rs.getString("name");
                 String sex = rs.getString("sex");
                 int age  = rs.getInt("age");
                 String dept = rs.getString("dept");
                 String prize = rs.getString("prize");
                 //可以将查找到的值写入类,然后返回相应的对象 
                 //这里 先用输出的端口显示一下
                 System.out.println(no +"\t"+ name +"\t"+ sex+ "\t" + age +"\t"+ dept +"\t"+ prize);

 			}
            rs.close();
            db.close();//关闭连接 
        } catch (SQLException e) {
            e.printStackTrace();
        } 
    }
    /*
    //更新操作
    public static int update(int no, String name,String sex, int age, String dept, String prize) {
        int i =0;
        String sql="update Table set n=?,name=? where name=?";
        DBConnection db = new DBConnection();
        
        try {
            PreparedStatement preStmt = (PreparedStatement) db.conn.prepareStatement(sql);
            preStmt.setInt(1, no);
            preStmt.setString(2, name);
            preStmt.setString(3, sex);
            preStmt.setInt(4, age);
            preStmt.setString(5, dept);
            preStmt.setString(6, prize);
            preStmt.executeUpdate();
            
            preStmt.close();
            db.close();//关闭连接 
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return i;//返回影响的行数,1为执行成功
    }
    */
    //删除操作
    public static int del(int no) {
        int i=0;
        String sql="delete from zhy where no=?";
        DBConnection db = new DBConnection();
        try {    
            PreparedStatement preStmt = (PreparedStatement) db.conn.prepareStatement(sql);
            preStmt.setInt(1, no);
            preStmt.executeUpdate();
            System.out.println("\n删除信息成功\n");
            preStmt.close();
            db.close();//关闭连接 
        } catch (SQLException e){
            e.printStackTrace();
        }
        return i;//返回影响的行数,1为执行成功
    }

}

 

 

 

以下是连接数据库的部分,单独放在了一个类里面。

package Mysql;
import java.sql.*;
public class DBConnection {
	String driver = "com.mysql.cj.jdbc.Driver";
    String url= "jdbc:mysql://localhost:3306/imooc?useSSL = false&serverTimezone = UTC&";
    String user = "root";
    String password = "697098";
    
    Connection conn;

    public DBConnection() {
    	try {
    		Class.forName(driver);// 加载驱动程序
    		System.out.println("找到驱动程序");
    	}
    	catch(Exception e) {
    		System.out.println("找不到驱动程序");
    	}
    	try {
            conn = DriverManager.getConnection(url, user, password);// 连续数据库
            System.out.println("连接成功"); 
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("连接失败");
        }

    }
    
    public void close() {
        try {
            this.conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值