JDBC连接数据库以及JDBC增删改查操作

编程入门 行业动态 更新时间:2024-10-17 07:21:13

JDBC<a href=https://www.elefans.com/category/jswz/34/1770036.html style=连接数据库以及JDBC增删改查操作"/>

JDBC连接数据库以及JDBC增删改查操作

一,创建数据库语句:

CREATE DATABASE school;

二,创建表语句:

CREATE TABLE student(
stuId INT PRIMARY KEY AUTO_INCREMENT,
stuName VARCHAR(20),
stuSex VARCHAR(2),
stuAge INT,
stuAddress VARCHAR(50)
);

三,插入数据语句:

INSERT INTO student(stuName,stuSex,stuAge,stuAddress)VALUES('张三','男',18,'河南');
INSERT INTO student(stuName,stuSex,stuAge,stuAddress)VALUES('李四','男',19,'江苏');
INSERT INTO student(stuName,stuSex,stuAge,stuAddress)VALUES('小红','女',20,'浙江');
INSERT INTO student(stuName,stuSex,stuAge,stuAddress)VALUES('小明','男',21,'北京');

四,JDBC进行数据库的操作

先在 IDEA 中创建实体类:类的名字对应数据库表的名字、类的属性对应表的字段。

public class Student {//属性private int stuId;private String stuName;private String stuSex;private int stuAge;private String stuAddress;//方法public int getStuId() {return stuId;}public String getStuName() {return stuName;}public String getStuSex() {return stuSex;}public int getStuAge() {return stuAge;}public String getStuAddress() {return stuAddress;}public void setStuId(int stuId) {this.stuId = stuId;}public void setStuName(String stuName) {this.stuName = stuName;}public void setStuSex(String stuSex) {this.stuSex = stuSex;}public void setStuAge(int stuAge) {this.stuAge = stuAge;}public void setStuAddress(String stuAddress) {this.stuAddress = stuAddress;}@Overridepublic String toString() {return "Student{" +"stuId=" + stuId +", stuName='" + stuName + '\'' +", stuSex='" + stuSex + '\'' +", stuAge=" + stuAge +", stuAddress='" + stuAddress + '\'' +'}';}
}

JDBC的增删改查操作

junit的用法补充:

junit可以使方法脱离main方法直接执行,方便进行程序测试。

JDBC的全查操作 查询获得的结果集。结果集的游标默认指向的是数据标题行,需要使用 next() 方法移动游标,指向真正的数据行。该 方法的返回值是boolean类型,如果向下移动有数据行返回true,否则返回false。

JDBC全查的代码操作

import org.junit.Test;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class StudentTest {private String driver="com.mysql.cj.jdbc.Driver";private String url="jdbc:mysql://localhost:3306/school";private String username="root";private String password="root";@Testpublic void testSelectAll() throws ClassNotFoundException, SQLException {//JDBC操作数据库的步骤//1.首先在项目根目录创建lib文件夹,放入jdbc驱动程序,然后Add As Library//2.加载数据库驱动Class.forName(driver);//3.使用驱动管理器来获得连接---获得一个数据库连接对象ConnectionConnection con= DriverManager.getConnection(url, username, password);//4.使用Connection创建PreparedStatement预处理对象---PreparedStatement对象可以执行带 ? 的sql语句String sql="select * from student";PreparedStatement pstm = con.prepareStatement(sql);//5.使用PreparedStatement对象执行SQL语句,获得ResultSet结果集对象ResultSet rs = pstm.executeQuery();//6.操作判断--增删改返回的是影响的行数(返回值是int),只有查询获得结果集(返回值ResultSet)//让结果集的游标不断的往下移动,直到没有数据的时候结束循环List<Student> studentList=new ArrayList<>();while (rs.next()){//根据字段名称获取表中的数据int stuId=rs.getInt("stuId");String stuName=rs.getString("stuName");String stuSex=rs.getString("stuSex");int stuAge=rs.getInt("stuAge");String stuAddress=rs.getString("stuAddress");//把以上数据封装到Student对象中Student student=new Student();student.setStuId(stuId);student.setStuName(stuName);student.setStuSex(stuSex);student.setStuAge(stuAge);student.setStuAddress(stuAddress);//把当前行封装后的Student对象装载到 List集合中studentList.add(student);}System.out.println(studentList);//7.回收资源,先关闭rs结果集对象 再pstm预处理对象 最后con连接对象if(rs!=null){rs.close();}if(pstm!=null){pstm.close();}if(con!=null){con.close();}}
}

JDBC添加的代码操作

import org.junit.Test;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class StudentTest {private String driver="com.mysql.cj.jdbc.Driver";private String url="jdbc:mysql://localhost:3306/school";private String username="root";private String password="root";@Testpublic void testAdd() throws ClassNotFoundException, SQLException {//1.导入驱动包//2.通过反射加载驱动程序Class.forName(driver);//3.通过驱动管理器获得数据库的连接对象Connection con= DriverManager.getConnection(url, username, password);//4.通过连接对象,获取SQ预处理对象String sql="insert into student(stuName,stuSex,stuAge,stuAddress)values(?,?,?,?)";PreparedStatement pstm = con.prepareStatement(sql);//实际开发是前端页面传递过来的数据,此处我们直接模拟一组数据Student student=new Student();student.setStuName("李四");student.setStuSex("男");student.setStuAge(19);student.setStuAddress("江苏");//5.1预处理对象的sql语句有 ? 所以需要进行传参pstm.setObject(1,student.getStuName());pstm.setObject(2,student.getStuSex());pstm.setObject(3,student.getStuAge());pstm.setObject(4,student.getStuAddress());//5.2执行更新(增删改都叫做数据库的更新,更新返回的是影响的行数)int n = pstm.executeUpdate();//6判断影响的行数 n > 0 表示插入成功,否则插入失败if(n>0){System.out.println("插入数据成功");}else{System.out.println("插入数据失败");}//7释放资源if((pstm!=null)){pstm.close();}if((con!=null)){pstm.close();}}
}

JDBC删除的代码操作

import org.junit.Test;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class StudentTest {private String driver="com.mysql.cj.jdbc.Driver";private String url="jdbc:mysql://localhost:3306/school";private String username="root";private String password="root";@Testpublic void testDel() throws ClassNotFoundException, SQLException {//1.导入驱动包//2.通过反射加载驱动程序Class.forName(driver);//3.通过驱动管理器获得数据库的连接对象Connection con= DriverManager.getConnection(url, username, password);//4.通过连接对象,获取SQ预处理对象String sql="delete from student where stuId=?";PreparedStatement pstm = con.prepareStatement(sql);//5.1预处理对象的sql语句有 ? 所以需要进行传参int stuId=2;pstm.setObject(1,stuId);//5.2执行更新(增删改都叫做数据库的更新,更新返回的是影响的行数)int n = pstm.executeUpdate();//6判断影响的行数 n > 0 表示删除成功,否则删除失败if(n>0){System.out.println("删除数据成功");}else{System.out.println("删除数据失败");}//7释放资源if(pstm!=null){pstm.close();}if(con!=null){con.close();}}
}

更多推荐

JDBC连接数据库以及JDBC增删改查操作

本文发布于:2024-03-05 10:03:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1711992.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:连接数据库   操作   JDBC

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!