MySQL数据库连接方法-JDBC-C3P0、DRUID-Spring之间的关系与区别

news/2024/5/19 1:38:06 标签: java, 数据库架构, javascript, javaweb, jdbc

目录

  • JDBC-C3P0、DRUID-Spring之间关系

JDBC-C3P0、DRUID-Spring之间关系

  • JDBC
    是最基本的数据库连接方式,非常的原始,步骤非常的详细!(尽管代码量很大,但还是推荐初学去学,对于后面更高级的连接方式的立即有好处!)
java">public class JdbcDemo1
{
    public static void main(String[] args) throws Exception {
        //1.导入驱动jar包
        //2.注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");
        //3.获取数据库连接对象
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1", "root", "123456");
        //4.定义sql语句
        String sql = "update stu set NAME = 'liuYang' where id = 1";
        //5.获取执行sql的对象 Statement
        Statement stmt = conn.createStatement();
        //6.执行sql
        int count = stmt.executeUpdate(sql);
        //7.处理结果
        System.out.println(count);
        //8.释放资源
        stmt.close();
        conn.close();
    }
}
  • C3P0 【国外的】与 DRUID【阿里的国产的,常用!】
    他们俩属于一个级别的,称为数据库连接池在我的理解上,他们相比于JDBC有如下几个好处:
java">/**
 * c3p0的演示
 */
public class C3P0Demo1
{
    public static void main(String[] args) throws SQLException {
        //1.创建数据库连接池对象
        DataSource ds = new ComboPooledDataSource();
        //2.获取连接对象
        Connection conn = ds.getConnection();

        //3.打印
        System.out.println(conn);
    }
}
java">/**
 *
 * Druid演示
 */
public class DruidDemo
{
    public static void main(String[] args) throws Exception {
        //1.导入jar包
        //2.定义配置文件
        //3.加载配置文件
        Properties pro = new Properties();
        InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
        pro.load(is);
        //4.获取连接池对象
        DataSource ds = DruidDataSourceFactory.createDataSource(pro);

        //5.获取连接
        Connection conn =ds.getConnection();
        System.out.println(conn);

    }

1).他们(C3P0和DRUID)可以绑定多个数据库连接,不是像JDBC那样只能用一个数据库;

2).他们的使用效率更高,JDBC每次用完一些东西(大家先这么理解)就释放掉了(也就是扔掉了),而他们使用完不是释放掉,而是存起来下次再用!所以使用效率更高!

3).拥有专属配置文件,连接数据库更方便些~


· Spring-JDBC

java">/**
 * JdbcTemplate入门学习
 */
public class JdbcTemplateDemo1
{
    public static void main(String[] args)
    {
        //1.导入jar包
        //2.创建JDBCTemplate对象
        JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
        //3.调用方法
        String sql = "insert into shiyi values(?,?)";
        int count = template.update(sql,"刘鹏",39);
        System.out.println(count);
    }
}

好处
一个更复杂的框架,但是只要把框架搭起来,连接数据库,取数据等操作会异常的快速!
甚至都不需要释放各部分,这个框架会自动释放!
坏处:
1)内部操作更不容易懂了,其实最底层还是JBDC那一套,不过人家给你封装的特别好,不需要写那么多东西了!
2)导入的jar包异常多
需要导入5个jar


http://www.niftyadmin.cn/n/1203334.html

相关文章

np.linspace()函数的使用

np.linspace(start, stop, num, endpoint, retstep, dtype) star和stop为起始和终止位置,均为标量num为包括start和stop的间隔点总数,默认为50endpoint为bool值,为False时将会去掉最后一个点计算间隔restep为bool值,为True时会同…

零基础掌握“辛普森悖论及因果关系”通俗易懂

目录一.辛普森悖论的通俗解释二.通俗易懂的例子说明三.为什么会出现辛普森悖论?四.辛普森悖论给我们什么启示一.辛普森悖论的通俗解释 通俗解释其实就一句话,“存在这样的数据,总体上的统计结果与其每一个子部分的统计结果相反”&#xff0c…

Python包管理工具pip安装

Python版本在2.7.9以上的都自带pip无需安装,但在CentOS 7里面自带的Python是2.7.5,所以需要单独安装。 安装: curl https://bootstrap.pypa.io/get-pip.py | python

零基础掌握“全概率公式”

目录一.举例子引出全概率公式二.条件概率表示全概率公式(更常用)一.举例子引出全概率公式 案例一: 如果想判断刘阳是否是高个子概率,也么对于正常的人类来说,也许只有如下三种情况: ①刘阳是一个高个子的男…

区块链技术公司谈技术永生

我们一直在探索长生不老的可能性。无论科学家是从医学角度出发还是从上帝的旨意出发做牧师,不朽都是全世界文化中极为关注的话题。块链技术推动的网络发展有望成为实现我们永恒愿望的下一步。为了回答这个问题,我们首先要研究神仙现象背后的心理。在最近…

零基础强化学习教程(持续更新)

强化学习的过程记录一.强化学习最基础的概念定义1.1 通俗非正式讲解1.2 强化学习的两个特点和一个核心1.3 强化学习的三层架构1.4通俗说明强化学习的小故事一.强化学习最基础的概念定义 1.1 通俗非正式讲解 在本人初步的学习看来,强化学习更像是一个学会某种新东西…

arcgis jsapi接口入门系列(4):用代码在地图画点线面

2019独角兽企业重金招聘Python工程师标准>>> PS:用代码画点这样写是为了跟后面的用鼠标画点线面区分出来 画点 drawPointGraphic: function () {//点有多种样式:一般的点,显示文字,显示图片//一般的点let wkt "P…

皮尔逊相关系数公式手写代码【Python+详细注解】(Pearson correlation coefficient)

爱心目录一.公式化简二.代码部分一.公式化简 一般的我们学到的公式: 一般我们学到的皮尔逊相关系数公式可能长这个样子,但是这个样子不好用代码实现呀!所以我们帮它化简成下面的样子 化简后的公式: 二.代码部分 代码说明&…