JDBC-使用DBUtils去增删改查MySQL数据库,以及进行批量操作方法。

这里我们使用开源的c3p0连接池进行操作:

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import java.sql.SQLException;
import java.util.List;

public class DBUtils {
    public static void main(String[] args) {
        //开源连接池中获取连接池,这里我们不需要获得单个连接,以为DBUtiles工具会自动
        // 从连接池中获取一个connection,用完归还给连接池。
        QueryRunner queryRunner = new QueryRunner(JDBCUtils2_c3p0.getDataSource());
        //接下来我们开始准备参数,如果要做查询操作,那我们需要创建一个与查询内容相对应的javaBean
        //把我们查询到底内容存储到表中,供我们使用,比如我们要查询Student这个表,那表中的参数
        //我们要在javaBean中创建出来,并且名字要相同,如何创建相应的get set方法。
        String sql1 = "select * from student where ssex=?";
        String sql2 = "update student set spassword='909090' where sid=?";

        try {
        /*   List objects=  queryRunner.query(sql,new ArrayListHandler());
           for(Object[] obj : objects){
               System.out.println(Arrays.toString(obj));
           }*/
        //更新操作
        int result = queryRunner.update(sql2,10);
        if(result>0){
            System.out.println("更新成功!");
        }
        //查询操作
        List<Students> listStudent = queryRunner.query(sql1,new BeanListHandler<Students>(Students.class),"男");
        //javabean的对象去遍历
        for(Students students : listStudent){
            int sid = students.getSid();
            String sname = students.getSname();
            int cclass = students.getCclass();
            String spassword = students.getSpassword();
            System.out.println(sid+" "+sname+" "+cclass+" "+spassword);
        }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

下面是进行批量操作的演示

import org.apache.commons.dbutils.QueryRunner;
import java.sql.SQLException;

public class DBUtils_batch {
    public static void main(String[] args) {
        QueryRunner queryRunner = new QueryRunner(JDBCUtils2_c3p0.getDataSource());
        String sql = "insert into bathed values(?,?)";
        int n = 10;
        int m = 2;
        //n代表你要插入的条数,m代表sql语句中?的个数。
        Object[][] pram = new Object[n][m];
        for(int i=0;i<n;i++){
                pram[i][0]=i+1;
                pram[i][1]="name"+i;
        }
        try {
            int[] result = queryRunner.batch(sql,pram);
            System.out.println(result.toString());
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

你可能感兴趣的:(jdbc)