DBUtils 框架的中batch批处理使用

一、DBUtils 框架的使用
    1、使用 dbutils 做增删改查,批处理以及大文本操作
    2、使用 DBUtils 框架管理事务。 (模拟银行转账)

二、使用 JDBC 操作多个表
    1、一对多(部门与员工)
    2、多对多(学生和老师 学生与课程)
    3、一对一(人和身份证)

三、关于 Oracle 数据对于二进制数据的存取(面试题)
一、DBUitls 框架的使用
     
/**
* 使用dbutils做增删改查 批处理大文本操作
* @author 吕鹏
*
*/
public class Demo01 {
/**创建demo表
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
*/
    1、使用 dbutils 做增删改查,批处理以及大文本操作
package cn.itcast.dbutils.demo;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.util.List;
import javax.sql.rowset.serial.SerialBlob;
import javax.sql.rowset.serial.SerialClob;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.junit.BeforeClass;
import org.junit.Test;
import cn.itcast.dbutil.JDBCUtils;

static QueryRunner runner;
@BeforeClass

public static void beforeClass(){
//获取一个QueryRunner对象(构造方法带数据源 自动完成连接创建和释放)
runner = new QueryRunner(C3P0Utils.getDataSource());
}

/**
* 执行插入操作
*/

@Test
public void testInsert()throws Exception{
String sql = "insert into demo values(?,?)";//声明sql
Object[] params = {2,"insert"};//初始化参数
runner.update(sql, params);
}

/**
* 执行删除操作
* @throws Exception
*/

@Test
public void testDelete() throws Exception{
String sql = "delete from demo where id = ?";
runner.update(sql, 1);
}

/**
* 执行更新操作
* @throws Exception
*/

@Test
public void testUpdate() throws Exception{
String sql = "update demo set name=? where id=?";
Object[] params = {"update",1};
runner.update(sql, params);
}

/**
* 查询列表操作
* @throws Exception
*/

@Test
public void testListQuery() throws Exception{
String sql = "select * from demo";
List<Demo> list = (List<Demo>) runner.query(sql, new
BeanListHandler(Demo.class));
for(int i=0;i<list.size();i++){
System.out.println("ID:"+list.get(i).getId()+" 姓名是:"+list.get(i).getName());
}
}

/**
* 查询对象操作
* @throws Exception
*/

@Test
public void testObjectQuery() throws Exception{
String sql = "select * from demo where id = ?";
Demo demo = (Demo) runner.query(sql, 1, new BeanHandler(Demo.class));
System.out.println("ID:"+demo.getId()+" Name:"+demo.getName());
}

/**
* 批处理操作
* @throws Exception
*/

@Test
public void testBatch() throws Exception{
String sql = "insert into demo value (?,?)";
Object[][] params = new Object[10][];
for(int i=0;i<10;i++){
params[i] = new Object[]{i,"batch"};
}
runner.batch(sql, params);
}

/**
* 大文本操作
* @throws Exception
*/

@Test
public void testClob() throws Exception{
String sql = "insert into clob values(?)";
File file = new File("c:/a.txt");
Long l = file.length();
char[] buffer = new char[l.intValue()];
FileReader reader = new FileReader(file);
reader.read(buffer);
SerialClob clob = new SerialClob(buffer);
runner.update(sql, clob);
}

/**
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值