JDBC操作MYSQL数据库

  1. 开发Java数据库应用程序,该程序针对教学数据库JXDB8及其三个表STUDENT、COURSE、SC进行数据的增删改查操作。程序功能具体包括:
    (1)输入相关数据到三个表中,包括教材中三个表的数据;
    (2)定义有参数的存储过程,并调用存储过程,要求根据用户的输入实现数据查询:①查询指定学号的学生的全部信息,②查询指定课程学生的全部修课信息。要求以表单的形式显示查询的结果;
    (3)更新指定学生的学生信息;
    (4)删除指定学生的选课信息;

(1)数据库中的操作:
建立数据库JX_DB8

CREATE DATABASE jx_db8;
建立表student的结构
CREATE TABLE student(
Sno CHAR(9),
sname CHAR(20),
sex CHAR(2),
sage INT,
sdept CHAR(20)
);
建立表course的结构
CREATE TABLE Course(
    Cno CHAR(6),
    Cname VARCHAR(10),
    Lhour SMALLINT,
    Ccreadit SMALLINT,
    Semester CHAR(2) 
);
建立表sc的结构
CREATE TABLE SC(
    Sno CHAR(8),
    Cno CHAR(6),
    Grade SMALLINT    
);

JAVA语句对student表增加数据:

package com.sql;
import java.sql.*;
public class student {

    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动
        
        String jdbc="jdbc:mysql://127.0.0.1:3307/jx_db8";
        Connection conn=DriverManager.getConnection(jdbc, "root", "022831");//链接到数据库
        
        Statement state=conn.createStatement();   //容器
        String sql="insert into student values('15202101','刘芳','女',17,'计算机系'),"
        		+ "('15202102','张晓晨','男',19,'计算机系'),"
        		+ "('15202103','王文选','男',20,'计算机系'),"
        		+ "('15202104','张玲','女',21,'计算机系'),"
        		+ "('15202105','李莉萍','女',19,'计算机系')";   //SQL语句
        
        state.executeUpdate(sql);         //将sql语句上传至数据库执行
        
        conn.close();//关闭通道

    }
}
JAVA语句对course表增加数据:
package com.sql;

import java.sql.*;


public class course {

    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动
        
        String jdbc="jdbc:mysql://127.0.0.1:3307/jx_db8";
        Connection conn=DriverManager.getConnection(jdbc, "root", "022831");//链接到数据库
        
        Statement state=conn.createStatement();   //容器
        String sql="insert into course values('CS-110','计算机导论','32','2','秋'),"
        		+ "('CS-201','数据结构','80','5','秋'),"
        		+ "('CS-221','软件工程','64','4','春'),"
        		+ "('EE-122','电路基础','48','3','秋'),"
        		+ "('EE-201','电工电子','80','5','春')";   //SQL语句
        
        state.executeUpdate(sql);         //将sql语句上传至数据库执行
        
        conn.close();//关闭通道

    }
}
JAVA语句对sc表增加数据:
package com.sql;

import java.sql.*;


public class sc {

    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动
        
        String jdbc="jdbc:mysql://127.0.0.1:3307/jx_db8";
        Connection conn=DriverManager.getConnection(jdbc, "root", "022831");//链接到数据库
        
        Statement state=conn.createStatement();   //容器
        String sql="insert into sc values('15202101','CS-110',95),"
        		+ "('15202101','CS-201',90),"
        		+ "('15202102','CS-110',85),"
        		+ "('15202102','EE-201',80),"
        		+ "('15202103','CS-110',82),"
        		+ "('15202103','CS-201',75),"
        		+ "('15202103','EE-122',87)";   //SQL语句
        
        state.executeUpdate(sql);         //将sql语句上传至数据库执行
        
        conn.close();//关闭通道

    }
}
(2)①
查询学号为15202101的学生的信息
package com.use;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
public class stuuse {
 
 public static void main(String[] args) throws ClassNotFoundException, SQLException {
	 Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动
     
     String jdbc="jdbc:mysql://127.0.0.1:3307/jx_db8";
     Connection conn=DriverManager.getConnection(jdbc, "root", "022831");//链接到数据库     
  try{

   ResultSet rs = null;
   // 设置调用的存储过程名及参数情况,注意的是存储过程不可以有输出参数
   CallableStatement proc = conn.prepareCall("{ call show_stu(?)}");
   // 设置输入参数
   proc.setString(1,"15202101");
   // 调入存储过程
   proc.execute();
   // 取出存储过程的结果集
   rs = proc.getResultSet();
  for(int i=0;rs.next();i++)
    System.out.println("姓名:"+rs.getString(2)+"  "+"性别:"+rs.getString(3)+"  "+"年龄:"+rs.getString(4)+"  "+"系:"+rs.getString(5));
   conn.close();
  }catch (SQLException e){
   e.printStackTrace();
  }}}
存储过程的SQL语句:
DELIMITER //
CREATE PROCEDURE show_stu(IN sno1 CHAR(9))
BEGIN
      SELECT * FROM student
      WHERE sno=sno1;
END //
DELIMITER;

②查询指定课程学生的全部修课信息
JAVA代码:

package com.use;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
public class scuse {
 
 public static void main(String[] args) throws ClassNotFoundException, SQLException {
	 Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动
     
     String jdbc="jdbc:mysql://127.0.0.1:3307/jx_db8";
     Connection conn=DriverManager.getConnection(jdbc, "root", "022831");//链接到数据库     
  try{

   ResultSet rs = null;
   // 设置调用的存储过程名及参数情况,注意的是存储过程不可以有输出参数
   CallableStatement proc = conn.prepareCall("{ call show_sc(?)}");
   // 设置输入参数
   proc.setString(1,"EE-201");
   // 调入存储过程
   proc.execute();
   // 取出存储过程的结果集
   rs = proc.getResultSet();
  for(int i=0;rs.next();i++)
    System.out.println(rs.getString(1));
   conn.close();
  }catch (SQLException e){
   e.printStackTrace();
  }}}
SQL语句:
DELIMITER $
CREATE PROCEDURE show_sc(IN cno1 CHAR(6))
BEGIN
      SELECT cno FROM sc
      WHERE sno IN (SELECT sno FROM sc WHERE (cno=cno1));
END $
DELIMITER;

更新的JAVA语句:

package com.change;
import java.sql.*;
public class stuchange {

    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动
        
        String jdbc="jdbc:mysql://127.0.0.1:3307/jx_db8";
        Connection conn=DriverManager.getConnection(jdbc, "root", "022831");//链接到数据库
        
        Statement state=conn.createStatement();   //容器
        String sql="update student set sage=25 where sno='15202101' ";   //SQL语句
        state.executeUpdate(sql);         //将sql语句上传至数据库执行
        
        conn.close();//关闭通道

    }

}
删除的JAVA语句:
package com.change;
import java.sql.*;
public class scchange {
    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动
        
        String jdbc="jdbc:mysql://127.0.0.1:3307/jx_db8";
        Connection conn=DriverManager.getConnection(jdbc, "root", "022831");//链接到数据库
        
        Statement state=conn.createStatement();   //容器
        String sql="delete from sc where sno='15202101'";   //SQL语句
        state.executeUpdate(sql);         //将sql语句上传至数据库执行
        
        conn.close();//关闭通道

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值