JAVA连接MYSQL数据库

Mysql数据库内置许多接口,其中jdbc就是为java语言准备的接口。eclipse版

连接方法有多种,我会由浅入深的讲解

前置工作:

1.下载数据库连接驱动,根据自己的版本下载相应的驱动

mysql-connector-java-8.0.17.jar

2.在eclipse中导入jar包

1.建立一个project工程,在工程中建立一个文件夹lib用来存放jar包,将jar包复制到lib下

2.选中工程右击,BuildPath->Configure Build Path

3.选择Libraries->Modulepath->右边的Add JARs

4.在其中找到工程下的lib文件里的jar包导入进去

连接数据库

分析:要想进入数据库,我们首先需要知道数据库在哪,连接数据库中的哪个database(url)。其次,需要连接数据库的账户密码(user和password)。最后使用这些信息,调用Driver驱动获取数据库连接。

1.使用最原始的方式获取数据库连接

步骤:获取Driver驱动,将用户名和密码封装在properties文件中,调用Driver的connect方法获取数据库连接

 //方式一 使用最原始的方式获取数据库连接
	public void getConnection1() throws Exception {
		Driver driver=new Driver();
		/**
		 * jdbc:mysql 协议
		 * localhost:ip地址
		 * 3306 数据库名
		 * characterEncoding 设置字符集
		 * serverTimezone 设置时区
		 */
		String url="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC";
		//将用户名和密码封装在properties配置文件中
		Properties info=new Properties();
		info.setProperty("user", "user");
		info.setProperty("password", "123456");
		//将参数导入dirver.connect函数中获取连接
		Connection conn=driver.connect(url, info);
		//输出数据库连接
		System.out.println(conn);
	}

此为mysql驱动8.0版本,若mysql驱动版本为8.0之前,将url改为jdbc:mysql://localhost:3306/test即可。

2.使用反射的方式获取Driver类来获取数据库连接

步骤:使用反射,调用类加载器生成Driver对象,将用户名和密码封装在properties文件中,调用Driver的connect方法获取数据库连接。

区别:使用反射生成Driver对象

//方式二:使用反射获取数据库连接
    public void getConnection2() throws Exception {
        //使用反射构造driver
        Class clazz=Class.forName("com.mysql.cj.jdbc.Driver");
        Driver driver=(Driver)clazz.getDeclaredConstructor().newInstance();
        String url="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC";
        //将用户名和密码封装在properties配置文件中
        Properties info=new Properties();
        info.setProperty("user", "user");
        info.setProperty("password", "123456");
        //将参数导入dirver.connect函数中获取连接
        Connection conn=driver.connect(url, info);
        //输出数据库连接
        System.out.println(conn);
    }

PS:此为mysql8.0驱动,若为8.0之前将com.mysql.cj.jdbc.Driver改为com.mysql.jdbc.Driver后续也一样更改

3.使用DriverManager类替换Driver类获取连接

//方式三:使用DriverManager替换Driver
	public void getConnection3() throws Exception {
		//此方法在加载时就以及帮我们省略了加载com.mysql.cj.jdbc.Driver自动创建了Driver在DriverManager类内部
		/**
		 * 在DriverManager内部会加载类并生成driver
		 * 省略语句:
		 * Class clazz=Class.forName("com.mysql.cj.jdbc.Driver");
		 * Driver driver=(Driver)clazz.getDeclaredConstructor().newInstance(); 
		 * 它是自动选择Driver类来加载,也可以自己指定。
		 */
		String url="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC";
		
		Connection conn=DriverManager.getConnection(url,"user","123456");
		System.out.println(conn);
	}

原理:DriverManager类封装了一个Driver对象,并且在类加载时,自动加载Driver的类,这样我们就不用自己写Driver对象。

PS:加载的Driver类对象可以自动加载,也可以自己指定加载。在类加载前,自己加载Driver类,它就不会再自动加载(详细可见DriverManager类源码)

4.将所有的配置信息写入配置文件中

好处:不用修改java代码,不懂java代码也可以修改数据库连接账户,密码,数据库。

步骤:在src文件夹下建立一个properties文件。new->file->filename 为xxx.properties

在文件中写入相应的配置信息

user=user
password=123456
url=jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=TRUE
driverClass=com.mysql.cj.jdbc.Driver

调用类加载器加载文件中的内容,使用properties存加载文件的内容。

取出类加载器中的内容,获取连接

//方法四:将所有的配置信息写入配置文件中,这样不懂代码的人也可以完成更改
    public void getConnection4() throws Exception {
	   //调用加载器加载文件中的内容
	   InputStream is=getClass().getClassLoader().getResourceAsStream("jdbc.properties");
	   //使用properties存加载文件中的内容
	   Properties ps=new Properties();
	   ps.load(is);
	   //取出所有内容
	   String user=ps.getProperty("user");
	   String url=ps.getProperty("url");
       String password=ps.getProperty("password");
	   String driverClass=ps.getProperty("driverClass");
	   //加载Driver类(可省)
	   Class.forName(driverClass);
	   //获取Connection连接
	   Connection conn=DriverManager.getConnection(url, user, password);
	   System.out.println(conn);
	}

使用数据库连接池获取连接

意义:每名用户调用数据库时,都需要重新建立一条连接,使用完后将连接销毁。我们是否可以创建一个池子,里面存放这一些连接,当用户需要时,从连接池中获取连接,当用户不需要后,将连接放回池中,供他人使用。这就时数据库连接池

接下来我们使用行业内较好的阿里巴巴druid德鲁伊连接池来控制连接

1.下载druid连接池jar包 druid-1.1.10.jar

2.将jar包导入当前项目的Libraries中

使用代码获取连接

我们使用配置文件的方法获取数据库连接池

创建druid.properties怕配置文件

url=jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=TRUE
username=user
password=123456
driverClassName=com.mysql.cj.jdbc.Driver

注意:这里的用户名为username而不是之前的user

           Driver类为driverClassName。这是阿里巴巴定义的。

步骤:调用类加载器加载文件中的内容,获取数据库连接池,从连接池中调出一条连接。

//方法五:使用阿里巴巴的德鲁伊druid数据库连接池技术
	public void getConnection5() throws Exception {
		//调用类加载器加载文件中的内容
		InputStream is=getClass().getClassLoader().getResourceAsStream("druid.properties");
		Properties ps=new Properties();
		ps.load(is);
		
		//获取数据库连接池
		DataSource dataSource=DruidDataSourceFactory.createDataSource(ps);
		//从连接池中调出一条连接
		Connection conn=dataSource.getConnection();
		System.out.println(conn);
	}

PS:阿里巴巴数据库连接池中默认的连接池中连接的数量为10

上述操作可以获取连接,若想测试自己是否获取连接,可打印自己的连接

若控制台中未报错,出现com.mysql.cj.jdbc.ConnectionImpl@【地址】则连接正确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值