String sql="update person set name=? where id=?";

package com.tfy.itheima.impl.test;


import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.InputStream;
import java.io.Reader;
import java.sql.Clob;
import java.sql.SQLException;
import java.util.Date;
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.Test;


import com.tfy.itheima.domain.Person;
import com.tfy.itheima.jdbc.util.DbcpUtil;




public class QueryRunnerTest {
private QueryRunner qr=new QueryRunner(DbcpUtil.getDataSource());
@Test
public void addPerson(){
try {
String sql="insert into person (id,name,birthday) values(?,?,?)";
// Object []param={1,"tfy","1990-09-09"};
Object []param={2,"谭方勇",new Date()};



qr.update(sql, param);
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}

}
@Test
public void update(){
try {
String sql="update person set name=? where id=?";
Object params[]={"ty",2};

qr.update(sql, params);
} catch (SQLException e) {
e.printStackTrace();
}
}



@Test
public void queryOne(){
try {
String sql="select * from person where id=?";
Object params[]={2};

Person p = qr.query(sql,new BeanHandler<Person>(Person.class), params);
System.out.println(p);

} catch (SQLException e) {
e.printStackTrace();
}
}
@Test
public void queryAll(){
try{
String sql="select * from person";
List<Person> ps = qr.query(sql, new BeanListHandler<Person>(Person.class));
for(Person p:ps){
System.out.println(p);
}

}catch(Exception e){
e.printStackTrace();
throw new RuntimeException(e);
}
}
@ Test
public void delete(){
try{
String sql="delete from person where id=?";
qr.update(sql,2);
}catch(Exception e){
e.printStackTrace();
throw new RuntimeException(e);
}
}
@Test
public void bath(){
try{
String sql="insert into person (id,name,birthday) values (?,?,?)";
Object [][]params=new Object[100][];
for(int i=0;i<10;i++){
params[i]=new Object[]{i+2,"linlin"+(i+2),new Date()};
}
//System.out.println("QueryRunnerTest.bath()");
//long time=System.currentTimeMillis();
qr.batch(sql, params);
//System.out.println("执行时间为:"+(System.currentTimeMillis()-time));
}catch(Exception e){
e.printStackTrace();
throw new RuntimeException(e);
}
}
@Test
public void clobtxtTest(){
try{
String sql="insert into t1 (id,content) values(?,?)";
File file=new File("C:/a.txt");
Reader r=new FileReader(file);
char []ch=new char[(int)file.length()];

r.read(ch);
r.close();


Clob c=new SerialClob(ch);
Object []params={1,c};//Clob

qr.update(sql, params);
}catch(Exception e){
e.printStackTrace();
throw new RuntimeException(e);
}
}
@Test
public void BlobTest(){
try{
String sql="insert into t2 (id,content) values(?,?) ";
InputStream in= new FileInputStream("c:/118f.jpg");
byte []b=new byte[in.available()];


in.read(b);
in.close();

SerialBlob sb=new SerialBlob(b);
Object []params={1,sb};
qr.update(sql, params);
}catch(Exception e){
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
1.【单选题】 (1分) 下列选项中,不属于getSharedPreferences()方法中的文件操作模式参数的是( )。 A. Context.MODE_PRIVATE B. Context.MODE_PUBLIC C. Context.MODE_WORLD_READABLE D. Context.MODE_WORLD_WRITEABLE 2.【单选题】 (1分) 下列关于初始化SharedPreferences类的代码正确的是( )。 A. SharedPreferences sp = new SharedPreferences(); B. SharedPreferences sp = SharedPreferences.getDefault(); C. SharedPreferences sp = SharedPreferences.Factory(); D. SharedPreferences sp = getSharedPreferences(); 3.【单选题】 (1分) 下列方法中,用于获取SharedPreferences类中的编辑器的方法是( )。 A. getEdit() B. edit() C. setEdit() D. getAll() 4.【单选题】 (1分) 关于 SQLite 事务(Transaction)的作用,以下描述错误的是?()‌ A. 保证操作的原子性 B. 提升批量操作的性能 C. 允许多线程同时写入数据 D. 支持数据回滚‌ 5.【单选题】 (1分) 下列关于SQLite数据库的描述中,错误的是( )。 A. SqliteOpenHelper类有创建数据库和更新数据库版本的功能 B. SqliteDatabase类是用来操作数据库的 C. 每次调用SqliteDatabase的getWritableDatabase()方法时,都会执行SqliteOpenHelper类的onCreate()方法 D. 当数据库版本发生变化时,会调用SqliteOpenHelper类的onUpgrade()方法更新数据库 6.【单选题】 (1分) ‌以下哪种场景适合使用文件存储?( )‌ A. 保存用户登录 Token B. 缓存图片或音视频文件 C. 存储复杂的关系型数据 D. 跨应用共享数据 7.【单选题】 (1分) 下列关于SharedPreferences存取文件的描述错误的是( ) 。 A. 属于移动存储解决方式 B. SharedPreferences处理的就是key-value对 C. 读取xml的路径是/sdcard/shared_prefs D. 文本的保存格式是xml 8.【单选题】 (1分) 下列选项中,可以对Android数据库中的表进行查询操作的方法是( )。 A. insert() B. execSQL() C. query() D. update() 9.【判断题】 (1分) SQLite是Android自带的一个轻量级的数据库,支持基本SQL语法。( ) 10.【判断题】 (1分) 使用openFileOutput()方式打开应用程序的输出流时,只需要指定文件名。( ) 11.【判断题】 (1分) SQLite数据库的事务操作满足原子性、一致性、隔离性和持续性。( ) 12.【判断题】 (1分) SQLiteDatabase类的update()方法用于删除数据表中的数据。( ) 13.【填空题】 (4分) 通过张三与王五取钱和存钱的例子,使用SQLite的事务模拟银行转账功能,补全代码 PersonSQLiteOpenHelper helper = new PersonsQLiteOpenHelper (getApplication()); SQLiteDatabase db = helper.getWritableDatabase(); db.________; //开启数据库事务 try{ db.execSQL("update person set account = account-1000 where name =?", new Object[] { "张k" }); db.execsQL("update information set account = account +1000 where name =?", new Object! {"王五”}); db.setTransactionSuccessful(); }catch (Exception e){ Logi("事务处理失败",e.toString()); }finally { db.endTransaction(): __________//关闭数据库 } 14.【填空题】 (4分) 使用SharedPreferences类存储数据,补全代码 SharedPreferences sp = getSharedPreferences(“data”,MODE_PRIVATE) SharedPreferences.Editor editoreditorputString("name","张三”); editor.putlnt("age", 8); editor._______;
最新发布
03-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值