连接数据库

    1)通过Driver来连接(Driver:数据库厂商提供的一个接口)

    public void testDriver()throws Exception{

      Driver driver = new com.mysql.jdbc.Driver();

      String Url = "jdbc:mysql://localhost:3306/test_user";//地址(jdbcUrl)

      Properties properties = new Properties();//连接数据库所需要的信息

      properties.put("user","user");

      properties.put("password","password");

      Connection con = driver.connect(Url,properties);    

}

  Driver:通过配置文件来连接

  public Connection getConnection() throws Exception{
    String driverClass = null;
    String jdbcUrl = null;
    String user = null;
    String password = null;

    //读取类路径下的properties
    InputStream in = getClass().getClassLoader().getResourceAsStream("jdbc.properties");//创建输入流
    Properties properties = new Properties();
    properties.load(in);//载入
    driverClass=properties.getProperty("driver");//获取key为“driver”的值
    jdbcUrl = properties.getProperty("jdbcUrl");
    user = p.getProperty("user");
    password = p.getProperty("password");

    Driver driver = (Driver) Class.forName(driverClass).newInstance();//实例化
    Properties info = new Properties();
    info.put("user",user);
      info.put("password",password);
    Connection connection = driver.connect(jdbcUrl, info);
    return connection;
}

    jdbc.properties文件:

      driver=com.mysql.jdbc.Driver
      jdbcUrl=jdbc:mysql://localhost:3306/test_user
      user=root
      password=

    2)通过DriverManager连接数据库

        //DriverManager是驱动类管理:

        //1、可以通过带重载getConnection()的方法获取数据库连接,
        //2、可以同时管理多个驱动程序:因为getConnection()中有一个类是DriverInfo

        public void testDriverManager() throws Exception{
          //1.准备连接数据库的4个参数,
          //a.驱动全类名
          String driverClass = null;
          //b.jdbcUrl
          String jdbcUrl = null;
          //c.user
          String user = null;
          //d.password
          String password = null;

          //读取类路径下的properties
          InputStream in = getClass().getClassLoader().getResourceAsStream("jdbc.properties");
          Properties p = new Properties();
          p.load(in);
          driverClass=p.getProperty("driver");
          jdbcUrl = p.getProperty("jdbcUrl");
          user = p.getProperty("user");
          password = p.getProperty("password");
          //2.加载驱动程序(注册驱动)
          //这里不用写“DriverManager.registerDriver(Class.forName(driverClass)),Driver有静态代码块(可以注册不同的驱动),已经注册过了”
          Class.forName(driverClass);//加载数据库驱动,
          //3.通过DriverManager获取数据库连接
          Connection connection = DriverManager.getConnection(jdbcUrl,user,password);
}

以上方式,总觉的很麻烦,如果没有用框架的话,可以直接写死

Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_user","root","");

      

jdbc 数据库连接的更多相关文章

  1. JAVA基础知识之JDBC——JDBC数据库连接池

    JDBC数据库连接池 数据库的连接和关闭是很耗费资源的操作,前面介绍的DriverManager方式获取的数据库连接,一个Connection对象就对应了一个物理数据库连接,每次操作都要打开一个连接, ...

  2. JDBC 数据库连接池

    http://www.cnblogs.com/lihuiyy/archive/2012/02/14/2351768.html JDBC 数据库连接池 小结   当对数据库的访问不是很频繁时,可以在每次 ...

  3. 【Java123】JDBC数据库连接池建立

    需求场景:多SQL任务多线程并行执行 解决方案:建立JDBC数据库连接池,将线程与连接一对一绑定 https://www.cnblogs.com/panxuejun/p/5920845.html ht ...

  4. JDBC数据库连接技术

    [学习笔记]JDBC数据库连接技术(Java Database Connectivity) 一.JDBC简介 Java是通过JDBC技术实现对各种数据库的访问的,JDBC是Java数据库连接技术的简称 ...

  5. JDBC数据库连接池

    用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库 ...

  6. Java自学-JDBC 数据库连接池

    数据库连接池 与线程池类似的,数据库也有一个数据库连接池. 不过他们的实现思路是不一样的. 本章节讲解了自定义数据库连接池类:ConnectionPool,虽然不是很完善和健壮,但是足以帮助大家理解C ...

  7. JAVA之JDBC数据库连接池总结篇

    JDBC数据库连接池 一.JDBC数据库连接池的必要性 二.数据库连接池技术 三.多种开源的数据库连接池 3.1 C3P0数据库连接池 3.2 DBCP数据库连接池 3.3 Druid(德鲁伊)数据库 ...

  8. jdbc数据库连接过程及驱动加载与设计模式详解

    首先要导入JDBC的jar包:接下来,代码:Class.forName(xxx.xx.xx)返回的是一个类 Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类, 也就 ...

  9. JDBC数据库连接池技术

    在JDBC中,获得连接或释放资源是非常消耗系统资源的两个过程,为了解决此类性能问题,通常采用连接池技术,来共享连接.这样我们就不需要每次都创建连接.释放连接了,这些操作都交给了连接池. 用池的概念来管 ...

随机推荐

  1. [软件推荐]Windows文件夹多标签工具Clover

    Clover 是 Windows Explorer 资源管理器的一个扩展,为其增加类似谷歌 Chrome 浏览器的多标签页功能,目前最新版本为:3.1.7 Clover 把 Chrome 标签页有的样 ...

  2. CentOS利用inotify+rsync实现文件同步

    1.环境部署 inotify-master 10.10.6.208 inotify-slave 10.10.6.149 2.两台服务器都安装rsync yum install -y rsync 3.i ...

  3. .NET 二维码生成(ThoughtWorks.QRCode)

    引用ThoughtWorks.QRCode.dll (源代码里有) 1.简单二维码生成及解码代码: //生成二维码方法一 private void CreateCode_Simple(string n ...

  4. “神马”框架之LigerUI

    我曾经参与一个产品的研发,前端框架用的就是LigerUI,之前我也没有听过这个框架. 因为是项目期初设计就定下来用LigerUI,根据系统的功能前端页面有跟多丰富的表现,所以需要改进前端效果,这次发现 ...

  5. 四则运算之Right-BICEP测试

    Right-结果是否正确? 正确 B-是否所有的边界条件都是正确的? Conformance(一致性):值是否和预期的一致  是一致的 Ordering(顺序性):值是否如应该的那样 是 是有序或者无 ...

  6. 【转】linux和windows下安装python集成开发环境及其python包

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

  7. Java字符串常量池

    JVM为了减少字符串对象的重复创建,维护了一个特殊的内存,这段内存被称为字符串常量池. Java中字符串对象的创建有两种形式:一种是字面量形式,String str = "a":一 ...

  8. PHPUnit入门

    PHPUnit是PHP语言的单元测试框架.工具,xunit单元测试工具系列成员之一,可以单独运行在Linux或windows系统下面,也可以集成到zend studio等IDE工具中. 工具下载:ht ...

  9. CSP -- 运营商内容劫持(广告)的终结者

    缘由 我们公司最近手机端H5 经常受到商户和用户的投诉,说有广告并且导致不能正常进行操作,我们商户自己当然不会加广告了,但是商户和用户可不管这些了,就认为是我们的问题 探索发现根本 目前我们用的很多浏 ...

  10. Objc Block

    ref1 一.__block 的使用 说明: 在 block 内只能读取在同一个作用域的变数而且没有办法修改在 block 外定义的任何变数,此时若我们想要这些变数能够在 block 中被修改,就必须 ...