JDBC3

作者: Hoffnung_8164 | 来源:发表于2020-05-21 23:20 被阅读0次

    1.5.2 PreparedStatement的功能

            为占位符设置值

                setXxx(参数1,参数2)

                    参数1:问号的位置,从1开始

                    参数2:问号位置上的值

        执行SQL

                executeUpdate():执行增删改查,返回 int 值,表示影响的记录数

                executeQuery():执行查询,返回结果集 ResultSet

    1.6 数据库连接池

            1.6.1 概念

                        概念:本质上就是一个容器,存放数据库连接对象的容器

            1.6.2 好处

                    节省资源

                    提高用户的访问效率

            1.6.3 实现方式

                  在 javax.sql 下提供了一个数据库连接池的接口,DataSource

                        DataSource的方法:

                            1.  getConnection():从连接池中获取连接对象

                                close():将连接对象归还到连接池中

            1.6.3.1 C3P0

                    步骤:

                            导入 jar 包,c3p0-0.9.5.2.jar 和 mchange-commons-java-0.2.12.jar

                            编写配置文件:

                                在项目的 src 目录下定义 c3p0.properties 或者 c3p0-config.xml

                                在文件中定义数据库的驱动包、数据库的地址、用户名、密码等

                                创建C3P0的核心类对象,ComboPooledDataSource

    // 第一种方式会在c3p0的配置文件中,根据named-config标签下的内容对数据库连接池进行配置

                        ComboPooledDataSourcedataSource=newComboPooledDataSource("myc3p0");

    // 第二种方式会在c3p0的配置文件中,根据default-config标签下的内容对数据库连接池进行配置

                        ComboPooledDataSourcedataSource=newComboPooledDataSource();

                调用获取连接对象的方法,getConnection()

                归还连接对象,close()

    c3p0-config.xml

    <c3p0-config>

        <named-configname="myc3p0">

            <!-- driverClass:驱动包  -->

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

            <!-- jdbcUrl:数据库地址 -->

            <propertyname="jdbcUrl">jdbc:mysql://localhost:3306/0521am</property>

            <!-- user:管理员的用户名 -->

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

            <!-- password:管理员的密码 -->

            <propertyname="password">1234</property>

            <!-- initialPoolSize:连接池的默认大小 -->

            <propertyname="initialPoolSize">3</property>

            <!-- maxPoolSize:最大连接数 -->

            <propertyname="maxPoolSize">5</property>

            <!-- checkoutTimeout:超时时间 -->

            <propertyname="checkoutTimeout">1000</property>

     </named-config>

        <default-config>

            <!-- driverClass:驱动包  -->

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

            <!-- jdbcUrl:数据库地址 -->

            <propertyname="jdbcUrl">jdbc:mysql://localhost:3306/0521am</property>

            <!-- user:管理员的用户名 -->

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

            <!-- password:管理员的密码 -->

            <propertyname="password">1234</property>

            <!-- initialPoolSize:连接池的默认大小 -->

            <propertyname="initialPoolSize">3</property>

            <!-- maxPoolSize:最大连接数 -->

            <propertyname="maxPoolSize">5</property>

            <!-- checkoutTimeout:超时时间 -->

            <propertyname="checkoutTimeout">1000</property>

        </default-config>

    </c3p0-config>

    注:

    1.  从连接池中存在的连接对象的第一个开始获取

        将归还的连接对象添加到连接池的末尾

        当获取连接数超过了配置的最大连接数时会发生异常

        当连接对象使用完毕后,应立即归还,以便重新获取加以利用

    1.6.3.2 Druid

            由阿里巴巴提供

            步骤:

                导入 jar 包,druid-1.0.9.jar

                定义配置文件:

                编写 properties 文件

                    文件名是任意的,可以放在任意的目录下

                加载配置文件

                        从数据库连接池工厂中获取连接池对象

                        数据库连接池工厂,DruidDataSourceFactory

                        获取连接池对象,createDataSource(Properties 对象)

                获取连接对象,getConntion()

    druid.properties

    driverClassName=com.mysql.jdbc.Driver

    url=jdbc:mysql:///0521am

    username=root

    password=1234

    initialSize=3

    maxActive=5

    maxWait=3000

    相关文章

      网友评论

          本文标题:JDBC3

          本文链接:https://www.haomeiwen.com/subject/apoxahtx.html