C3P0与JDBC框架

C3P0与JDBC框架

我们原来提供的JDBC框架已经很方便了,但是还不够好。因为原来的版本不能够适用C3P0连接池。这次我们升级后的框架可以用C3P0连接池了。

这次我们给出JDBC升级版框架的下载地址:JDBC框架–升级版
关于升级后的JDBC框架我们有API说明文档:API说明文档
更多JDBC框架应用请查看我的博客:JDBC框架技术

这里面所有反射与框架的设计归功于邵发老师,邵发老师在CSDN学堂上有讲学,他培育出很多很多优秀的学生(当然包括我【调皮】)。

JDBC框架使用

首先我们还是给大家一个数据库
就是这个创建数据库的SQL语句了,运行下就有数据库了

af_school

/*
SQLyog Ultimate v11.24 (32 bit)
MySQL - 5.6.39 : Database - af_school
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`af_school` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `af_school`;

/*Table structure for table `exam` */

DROP TABLE IF EXISTS `exam`;

CREATE TABLE `exam` (
  `id` int(11) NOT NULL COMMENT '学号',
  `chinese` int(11) DEFAULT NULL COMMENT '语文成绩',
  `english` int(11) DEFAULT NULL COMMENT '英语成绩',
  `math` int(11) DEFAULT NULL COMMENT '数学成线',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/*Data for the table `exam` */

insert  into `exam`(`id`,`chinese`,`english`,`math`) values (20180001,89,90,98),(20180002,78,82,93),(20180003,90,73,95),(20180004,88,98,83),(20180005,96,79,75),(20180006,77,98,82);

/*Table structure for table `leave_event` */

DROP TABLE IF EXISTS `leave_event`;

CREATE TABLE `leave_event` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '请假记录ID',
  `stuId` int(11) NOT NULL COMMENT '学生ID',
  `daysFrom` date DEFAULT NULL COMMENT '哪天开始',
  `daysTo` date DEFAULT NULL COMMENT '哪天结束',
  `type` tinyint(4) DEFAULT NULL COMMENT '类型,0病假,1事假',
  `reason` varchar(256) DEFAULT NULL COMMENT '事由',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

/*Data for the table `leave_event` */

insert  into `leave_event`(`id`,`stuId`,`daysFrom`,`daysTo`,`type`,`reason`) values (1,20180001,'2018-01-02','2018-01-03',0,'感冒'),(2,20180001,'2018-03-06','2018-03-08',0,'发烧'),(3,20180003,'2018-03-01','2018-03-07',1,'出国旅游'),(4,20180005,'2018-03-07','2018-03-07',1,'家里有事'),(5,20180003,'2018-03-17','2018-03-18',0,'不舒服'),(6,20180004,'2018-03-24','2018-03-30',2,'出国'),(7,20180004,'2018-03-24','2018-03-30',2,'出国'),(8,20180004,'2018-03-24','2018-03-30',2,'出国');

/*Table structure for table `student` */

DROP TABLE IF EXISTS `student`;

CREATE TABLE `student` (
  `id` int(11) NOT NULL COMMENT '学号',
  `name` varchar(32) NOT NULL COMMENT '姓名',
  `sex` tinyint(1) DEFAULT NULL COMMENT '性别',
  `phone` varchar(16) DEFAULT '13800000000' COMMENT '手机号',
  `birthday` date DEFAULT NULL COMMENT '生日',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/*Data for the table `student` */

insert  into `student`(`id`,`name`,`sex`,`phone`,`birthday`) values (20180001,'盖聂',1,'1409900089','1982-03-09'),(20180002,'卫庄',1,'1282399999','1993-10-01'),(20180003,'张良',1,NULL,'1996-03-11'),(20180004,'伏念',1,NULL,'1982-09-24'),(20180005,'颜路',1,'13699292899','1983-11-21'),(20180006,'赤练',0,'13819289890','1998-03-12'),(20180007,'端木蓉',0,'13800000000','1978-05-12'),(20180008,'盗跖',1,'13410012908','1993-09-10'),(20180009,'白凤',1,'13509890090','1994-04-20'),(20180010,'天明',1,'18799891829','2002-04-19'),(20180011,'月儿',0,'13882938990','2003-06-10');

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;


然后看看我们的学习代码
到底多方便呢?用过才知道!

本案例演示的是取出查询的数据

package my;

import java.util.List;

import mysql.c3p0.AfSimpleDB;


public class Test
{

	public static void testQuery() throws Exception
	{
		
		String sql = "SELECT id,name,phone FROM student";
		List<String[]> rows = AfSimpleDB.query(sql);
		
	    for(String[] row : rows)
	    {
	    	// 取出这一行记录
	    	int id = Integer.valueOf(row[0]);
	    	String name = row[1];
	    	String phone = row[2];
	    	System.out.println(id + "\t" + name + "\t" + phone );	           
	    }   	
		
	}
	
	public static void main(String[] args)
	{
		try
		{
			testQuery();
			
		} catch (Exception e)
		{
			e.printStackTrace();
		}
	}

}

当然也是可以直接返回查询对象的,就是返回Student POJO对象
想了解更多JDBC知识请访问我的专栏:JDBC专栏

你可能感兴趣的:(JDBC)