文章目录
更新:
看到有sb在本文下评论:
附sb主页链接:https://blog.csdn.net/qq_47506374?type=blog
不知道这b哪来的狗脸,伸手党还伸出tm优越感了,全世界都tm欠你的,写这么详细了看不懂还怪我省略,就这理解力学你🐎学,赶紧退学吧,别浪费资源,你怎么不让我直接替你写代码呢?tmd分享出来一分钱没有,还要受你这狗byd的气,天天jbjb的,怎么你jb不行要找点存在感????
前言
为一个校内组织写了个小程序,这里的会员是学生,故录入学生特征。且以学号为主键。我使用的是MySQL8.0+jdk1.8+eclipse
源文件稍后上传。
已实现功能
1.登录
2.对数据库进行增删查改
主要分为2个界面:登录界面、操作界面
一、数据库
1.新建一个数据库
create database student;
2.创建表student
create table student(
vipid integer(12),
stuname char(10) not null,
sex enum('保密','女','男') not null default '保密',
college char(50) not null,
grade integer(4) not null,
stuid integer(12) primary key,
tele integer(11),
qq integer(12),
note char(100)
);
查看表结构
mysql> desc student;
+---------+------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+------------------------+------+-----+---------+-------+
| vipid | int | YES | | NULL | |
| stuname | char(10) | NO | | NULL | |
| sex | enum('保密','女','男') | NO | | 保密 | |
| college | char(50) | NO | | NULL | |
| grade | int | NO | | NULL | |
| stuid | int | NO | PRI | NULL | |
| tele | int | YES | | NULL | |
| qq | int | YES | | NULL | |
| note | char(100) | YES | | NULL | |
+---------+------------------------+------+-----+---------+-------+
9 rows in set (0.14 sec)
3.连接数据库
package utils;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.sql.Connection;
import mapper.IMapper;
/**
* 项目名称:会员管理系统
* 类名称:DBManager
* 类描述:用JDBC连接数据库的,固定写法。
* @author zongyue
*创建时间:2020年4月7日 下午3:44:32
* @version
*
*/
public class DBManager {
/*
* 工具类中的构造方法都是私有的
* 因为工具类中的方法都是静态的,不需要new对象,直接采用类名调用
* */
public DBManager(){
}
//静态代码块在类加载时执行并且只执行一次
static{
//第一步:注册驱动(作用:告诉Java程序,即将要连接的是哪个品牌的数据库)
//通过得到字节码对象的方式加载静态代码块,从而注册驱动程序
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException{
// 第二步:获取连接(表示JVM的进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的,使用完之后一定要关闭通道。)
String url = "jdbc:mysql://localhost:3306/STUDENT?useUnicode=true&characterEncoding=utf8&nullCatalogMeansCurrent=true&useSSL=true&useLegacyDatetimeCode=false&serverTimezone=UTC&allowPublicKeyRetrieval=true";//如果是本机,也可以将localhost:3306省掉
String user = "root";
String password = "trybest6@mysql";
Connection conn = (Connection)DriverManager.getConnection(url, user, password);
return conn;
}
// 第三步:获取数据库操作对象(专门执行sql语句的对象)
//
// 第四步:执行SQL语句(DQL DML....)
//
// 第五步:处理查询结果集(只有当第四步执行的是select语句的时候,才有这第五步处理查询结果集。)
//
//增删改结果集。因为sql语句是变化的,所以设为参数比较方便。params是占位符的,没学的可以忽略。
public int executeUpdate(String sql,Object[] params){
Connection conn=null;
PreparedStatement pst=null;
try {
conn=getConnection();//连接
pst=conn.prepareStatement(sql);//通道
if(params != null){
//占位符的应用。
for(int i=0;i<params.length;i++){
pst.setObject(i+1,params[i]);//往通道里放数据,占位符下标从1开始。
}
}
return pst.executeUpdate();
} catch (