目录
此教程展示如何在使用Java时如何链接数据库。
一、准备工作
1、环境
软件和jar包可以看自己喜好下面是我所使用的版本,这些东西在结尾可以下载
软件:IntelliJ IDEA 2023.3.4
数据库可视化软件:Navicat 17 for MySQL
jar包:mysql-connector-j-8.4.0.jar
2、导入jar包
1、先在项目里新建一个文件夹,然后把包复制粘贴进去。
2、将jar包添加为库
右键jar包选择添加为库,确定即可
二、编写连接代码
对数据库连接不熟悉的小伙伴一定要加这一判断连接是否成功,不然不知道哪里出错。
package stu.database;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
private static Connection con = null;
public static Connection getCon(){
try{
//加载驱动,其路径在左侧的jdbc里,如果和我的不一样,可以自己找到然后写上去
Class.forName("com.mysql.cj.jdbc.Driver");
}catch (ClassNotFoundException e){
System.out.println("加载数据库失败!");
e.printStackTrace();
}
try{
jdbc加载方式:mysql数据库类型://localhost:3306(端口号):要连接的数据库库名
String url = "jdbc:mysql://localhost:3306/store?";
String user = "root";//账户名称
String password = "123456";//密码
con = DriverManager.getConnection(url,user,password);//得到连接的对象
//判断数据库是否连接成功,不熟悉一定要加这个步骤不然不知道错在哪一步
if(con !=null){
System.out.println("数据库连接成功!");
}
}catch (SQLException e){
System.out.println("数据库连接失败!");
e.printStackTrace();
}
return con;
}
}
三、增删改查
1、新增和查询
在新增的同时执行查询看数据库是否已经有此信息,students为我的表格名称。
Integer snumber = Integer.parseInt(JTNumber.getText()); //获取文本框中的内容,具体多少个文本框看个人想要添加什么东西进去。
//检索学生,存储进入数据库
String sql = "select * from students where number='"+snumber+"'";
//打开数据库连接并创建Statement对象
try {
Statement stm = DBConnection.getCon().createStatement(); //为了执行sql语句
ResultSet rs = stm.executeQuery(sql); //运行上面的查重语句
if(rs.next()) {
JOptionPane.showMessageDialog(null, "该学号学生已存在!", "提示信息", JOptionPane.WARNING_MESSAGE);
}
else {
//插入一条记录
sql = "insert into students values('"+snumber+"','"+sname+"','"+ssex+"','"+sbirth+"','"+sclass+"','"+sacademy+"')";
int i = stm.executeUpdate(sql); //执行了这条插入学生的sql语句
if(i>0) {
JOptionPane.showMessageDialog(null, "添加成功!", "提示信息", JOptionPane.INFORMATION_MESSAGE);
}else {
JOptionPane.showMessageDialog(null, "添加失败!", "提示信息", JOptionPane.INFORMATION_MESSAGE);
}
}
stm.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
2、修改和查询
if(e.getSource() == ensureBtn) {
Integer snumber = Integer.parseInt(JTNumber.getText());
String sname = JTName.getText();
String ssex = "女";
String sbirth = JTBirth.getText();
String sclass = JTClass.getText();
String sacademy = JTAcademy.getText();
if(radioBtn01.isSelected()) {
ssex = "男";
}
//检索学生
String sql = "select * from students where number='"+snumber+"'";
//打开数据库连接并创建Statement对象
try {
Statement stm = DBConnection.getCon().createStatement();
ResultSet rs = stm.executeQuery(sql);
if(rs.next()) {
//更新一条记录
sql = "update students set name ='"+sname+"',sex='"+ssex+"',birth='"+sbirth+"',class='"+sclass+"',academy='"+sacademy+"'where number="+snumber;
int i = stm.executeUpdate(sql);
if(i>0) {
JOptionPane.showMessageDialog(null, "修改成功!", "提示信息", JOptionPane.INFORMATION_MESSAGE);
}else {
JOptionPane.showMessageDialog(null, "修改失败!", "提示信息", JOptionPane.INFORMATION_MESSAGE);
}
}
else {
JOptionPane.showMessageDialog(null, "该学号学生不存在!", "提示信息", JOptionPane.WARNING_MESSAGE);
}
stm.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
3、删除和查询
public void actionPerformed(ActionEvent e) {
if(e.getSource() == ensureBtn) {
Integer snumber = Integer.parseInt(JTNumber.getText());
//检索学生
String sql = "select * from students where number='"+snumber+"'";
//打开数据库连接并创建Statement对象
try {
Statement stm = DBConnection.getCon().createStatement();
ResultSet rs = stm.executeQuery(sql);
if(rs.next()) {
//删除一条记录
sql = "delete from students where number ='"+snumber+"'";
int i = stm.executeUpdate(sql);
if(i>0) {
JOptionPane.showMessageDialog(null, "删除成功!", "提示信息", JOptionPane.INFORMATION_MESSAGE);
}else {
JOptionPane.showMessageDialog(null, "删除失败!", "提示信息", JOptionPane.INFORMATION_MESSAGE);
}
}
else {
JOptionPane.showMessageDialog(null, "该账号不存在!", "提示信息", JOptionPane.WARNING_MESSAGE);
}
stm.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
4、查询群体
public List<Students> queryAllUser(){
Connection conn=null;
//预编译语句
PreparedStatement ps=null;
//结果集
ResultSet rs=null;
String sql="select * from students";
List<Students> list=new ArrayList<Students>();
try {
conn=DBConnection.getCon();
//获取结果集
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
Students student=new Students();
student.setId(rs.getInt(1));
student.setName(rs.getString(2));
student.setSex(rs.getString(3));
student.setBirthday(rs.getString(4));
student.setClasses(rs.getString(5));
student.setAcademy(rs.getString(6));
list.add(student);
}
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
四、安装包获取
阿里云盘: https://www.alipan.com/s/C7M3hQwpGKH
提取码: x2x1
如需完整学生信息管理系统项目可以去我的主页查阅另一篇文章
https://blog.csdn.net/m0_62304704/article/details/140066053?spm=1001.2014.3001.5502