概述
一,创建数据库语句:
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;
}
@Override
public 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";
@Test
public void testSelectAll() throws ClassNotFoundException, SQLException {
//JDBC操作数据库的步骤
//1.首先在项目根目录创建lib文件夹,放入jdbc驱动程序,然后Add As Library
//2.加载数据库驱动
Class.forName(driver);
//3.使用驱动管理器来获得连接---获得一个数据库连接对象Connection
Connection 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";
@Test
public 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";
@Test
public 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增删改查操作的全部内容,希望文章能够帮你解决JDBC连接数据库以及JDBC增删改查操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复