注:使用完最后 使用 Dbutils.close(conn)关闭连接对象
这个类是自带的类的静态方法
package com.iotek.DButils;
import java.sql.Connection;
import java.util.List;
import java.util.Map;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import com.iotek.po.Student;
import com.iotek.utils.DButils;
public class DbutilsCrud {
//这个类就是用来执行sql语句 增删改查都是
private QueryRunner qr=new QueryRunner();
private Connection conn;
public void addStudent() {
try {
conn=DButils.getConn();
String sql="insert into student (stuNo,stuPass,gradeId) values (?,?,?)";
//会返回受影响的行数
int count=qr.update(conn, sql, "12","123456",1);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 删除
*/
public void delStudent() {
try {
conn=DButils.getConn();
String sql="delete from student where id=?";
//会返回受影响的行数
int count=qr.update(conn, sql,9);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 修改
*/
public void updateStudent() {
try {
conn=DButils.getConn();
String sql="update student set stuNo=? where id=?";
//会返回受影响的行数
int count=qr.update(conn, sql,"帝轩",3);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 查询(查询一条记录对应一个javabean对象)
*
* 特别注意!!!!!!! 返回的对象实体类里面必须要有空构造方法
*
* 查询底层用的是反射
*
* 注意:实体类的属性名字和数据库的字段必须一致 否则是查询不出来的
*/
public void getStudent() {
try {
conn=DButils.getConn();
String sql="select * from student where id=?";
//把结果集的一行 转换成一个javabean
Student student=qr.query(conn,sql,new BeanHandler<Student>(Student.class),1);
System.out.println(student.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 查询全部的学生 返回一个集合
*/
public void getAllStudent() {
try {
conn=DButils.getConn();
String sql="select * from student";
List<Student> student=qr.query(conn,sql,new BeanListHandler<Student>(Student.class));
System.out.println(student.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 查询一个学生 如果返回的是个map集合
* 一条记录对应一个map对象
*
* 记住这个方法 自动转换map 方法后面的东西就不要了
*
* 转换的map集合 列名是键 值就是值
*/
public void getOneStudentToMap() {
try {
conn=DButils.getConn();
String sql="select * from student where id=?";
Map map=qr.query(conn,sql,new MapHandler(),1);
System.out.println(map);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 多条记录转换为List<map<String,Object>>(严格就是这样写)
*/
public void getAllStudentToMap() {
try {
conn=DButils.getConn();
String sql="select * from student";
List<Map<String,Object>> map=qr.query(conn,sql,new MapListHandler());
System.out.println(map);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取记录的总行数
*
* Number 是所有数值类型的总父类(返回null表示没查到)
*/
public void getcount() {
try {
conn=DButils.getConn();
String sql="select count(1) from student";
Number num=(Number)qr.query(conn, sql,new ScalarHandler<Number>());
System.out.println(num);
} catch (Exception e) {
e.printStackTrace();
}
}
}