mysql博客园day_MySQL Day5

MySQL 学习

目录

MySQL可以使用jdbc进行编程。

进行jdbc编程的时候,需要另外下载组件Connector/J,如果你是在MySQL官网下载的数据库的话,现在8.0版本,有一个MySQL Install,在其中你可以选择相对应的connector从而利用以外的语言进行访问数据库。

在idea中,需要在该项目的Project Structure中的Modules添加Connector/J相对应的包,否则不能够访问。

我的机器上安装的是MySQL 8.0的版本,所以与以往可能有大部分不一样

接下来,我们创建一个test.java,开始今天的jdbc对数据库的访问

Class.forName()

Class.forName()

首先得明白Class这个类

Class 类

是Java中的反射中心,可以通过其中的forName()方法从而获取类Class对象的引用。

Class.forName()方法主要功能是返回一个类,作用是要求 JVM 查找并加载指定的类,也就是说, JVM 会执行该类的静态代码段也即static修饰的部分。而在加载数据库驱动的时候,只能使用Class.forName()方法去加载该驱动

在MySQL8.0中,该驱动在"com.mysql.cj.jdbc.Driver"中,需要注册该驱动

使用语句注册驱动 Class.forName("com.mysql.cj.jdbc.Driver")

数据库URL

在连接数据库时,我们必须使用各种与数据库类型相关的参数,比如主机名、端口号和数据库名等

比如jdbc:mysql://local:3306/test?useSSL=false&serverTimezone=UTC,可以分成四个部分

jdbc:mysql://

local:3306/

test?

useSSL=false&serverTimezone=UTC

我不知道这样分得对不对,反正我这样分了我能理解.....

第一部分是JDBC的特定的语法,其本体是这样的jdbc:subprotocol:other stuffsubprotocol用于选择连接到数据库的具体程序。other stuff参数的格式随所使用的subprotocol不同而不同,大可以访问数据库供应商提供的相对一个的文档。

数据库的url明白之后,接下来就是注册驱动器类了

注册驱动器类

通过DriverManager注册驱动器类

在Java程序中加载驱动器类

Class.forName("com.mysql.cj.jdbc.Driver");

设置jdbc.drivers属性

连接到数据库

Connection与特定的数据库进行连接,连接上下文的SQL语句并返回结果

Statement与数据库进行连接之后,用该连接发送SQL语句

ResultSet使用SQL语句之后查询的东西,返回结果集到ResultSet中,

由于ResultSet中不支持滚动去读,只能使用其中的方法next()去一行一行地进行读取

然后接下来就可以使用jdbc和数据库进行连接了,可以使用了。

下面是一个例子:

import java.sql.*;

public class TestForMySQL {

final static String JDBC_Driver="com.mysql.cj.jdbc.Driver";

final static String url= "jdbc:mysql:"+/*jdbc:指定特定的数据库*/

"//localhost:3306/"/**/

+"test"/*数据库名称*/

+"?useSSL=false&serverTimezone=UTC";/*固定格式*/

final static String user="root";

final static String passwd="12345678";

public static void main(String[]args){

Connection connection=null;

Statement statement=null;

try{

Class.forName(JDBC_Driver);//注册驱动

connection= DriverManager.getConnection(url,user,passwd);//连接端口,加上用户名密码

statement=connection.createStatement();

String sqlUse="show databases";

String sqlCmd="SELECT * FROM words WHERE id>=1 and id<100";//sql语句

ResultSet resultSet=statement.executeQuery(sqlCmd);//使用语句进行查询

while(resultSet.next()) {

int id = resultSet.getInt("id");

String word = resultSet.getString("word");

String explains = resultSet.getString("explains");

System.out.println(id + " " + word + " " + explains);

}

//关闭流

statement.close();

resultSet.close();

connection.close();

}catch (Exception e){

e.printStackTrace();

}

finally {

try {

if (statement != null)

statement.close();

}catch (SQLException e) {

e.printStackTrace();

}

try{

if(connection!=null)

connection.close();

}catch (SQLException e){

e.printStackTrace();

}

}

System.out.println("结束");

}

}

Day5 Over

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值