数据库连接的学习
我们要学习他们的连接方式,(JDBC,DBCP,DButil,),这三种的连接方式大同小异,调用方法不同.
1,JDBC
JDBC的全英文是JAVA DATABASE CONNECTION,
代码第一步:
创建项目工程,创建包和JAVA文件,键入main()方法
再项目下面创建一个lib的文件夹再把JDBC 的JAR包导入到里面去, builde path----add to builder path,变成小奶瓶
然后输图中的代码
图中的第一部分为准备阶段,定义了交代了你所要连接的数据库地址,还有数据库的用户名和密码.以及要执行的数据库语句,
第二部分为获取连接对象,
第三部分为获取操作对象,
第四部分为执行语句返回的值是影响的行数.
第五部分为关闭操作,关闭所有的连接.和操作对象(减小内存压力)
图中的Sql语句只是插入语句, 在JDBC中如果要执行查询语句的话那么就要调用executeQuery()方法,且要遍历输出;
到此jdbc的入门已经完成.下面进入DBCP的学习.
2.DBCP线程池()
DBCP也是数据库连接的一种方式,他和JDBC的相同之处很多.
在学习JDBC的时候我们发现我们在准备阶段写了很多的定义String代码,那么在DBCP中,我们不用定义这么多String了,因为人家已经给我们在properties文件中写好了
我们只需在文件中找到相应的键然后把值给改成我们想要的值就好.
官方给我们的文件是这样的,好长啊!但是我们值关心她的前几行,很直观很熟悉吧?
那么同样的,我们也要创建一个lib文件夹,把JDBC的JAR包放进去,还有别忘了DBCP自己还有两个包呢,也要放进去,添加小奶瓶
原理一样但是代码还是有一点不一样的,下面看代码
在主方法中的第一行,创建了一个properties对象,为后面的读取properties文件做铺垫.然后就用流来读取文件,用properties来加载进内存
然后创建一个数据源,用数据源来进行连接数据库.再写出你的SQL语句,调用相应的方法执行.
至此我们的DBCP 就学完了,下面进入DBUTIL学习
3.DBUTIL线程池()
DButil的原理和前面两个都是相同的,就是实现不一样,我们要准备DButil相应的JAR包还有配置文件,和上面一样,我们都要进行相应的准备工作
不同的是,如果我们不仅仅是想查看那么简单,我们还要把他以自定义类的方式读出来,存到集合里面去,然后遍历出来,那么我们就要预先写好一个自定义类
比如说定义一个student类,创建一个文件夹,名字叫bean,然后让他实现seralizable(序列化)接口,母的是让他变成二进制文件.
先获取数据源对象,然后用Queryrunner来传参创建queryrunner对象,写好sql语句,然后用runner去调用update执行除了查询的Sql语句,返回影响行数
在下面的注释中我们看到了用runner调用了query的方法,在该方法中参数一为Sql语句,参数二为new beanlisthandler<>(student.class),里面的student就是我们自定义的类,
然后他的返回值就是list类型的,里面存的就是STUDENT类型的数据.我们可以遍历list集合进行查看,或进行其他操作.
4.C3P0(连接池)
该线程池的创造者和DBUTIL都是阿帕奇基金组织的产品,所以里面的方法都是用ComboPoolDataSource()方法来调用的,不过C3p0的书写方法更为简单一点.
和以前几个连接池一样,都要把相应的JAR包导入到lib目录下面去,然后add to path,最后要把两个配置文件复制到src目录下面去,而且在配置文件里面还要进行相应的更改
很明显这个连接池的代码量就是比较少的了.
第一步:创建连接池数据源对象,
第二步:准备好Sql语句
第三步:建立数据库连接
第四步:建立操作对象
第五步:执行sql语句,返回影响的行数