注:下面的连接均是以mysql为例,@Test是Junit4的注解用于测试,Properties不会的话可自行百度

可能存在某些不规范的说法或者错误,恳请各位指出错误

方式一:

import com.mysql.cj.jdbc.Driver;
import java.sql.Connection;@Test
public void test1() throws SQLException {//方式1:Driver是mysql包里面的Driver driver=new Driver();//指定urlString url="jdbc:mysql://localhost:3306/jdbc";//将用户名和密码封装到PropertiesProperties properties=new Properties();properties.setProperty("user","root");properties.setProperty("password","1234");//传入url和propertiesConnection connect = driver.connect(url, properties);System.out.println(connect);}

执行后打印connection类似与下面这样,就代表数据库连接成功

com.mysql.cj.jdbc.ConnectionImpl@4f638935

方式二:

    import com.mysql.cj.jdbc.Driver;import java.sql.Connection;@Testpublic void test2() throws Exception {//方式二//包名注意是com.mysql.cj.jdbc.Driver还是com.mysql.jdbc.Driver,jar包版本不同包名不同Class clas = Class.forName("com.mysql.cj.jdbc.Driver");//调用newInstance()方法创建一个Driver对象Driver driver = (Driver) clas.newInstance();//指定url,下面方法同方式一String url="jdbc:mysql://localhost:3306/jdbc";//将用户名和密码封装到PropertiesProperties properties=new Properties();properties.setProperty("user","root");properties.setProperty("password","1234");Connection connect = driver.connect(url, properties);System.out.println(connect);}

执行后打印connection类似与下面这样,就代表数据库连接成功

com.mysql.cj.jdbc.ConnectionImpl@4f638935

方式三:通过反射以及调用DriverManager的getConnection方法获取连接

    import java.sql.DriverManager;import java.sql.Connection;@Testpublic void test3() throws Exception {//方式三//通过反射Class.forName("com.mysql.cj.jdbc.Driver");//指定url,数据库的用户名和密码String url="jdbc:mysql://localhost:3306/jdbc";String user="root";String password="1234";//调用DriverManager的getConnection方法获取连接,在idea中按住ctrl+p可以看参数,把url,用户名,密码分别填上。Connection connection = DriverManager.getConnection(url, user, password);System.out.println(connection);}

执行后打印connection类似与下面这样,就代表数据库连接成功

com.mysql.cj.jdbc.ConnectionImpl@4f638935

方式四:最终版,读取properties文件

首先,在类加载目录下创建一个properties文件,例如mysql.properties;maven工程的话可以在resource目录下建

user=root    //数据库的用户名
password=1234    //数据库的密码
url=jdbc:mysql://localhost:3306/jdbc  //数据库的url
driver=com.mysql.cj.jdbc.Driver  //驱动的位置注意是com.mysql.cj.jdbc.Driver还是com.mysql.jdbc.Driver要根据不同版本的jar包进行确定
    import java.sql.DriverManager;import java.sql.Connection;@Testpublic void test4() throws Exception {//1,读取配置文件的信息//通过反射获取类加载器,然后读取properties文件,下面的ConnectionFunction是当前类的类名InputStream resourceAsStream = ConnectionFunction.class.getClassLoader().getResourceAsStream("mysql.properties");Properties properties=new Properties();//2,加载配置文件properties.load(resourceAsStream);String user = properties.getProperty("user");String password = properties.getProperty("password");String url = properties.getProperty("url");String driver = properties.getProperty("driver");//3,加载驱动Class.forName(driver);Connection connection = DriverManager.getConnection(url, user, password);System.out.println(connection);}

执行后打印connection类似与下面这样,就代表数据库连接成功

com.mysql.cj.jdbc.ConnectionImpl@4f638935

考虑到以后使用jdbc时,都要获取连接,那么我们可以对上面的方法进行简单的封装,建一个类命名为JdbcUtils,封装获取连接方法的返回值是Connection,注意是sql包下的Connection,不要导错包,工具类的方法定义为static,然后把最终版的获取连接拷贝进来,最后返回这个连接就可以了。

package com.yajxweb.jdbc.utils;import com.yajxweb.jdbc.ConnectionFunction;import java.io.InputStream;
import java.sql.*;
import java.util.Properties;public class JdbcUtils {/*** 获取数据库连接* @return* @throws Exception*/public static Connection getConnection() throws Exception {//1,读取配置文件的信息//通过反射获取类加载器,然后读取properties文件,下面的ConnectionFunction是当前类的类名InputStream resourceAsStream = ConnectionFunction.class.getClassLoader().getResourceAsStream("mysql.properties");Properties properties=new Properties();//2,加载配置文件properties.load(resourceAsStream);String user = properties.getProperty("user");String password = properties.getProperty("password");String url = properties.getProperty("url");String driver = properties.getProperty("driver");//3,加载驱动Class.forName(driver);Connection connection = DriverManager.getConnection(url, user, password);return connection;}}

JDBC中获取连接的几种方式,快来看看吧相关推荐

  1. android获取自定义属性,android 自定义控件中获取属性的三种方式(转)

    第一种方法,直接设置属性值,通过attrs.getAttributeResourceValue拿到这个属性值. (1)在xml文件中设置属性值 android:layout_width="f ...

  2. Java中Http连接的两种方式

    在java中连接http,介绍两种方法,一种是java的HttpUrlConnection,另一种是apacha公司的httpClient,后者是第三方的类库需要从外部,导入,同时这也是第一次使用外部 ...

  3. java 时间戳 对比_Java中获取时间戳的三种方式对比实现

    Java中获取时间戳 三种方式对比 最近项目开发过程中发现了项目中获取时间戳的业务.而获取时间戳有以下三种方式,首先先声明推荐使用System类来获取时间戳,下面一起看一看三种方式. 1.System ...

  4. JS中获取时间戳的几种方式

    在实际的项目开发中,我们经常会遇到使用时间戳的场景,获取时间戳的方式也有很多种,本文做下常用的几种方式: 1. getTime() var dates = new Date(); var times ...

  5. android中获取打气筒的几种方式

    1,简单说明,打气筒就是将我们的xml布局转换为我们的view对象,不扯远了,直接看代码 1 A:从context中获取 2 LayoutInflater inflater1 = LayoutInfl ...

  6. jquery中获取元素的几种方式小结

    1 从集合中通过指定的序号获取元素 <div><p>0</p><p>1</p><p>2</p><p>3& ...

  7. python字符串字面量有哪四种定义方式_python中字符串连接的四种方式

    原博文 2018-12-05 14:28 − 以下实例展示了join()的使用方法 #!/usr/bin/python str = "-"; seq = ("a" ...

  8. 从插件中获取资源的几种方式[总结]_FileLocator

    方式一: public static URL getFile(String filename) throws IOException {   System.out.println("get ...

  9. <JDBC> 获取数据库连接的五种方式:你真的get到了吗?

    ❤写在前面 ❤博客主页:努力的小鳴人 ❤系列专栏:JDBC ❤欢迎小伙伴们,点赞

最新文章

  1. 新手科普 | 探索机器学习模型,保障账户安全
  2. 预编译、作用域链和闭包理解
  3. 查看ocx控件方法_Appium自动化测试入门教程No.8——定位控件
  4. [轉]C# 中的委托和事件
  5. 论文笔记(SocialGCN: An Efficient Graph Convolutional Network based Model for Social Recommendation)
  6. python scikit learn 关闭开源_Python机器学习工具:Scikit-Learn介绍与实践
  7. 【转】SQL修改字段长度
  8. android 动画方式,Android动画实现方式的汇总
  9. 专题:手把手学习硬件基础之手册阅读------LDOAMS117
  10. Windows快捷键使用和打开CMD的方式
  11. 黑苹果内置硬盘识别成外置硬盘_空间大?安全更重要,麦沃 K35274D硬盘阵列盒使用体验--数据无价...
  12. mac端本地项目上传到码云
  13. 安川工业机器人实训心得_安川MOTOMAN工业机器人编程与操作(3)
  14. 玩转流量,天下无锅——IT运维人员的九阳神功(上)| 技术分享
  15. 大文本文件打开工具_信息技术类专业常用工具软件教案1.1
  16. Maven:你还在手动导包吗?带你了解Maven的前世今生(尚硅谷详细笔记)
  17. JXTA技术与应用发展(转载)
  18. ld: i386 architecture of input file `eatsyscall.o' is incompatible with i386:x86-64 output
  19. css设置背景图片自适应
  20. OSG+VS2010+win7环境搭建

热门文章

  1. 阿里云备案和腾讯云备案的吐槽内容
  2. 从消费者观点看“服务”产品
  3. 电脑Win11安装Autocad出现错误要如何处理
  4. 淘宝刷流量软软件,互刷点击量,直通车点击系统【胖虎图图-互点专家】
  5. 搜狗上市总市值53亿美元;微信发布数据报告,9月份日活用户9亿丨价值早报
  6. 点石互动--kyw之:Google排名研究
  7. 程序员的财务自由之路(五)- 三人行必有吾师
  8. 程序员,如何打破职业瓶颈期?
  9. AnsysMaxwell常见问题汇总
  10. 7_1整数四则运算c语言,用C语言实现 多位整数的四则运算,用栈,例如56*(12+20)-102/2...