思维图:
一、查询:DBUtils+数据库连接池(德鲁伊)方式,完成对表s的select操作
1.多行多列
package com.JDBC.datasource;
import com.JDBC.TEST.s;
import com.JDBC.utils.JDBCUtils_BY_Druid;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.junit.Test;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
//测试Druid的使用
public class Druid_aptch_ues {
@Test
public void TestSelect() throws SQLException {
//1.得到连接(druid)
Connection connection = new JDBCUtils_BY_Druid().connection();
//2.使用DBUtils 类和接口,先引入 commons-dbutils jar包,到本project中
//3.创建QueryRunner
QueryRunner queryRunner = new QueryRunner();
//4.就可以执行相关的方法,返回ArrayList 结果集(31行);
String sql="select * from s where Sage =?";
List list =queryRunner.query(connection,sql,new BeanListHandler<>(s.class),19);
for (s jieguo : list){
System.out.println(jieguo);
}
//释放
JDBCUtils_BY_Druid.close(null,connection,null);
//没必要关闭结果集 因为底层已经帮我实现了一次close(resultset);
//statement也是如此
}
}
2.单行的数据
@Test
public void TestSelectSingle() throws SQLException {
//1.得到连接(druid)
Connection connection = new JDBCUtils_BY_Druid().connection();
//2.使用DBUtils 类和接口,先引入 commons-dbutils jar包,到本project中
//3.创建QueryRunner
QueryRunner queryRunner = new QueryRunner();
String sql="select * from s where Sname =?";
//因为要的到单行的数据<------->单个对象,,Handler不用List了,用普通的BeanHandler就行
s single =queryRunner.query(connection,sql,new BeanHandler<>(s.class),"欧健");
System.out.println(single);
JDBCUtils_BY_Druid.close(null,connection,null);
}
3.单行单列
@Test
public void TestScalar() throws SQLException {
//1.得到连接(druid)
Connection connection = new JDBCUtils_BY_Druid().connection();
//2.使用DBUtils 类和接口,先引入 commons-dbutils jar包,到本project中
//3.创建QueryRunner
QueryRunner queryRunner = new QueryRunner();
//4.就可以执行相关的方法,返回单行单列
String sql="select Sno from s where Sname =?";
//因为返回的是一个对象,使用的Handler 就是 Scalar就是 ScalarHandler
Object object= queryRunner.query(connection,sql,new ScalarHandler(),"欧健");
System.out.println(object);
JDBCUtils_BY_Druid.close(null,connection,null);
}
二、DML
@Test
public void TestDML() throws SQLException {
Connection connection = new JDBCUtils_BY_Druid().connection();
QueryRunner queryRunner = new QueryRunner();
String sql="update s set Sno=? where Sname =?";
//使用queryRunner.update(); 方法这个方法可以实现全部dml
int row =queryRunner.update(connection,sql,"20105302233","欧健");
System.out.println(row>0?"影响成功":"没有对任何行产生影响");
JDBCUtils_BY_Druid.close(null,connection,null);
}
写在最后,数据类型一定要对应好!!!!!!!!



