1. 程式人生 > >MySQL-JDBC的一些練習

MySQL-JDBC的一些練習

首先,我的表為

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