MySQL-JDBC的一些练习

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41690324/article/details/82857329

首先,我的表为

1.查询女性,成绩80以上的学生数量

package demoooo;

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

/*
 * 查询女性,成绩80以上的学生数量
 */
public class StudentDemo {
	public static void main(String[] args) throws ClassNotFoundException,
			SQLException {
		// 为了练习都所以写了出来
		Class.forName("com.mysql.jdbc.Driver");
		Connection con = DriverManager.getConnection(
				"jdbc:mysql://localhost:3306/stab", "root", "root");
		PreparedStatement pst = con
				.prepareStatement("SELECT * FROM `student`;");
		ResultSet rs = pst.executeQuery();
		// 定义用来检测数量的指针
		int index = 0;
		while (rs.next()) {
			if (rs.getString("sex").equals("女") && rs.getInt("score") > 80) {
				index++;
			}
		}
		System.out.println("女性,成绩80以上的学生数量为"+index);

	}
}
输出结果:
女性,成绩80以上的学生数量为0

2.将姓周的男同学的的成绩改为100

package demoooo;

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

import JDBCUtils.Utils;

/*
 * 将姓周的男同学的的成绩改为100
 */
public class demo2 {
	public static void main(String[] args) throws SQLException {
		// 直接调用我写的工具类了
		Connection con = Utils.getConnection();
		Statement stat = con.createStatement();
		// 返回受到影响的行数
		int row = stat.executeUpdate("update student set score=100 where id=3");
		System.out.println(row);
	}
}
输出结果:
1

3.查询成绩大于60的女性,显示姓名,成绩

package demoooo;

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

import JDBCUtils.Utils;

/*
 * 查询成绩大于60的女性,显示姓名,成绩
 */
public class Demo3 {
	public static void main(String[] args) throws SQLException {

		Connection con = Utils.getConnection();
		PreparedStatement pst = con
				.prepareStatement("SELECT * FROM `student`;");
		ResultSet rs = pst.executeQuery();
		while (rs.next()) {
			if (rs.getInt("score") > 60 && rs.getString("sex").equals("女")) {
				System.out.println("姓名:" + rs.getString("name") + "  成绩:"
						+ rs.getInt("score"));
			}
		}

	}
}
输出结果:
姓名:李少荣  成绩:80
姓名:张秀花   成绩:68

4.分别统计所有男同学的平均分,所有女同学的平均分及总平均分

package demoooo;

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

import JDBCUtils.Utils;

/*
 * 分别统计所有男同学的平均分,所有女同学的平均分及总平均分
 */
public class Demo4 {
	public static void main(String[] args) throws SQLException {
		Connection con = Utils.getConnection();
		PreparedStatement pst = con
				.prepareStatement("SELECT * FROM `student`;");
		ResultSet rs = pst.executeQuery();
		int boyavg = 0, grilavg = 0, avg = 0;
		while (rs.next()) {
			if (rs.getString("sex").equals("男")) {
				boyavg = rs.getInt("score") + boyavg;
			}
			if (rs.getString("sex").equals("女")) {
				grilavg = rs.getInt("score") + grilavg;
			}
			avg = rs.getInt("score") + avg;
		}
		System.out.println("男同学平均分:" + boyavg / 3);
		System.out.println("女同学平均分:" + grilavg / 4);
		System.out.println("所有同学平均分:" + avg / 7);
	}
}
输出结果:
男同学平均分:69
女同学平均分:63
所有同学平均分:65

猜你喜欢

转载自blog.csdn.net/qq_41690324/article/details/82857329