学生数据库增删改查
准备:
1.mysql
安装步骤
jar包也在官网
2. 打开命令行cmd
输入mysql -u root -p出现password:输入自己设置的密码即可开始使用。
如果有使用sql server的经验就知道这部是相当于连接服务器。
3. 熟悉mySQL基本操作
创建数据库:CREATE DATABASE 数据库名;
删除数据库:drop database 数据库名;
创建表:
use 数据库名;
CREATE TABLE 表名 (列名 数据类型,…);
向表中插入值:
查询表:
4.代码实现连接
ps:注释的函数调用还需要注释其他一些地方才能正常在控制台显示!!
package jdbcDemo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Demo {
public static void main(String[] args) {
//声明Connection对象
Connection con;
//驱动程序名
String driver = "com.mysql.jdbc.Driver";
//URL指向要访问的数据库名students(你所创建的数据库)
String url = "jdbc:mysql://localhost:3306/students";
//MySQL配置时的用户名
String user = "root";
//MySQL配置时的密码
String password = "你设置的密码";
//遍历查询结果集
try {
//加载驱动程序
Class.forName(driver);
//1.getConnection()方法,连接MySQL数据库!!
con = DriverManager.getConnection(url,user,password);
if(!con.isClosed())
System.out.println("Succeeded connecting to the Database!");
//2.创建statement类对象,用来执行SQL语句!!
Statement statement = con.createStatement();
// add(con);
// delete(con);
// update(con);
// avegrade(con);
allDesc(con);
//要执行的SQL语句
// String sql = "select * from Stu";
// //3.ResultSet类,用来存放获取的结果集!!
// ResultSet rs = statement.executeQuery(sql);
//
// System.out.println("---------------------");
// System.out.println("执行结果如下所示:");
// System.out.println("---------------------");
// System.out.println("学号" + "\t" + "姓名" + "\t" + "年龄");
// System.out.println("---------------------");
//
// String no = null;
// String name = null;
// int age = 0;
// while(rs.next()){
// no = rs.getString("Sno");
// name = rs.getString("Sname");
// age = (int) rs.getLong("Sage");
//
// System.out.println(no + "\t" + name + "\t" + age);
// }
// rs.close();
// con.close();
} catch(ClassNotFoundException e) {
//数据库驱动类异常处理
System.out.println("Sorry,can`t find the Driver!");
e.printStackTrace();
} catch(SQLException e) {
//数据库连接失败异常处理
e.printStackTrace();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
System.out.println("数据库数据成功获取!!");
}
}
public static void add(Connection con) throws SQLException {
PreparedStatement psql;
//预处理添加数据,其中有两个参数--“?”
psql = con.prepareStatement("insert into Stu (Sno,Sname,Sage) "
+ "values(?,?,?)");
psql.setString(1, "12"); //设置参数1,创建id为3212的数据
psql.setString(2, "lily"); //设置参数2,name 为王刚
psql.setInt(3, 20);
psql.executeUpdate(); //执行更新
}
public static void delete(Connection con) throws SQLException {
PreparedStatement psql;
//预处理删除数据
psql = con.prepareStatement("delete from Stu where Sage = 20");
psql.executeUpdate();
psql.close();
}
public static void update(Connection con) throws SQLException {
PreparedStatement psql;
psql = con.prepareStatement("update Stu set Sname = ? where Sno = 1");
psql.setString(1,"小小");
psql.executeUpdate();
}
public static void avegrade(Connection con) throws SQLException {
String sql = "select avg(grade) from sc where sno=1";
PreparedStatement psql = con.prepareStatement(sql);
ResultSet rs = psql.executeQuery();
while(rs.next()) {
double a = rs.getDouble("avg(grade)");
System.out.println("学号为1" + " 平均成绩:"+a);
}
}
public static void allDesc(Connection con) throws SQLException {
String sql = "select Sname,Cname,Grade from Stu,Cour,SC where Stu.Sno = SC.Sno and Cour.Cname = '数据结构' and Cour.Cno = SC.Cno order by SC.grade desc";
System.out.println("---------------------");
System.out.println("执行结果如下所示:");
System.out.println("---------------------");
System.out.println("课程名" + "\t" + "成绩" + "\t" +"姓名" );
System.out.println("---------------------");
PreparedStatement psql = con.prepareStatement(sql);
ResultSet rs = psql.executeQuery();
while(rs.next()){
System.out.println(rs.getString("Cname") +"\t" + rs.getInt("Grade")+ "\t" + rs.getString("Sname"));
}
}
}