JDBC笔记整理



JDBC深入学习笔记

Jdbc:Java Database Connectivity(使用java操作数据库的标准接口,任何的java框架最终底层都是使用jdbc来操作数据库的,只是框架对jdbc有所封装)

 

JDBC的核心接口和类:(深入研究源码有助于我们得心应手的使用)

核心类:DriverManager

核心接口:ConnectionPreparedStatementResultSetStatement(几乎被代替了)

 

PreparedStatement接口:预处理机制,可以填充占位符。(非常重要的一个接口)

ResultSet接口:结果集接口,把它理解成结果集容器吧,有点集合容器中迭代器的感觉。

备注:preparedStatement填充占位符时候使用的是别名机制

 

Jdbc连接操作数据库的步骤:

1.加载驱动  Class来加载

2.创建Connection对象 DriverManager来获得

3.获得预处理机制执行语句 connection获得预处理机制

4.获得结果集(可选) 预处理机制获得的

备注:由它们的步骤我们就可以看出,上一层都是依赖下一层的。

备注:数据的操作有两点要特别注意(事务、资源关闭)

 

举例:连接mysql的几个基本参数

DRIVER=com.mysql.jdbc.Driver

URL=jdbc:mysql:///dbname;   表示的是本机默认3306端口

USERNAME:admin

PASSWORD:admin

 

处理sql.Datejava.util.Date的转换

new Date(new Date().getTime());

第一个Datejava.sql里的Date

第二个Datejava.util里的Date

更标准的写法是:new java.sql.Date(new java.util.Date().getTime());

 

 

配置C3P0数据源

备注:http://www.mchange.com/projects/c3p0/#quickstart,有这个网址难道你还不会配置吗?好吧我来稍稍介绍一下

 

备注:其实它支持xml配置文件和java程序设置属性的方式(推荐使用xml配置文件,修改方便)

备注:src下建立一个c3p0-config.xml配置文件,默认就是使用c3p0-config.xml名字,里面的name属性随便改,我们使用的就是根据name属性来找的。

<c3p0-config>

  <named-config name="c3p0xml">

<!-- 指定连接数据源的基本属性 -->

<property name="user">root</property>

<property name="password">admin</property>

<property name="driverClass">com.mysql.jdbc.Driver</property>

<property name="jdbcUrl">jdbc:mysql://localhost:3306/jdbc</property>

<!-- 若数据库中连接数不足时一次向数据库服务器申请多少个连接 -->

<property name="acquireIncrement">5</property>

<!-- 初始化数据库连接池时连接的数量 -->

<property name="initialPoolSize">5</property>

<!-- 数据库连接池中的最小的数据库连接数 -->

<property name="minPoolSize">5</property>

<!-- 数据库连接池中的最大的数据库连接数 -->

<property name="maxPoolSize">10</property>

<!-- C3P0 数据库连接池可以维护的 Statement 的个数 -->

<property name="maxStatements">20</property>

<!-- 每个连接同时可以使用的 Statement 对象的个数 -->

<property name="maxStatementsPerConnection">5</property>

</named-config>

</c3p0-config>

 

初始化获得数据源:

数据源只需要初始化一次就行了,所以将其初始化放入static代码块中

static{

dateSource=new CombopooledDataSource(配置文件名字);

}

备注:我们可以采用配置c3p0-config.xml配置文件来配置,数据源对象的setter方法来设置,当然数据源对象得是实现类的数据源对象(CombopooledDataSource的对象)。数据库连接池的Connection 对象的close()方法并不是真正的关闭资源,而是把数据库连接资源归还给数据库连接池。

 

 

DbUtilsBeanUtils小工具类

备注:深入它们的源码分析,对自己能力的提高非常有帮助

 

DbUtils:

1.QueryRunner(最为核心的类,是一个线程安全的类,最常用的方法就是query)

2.BeanHandlerBeanListHandlerScalarHandler(各种结果处理类)

这两个核心类一定要深入源码分析,其实看完源码之后就会发现,原来还是反射啊。

备注:当然是看api了或导入src源码分析

 

 

BeanUtils:

1.直接使用它静态方法,它的出现就是为了方便操作javabean.

备注:直接关注核心几个静态方法

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。