package cn.lnu.dbutils.demo;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayHandler;
import org.apache.commons.dbutils.handlers.ArrayListHandler;
import org.apache.commons.dbutils.handlers.ColumnListHandler;
import org.apache.commons.dbutils.handlers.KeyedHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.junit.Test;
import cn.lnu.utils.JdbcUtils;
//����dbutils�ĸ��������������
public class Demo2 {
@Test
public void test1() throws SQLException{//���Խ������ÿһ�м�¼����һ�������У�ע���������Ƕ��У�ֻ���ص�һ�м�¼
QueryRunner runner=new QueryRunner(JdbcUtils.getDataSource());//ͨ������һ�����ݿ����ӳأ�����һ��dbutils�������Ӳ��������ֶ��ͷţ�dbutils��ܻ�������ͷ�
String sql="select * from users where id=?";
Object res[]=(Object[]) runner.query(sql, 1, new ArrayHandler());
for(int i=0;i<res.length;i++){
System.out.println(res[i]);
}
}
@Test
public void test2() throws SQLException{//���Խ������ÿһ�м�¼����һ�������У�Ȼ��������ӵ�һ��list���ϵķ�ʽ��������
QueryRunner runner=new QueryRunner(JdbcUtils.getDataSource());//ͨ������һ�����ݿ����ӳأ�����һ��dbutils�������Ӳ��������ֶ��ͷţ�dbutils��ܻ�������ͷ�
String sql="select * from users";
List list=(List) runner.query(sql,new ArrayListHandler());
System.out.println(list);
}
@Test
public void test3() throws SQLException{//�������ָ�����ϵ����ݴ���һ��ArrayList������
QueryRunner runner=new QueryRunner(JdbcUtils.getDataSource());//ͨ������һ�����ݿ����ӳأ�����һ��dbutils�������Ӳ��������ֶ��ͷţ�dbutils��ܻ�������ͷ�
String sql="select * from users";
List list=(List) runner.query(sql,new ColumnListHandler("name"));
System.out.println(list);
}
@Test
public void test4() throws SQLException{//���Խ������ÿһ�м�¼����װ��һ��Map���ؼ���Ϊ��������ֵΪ����ֵ��ٰ���Щmap�ٴ浽һ��map���keyΪָ����key
QueryRunner runner=new QueryRunner(JdbcUtils.getDataSource());//ͨ������һ�����ݿ����ӳأ�����һ��dbutils�������Ӳ��������ֶ��ͷţ�dbutils��ܻ�������ͷ�
String sql="select * from users";
Map<Integer,Map<String,Object>> map=(Map<Integer, Map<String, Object>>) runner.query(sql,new KeyedHandler("id"));
for(Map.Entry<Integer,Map<String,Object>> me:map.entrySet()){
int id=me.getKey();
for(Map.Entry<String, Object> entry:me.getValue().entrySet()){
String name=entry.getKey();
Object value=entry.getValue();
System.out.println(name+"="+value);
}
System.out.println("----------------------");
}
}
@Test
public void test5() throws SQLException{//ʹ��ArrayHandler()������������࣬����ʹ�����淽�����ؽ����������
QueryRunner runner=new QueryRunner(JdbcUtils.getDataSource());//ͨ������һ�����ݿ����ӳأ�����һ��dbutils�������Ӳ��������ֶ��ͷţ�dbutils��ܻ�������ͷ�
String sql="select count(*) from users";
/*Object res[]=(Object[]) runner.query(sql,new ArrayHandler());
long totalrecord=(Long) res[0];
int count=(int)totalrecord;
System.out.println(count);
int totalrecord=((Long)res[0]).intValue;
System.out.println(totalrecord);
*/
int totalrecord=((Long)runner.query(sql, new ScalarHandler(1))).intValue();
System.out.println(totalrecord);
}
}