DButils使用实例

注:使用完最后 使用 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();
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值