IDEA总结(JDBC增删改查)

  • Post author:
  • Post category:其他


1 JDBC

概念:Java数据库连接,是Java语言中用来规范客户端程序 如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。 各数据库厂商根据JDBC的规范,实现自身数据库操作的功能代码,然后以jar包(数据库厂商提供的驱动 包)的形式提供给开发人员使用,开发人员使用反射的机制创建这些具体实现类,按照JDBC的规范来完 成数据库的操作。 接口和JDBC规范的理解:

2 创建数据库 创建学生信息表

设置数据的视图---使用数据库
 use mydb;
 判断表存在就删除表 
drop table if exists student;
 #创建表
 create table student ( stuId int primary key auto_increment,
 stuName varchar(20),
 stuSex varchar(2),
 stuAge int, 
stuAddr varchar(50)

3 JDBC的增删改查

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

3.2 JDBC的查询操作

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

JDBC的全查操作 );

插入测试数据
 insert into student(stuName,stuSex,stuAge,stuAddr)
 values('张三','男',20,'河南'); insert into student(stuName,stuSex,stuAge,stuAddr) values('小美','女',18,'山东'); insert into student(stuName,stuSex,stuAge,stuAddr) values('Rose','女',19,'美国'); insert into student(stuName,stuSex,stuAge,stuAddr) values('Jack','男',21,'英国'); 
查询数据表 
select * from student; public class Student { //属性 private int stuId; private String stuName; private String stuSex; private int stuAge; private String stuAddr;
 //IDEA自动构造代码快捷键: alt + insert ... package com.hp.test2; import org.junit.Test; public class StudentTest 

{ /* junit用法:

1.方法要定义为无参无返回值的。且测试类的名字不能是Test

2.在方法上使用 @Test 这个注解

3.光标放在后面,然后使用 alt + 回车 进行自动导包,选择—Add ‘JUnit4’ to classpath

4.这个方法就不需要依赖main方法就可以直接执行

*/ @Test public void testSelectAll(){ System.out.println(“testSelectAll执行…”); } } public class StudentTest { /** * JDBC连接数据库,需要配置四大参数,同时需要导入数据库对应的驱动包 */

JDBC操作数据库的步骤

private String driver="com.mysql.cj.jdbc.Driver"; private String url="jdbc:mysql://127.0.0.1:3306/mydb? 
useSSL=false&serverTimezone=UTC";
 private String username="root";
 private String password="";
 @Test public void testSelectAll() throws ClassNotFoundException, SQLException

//1.首先在项目根目录创建lib文件夹,放入jdbc驱动程序,然后Add As Library

//2.加载数据库驱动 Class.forName(driver);

//3.使用驱动管理器来获得连接—获得一个数据库连接对象Connection Connection con=DriverManager.getConnection(url, username, password); // 生成方法调用返回值的快捷键:ctrl + alt + v

//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 studentList=new ArrayList<>(); //定义集合(大的容器),用来装 Student对象(小容器)

while(rs.next()){ //根据字段名称获取表中的数据 int stuId=rs.getInt("stuId"); 
String stuName=rs.getString("stuName");
 String stuSex=rs.getString("stuSex");
 int stuAge=rs.getInt("stuAge"); 
String stuAddr=rs.getString("stuAddr"); 
//把以上数据封装到Student对象中 Student student=new Student();
 //一行数据就封装成了一个Student对象 student.setStuId(stuId);
 student.setStuName(stuName); 
student.setStuSex(stuSex); 
student.setStuAge(stuAge);
 student.setStuAddr(stuAddr);
 //把当前行封装后的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(); } 
}
 



版权声明:本文为Q53100原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。