JDBC练习

一个简易的在后台的学生信息的增删改查(JDBC)

1. 功能实现

==运行程序控制台提示如下:==

在这里插入图片描述

1.1 查询所有学生信息

在这里插入图片描述

1.2 添加学生信息

在这里插入图片描述

1.3 根据id修改学生信息

在这里插入图片描述

1.4 根据id删除学生信息

在这里插入图片描述

2. 代码实现

2.1 导入数据库信息
1-- 1、创建数据库jt_db数据库(如果不存在才创建) 2create database if not exists jt_db charset utf8; 3use jt_db; -- 选择jt_db数据库 4-- 2、在 jt_db 库中创建 stu (学生表) 5drop table if exists stu; 6create table stu( 7 stuid varchar(50), 8 name varchar(50), 9 gender char(2), 10 addr varchar(50), 11 score double 12); 13-- 3、往 stu 表中, 插入记录 14insert into stu values("1001",'张三','男', '北京', 86); 15
2.2 编写JdbcUtil 工具类
1package cn.tedu; 2 3import java.sql.Connection; 4import java.sql.DriverManager; 5import java.sql.ResultSet; 6import java.sql.SQLException; 7import java.sql.Statement; 8 9/** JDBC工具类 */ 10public class JdbcUtil { 11 /** 12 * 获取数据库连接对象并返回 13 * @return Connection对象 14 * @throws Exception 15 */ 16 public static Connection getConn() throws Exception{ 17 //1.注册驱动 18 Class.forName( "com.mysql.jdbc.Driver" ); 19 //2.获取连接 20 Connection conn = DriverManager.getConnection( 21 "jdbc:mysql:///jt_db?characterEncoding=utf-8", 22 "root", 23 "root"); 24 return conn; 25 } 26 27 /** 28 * 释放JDBC程序中的资源 29 * @param conn 连接对象 30 * @param stat 传输器对象 31 * @param rs 结果集对象 32 */ 33 public static void close(Connection conn, 34 Statement stat, ResultSet rs){ 35 if(rs != null){ 36 try { 37 rs.close(); 38 } catch (SQLException e) { 39 e.printStackTrace(); 40 } finally{ 41 rs = null; 42 } 43 } 44 if(stat != null){ 45 try { 46 stat.close(); 47 } catch (SQLException e) { 48 e.printStackTrace(); 49 } finally{ 50 stat = null; 51 } 52 } 53 if(conn != null){ 54 try { 55 conn.close(); 56 } catch (SQLException e) { 57 e.printStackTrace(); 58 } finally{ 59 conn = null; 60 } 61 } 62 } 63} 64

==如果你的数据库有密码和用户名请使用自己的==

2.3 编写studentManager的类
1package cn.tedu; 2 3import java.sql.Connection; 4import java.sql.PreparedStatement; 5import java.sql.ResultSet; 6import java.util.Scanner; 7 8import com.tedu.util.JdbcUtil; 9 10/** 11 * 学生信息管理系统 12 * 运行程序,根据选项,可以对学生信息进行增删改查操作。 13 */ 14public class StudentManager { 15 private static Scanner sc = new Scanner(System.in); 16 17 public static void main(String[] args) { 18 while (true) { 19 //1.提示选择操作选项 20 System.out.print("a:查询学生信息\t"); 21 System.out.print("b:添加学生信息\t"); 22 System.out.print("c:修改学生信息\t"); 23 System.out.println("d:删除学生信息"); 24 System.out.println("请输入操作,abcd任选一项:"); 25 String opt = sc.nextLine(); 26 //2.根据选项执行不同操作 27 if( "a".equalsIgnoreCase( opt ) ){ 28 findAll(); //查询学生信息 29 }else if( "b".equalsIgnoreCase( opt ) ){ 30 addStu(); //添加学生信息 31 }else if( "c".equalsIgnoreCase( opt ) ){ 32 updateStu(); //修改学生信息 33 }else if( "d".equalsIgnoreCase( opt ) ){ 34 deleteStu(); //删除学生信息 35 }else{ 36 System.out.println("输入错误,请重新输入!"); 37 } 38 } 39 } 40 41 /** a. 查询所有学生信息 */ 42 private static void findAll() { 43 Connection conn = null; 44 PreparedStatement ps = null; 45 ResultSet rs = null; 46 try { 47 conn = JdbcUtil.getConn(); 48 String sql = "select * from stu"; 49 ps = conn.prepareStatement(sql); 50 rs = ps.executeQuery(); 51 while(rs.next()){ 52 String stuid = rs.getString("stuid"); 53 String name = rs.getString("name"); 54 String gender = rs.getString("gender"); 55 String addr = rs.getString("addr"); 56 double score = rs.getDouble("score"); 57 System.out.println( stuid+","+name+","+gender 58 +","+addr+","+score ); 59 } 60 System.out.println("------------------------------------------------------------------------------"); 61 } catch (Exception e) { 62 e.printStackTrace(); 63 } 64 } 65 66 /** b. 添加学生信息 */ 67 private static void addStu() { 68 System.out.println("请输入要添加的学生编号:"); 69 String stuid = sc.nextLine(); 70 System.out.println("请输入姓名:"); 71 String name = sc.nextLine(); 72 System.out.println("请输入性别:"); 73 String gender = sc.nextLine(); 74 System.out.println("请输入地址:"); 75 String addr = sc.nextLine(); 76 System.out.println("请输入成绩:"); 77 double score = Double.parseDouble(sc.nextLine()); 78 Connection conn = null; 79 PreparedStatement ps = null; 80 ResultSet rs = null; 81 try { 82 conn = JdbcUtil.getConn(); 83 String sql = "insert into stu values(?,?,?,?,?)"; 84 ps = conn.prepareStatement(sql); 85 ps.setString(1, stuid); 86 ps.setString(2, name); 87 ps.setString(3, gender); 88 ps.setString(4, addr); 89 ps.setDouble(5, score); 90 int rows = ps.executeUpdate(); 91 if (rows > 0) { 92 System.out.println("添加成功!"); 93 } 94 } catch (Exception e) { 95 e.printStackTrace(); 96 } 97 } 98 99 /** c. 根据id修改学生信息 */ 100 private static void updateStu() { 101 System.out.println("请输入要修改的学生编号:"); 102 String stuid = sc.nextLine(); 103 System.out.println("请输入要修改的姓名:"); 104 String name = sc.nextLine(); 105 System.out.println("请输入要修改的性别:"); 106 String gender = sc.nextLine(); 107 System.out.println("请输入要修改的所在地址:"); 108 String addr = sc.nextLine(); 109 System.out.println("请输入要修改的成绩:"); 110 double score = Double.parseDouble(sc.nextLine()); 111 Connection conn = null; 112 PreparedStatement ps = null; 113 ResultSet rs = null; 114 try { 115 conn = JdbcUtil.getConn(); 116 String sql = "update stu set name=?,gender=?" 117 + ",addr=?,score=? where stuid=?"; 118 ps = conn.prepareStatement(sql); 119 ps.setString(1, name); 120 ps.setString(2, gender); 121 ps.setString(3, addr); 122 ps.setDouble(4, score); 123 ps.setString(5, stuid); 124 int rows = ps.executeUpdate(); 125 if (rows > 0) { 126 System.out.println("修改成功!"); 127 } 128 } catch (Exception e) { 129 e.printStackTrace(); 130 } 131 } 132 133 /** d. 根据id删除学生信息 */ 134 private static void deleteStu() { 135 System.out.println("请输入要删除的学生编号:"); 136 String stuid = sc.nextLine(); 137 Connection conn = null; 138 PreparedStatement ps = null; 139 ResultSet rs = null; 140 try { 141 conn = JdbcUtil.getConn(); 142 String sql = "delete from stu where stuid=?"; 143 ps = conn.prepareStatement(sql); 144 ps.setString(1, stuid); 145 int rows = ps.executeUpdate(); 146 if (rows > 0) { 147 System.out.println("删除成功!"); 148 } 149 } catch (Exception e) { 150 e.printStackTrace(); 151 } 152 } 153} 154 155
2.4 加载项目,使它在服务器上运行成功
GOOD GOOD STUDY
DAY DAY UP
结束,谢谢!!!!!!!!!!!!!!!!
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )