mysql jdbc入门_JDBC与MySql:手把手教你JDBC入门

之前写了一堆MySql数据库的操作方法,都是在cmd命令下操作的。那么我们在cmd窗口下增删改查对于我们实际开发也没什么卵用~因为我们写出来的程序总不可能需要保存数据的时候就打开cmd窗口插入几条数据,需要读取数据的时候就在cmd窗口查询一下,然后把结果复制到我们所写的程序中吧~显然数据库不是这么用的。

正确的使用方法是直接用程序跟数据库沟通,而笔者本身是android开发的,所以这里就用java演示,如何用java跟mysql数据库连接!

而java跟数据库连接我们会用到java的一种技术---JDBC:

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用

Java语言

编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

MySql的开发人员根据这种基准开发出

connectors,也叫作数据库驱动。

如下图,我们是写应用程序的,而我们需要使用数据库就要直接接触这种数据库的驱动,要熟悉学习这种数据库的驱动。

而数据库那么多种,常用的也不少~对于我们开发者来说学习成本太大!

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

那么有了jdbc这种基准,或者说规范。如何数据库如何与java程序沟通不再是我们思考的问题,如何与java程序沟通这个问题就转移到数据库开发商,他们针对java写好驱动供我们下载放到程序里就好。而我们要做的就是掌握jdbc。就这样,掌握jdbc+数据库对应的驱动=掌握任何支持jdbc数据库的连接。

如下图:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

JDBC驱动:

上文所提到的驱动就是一个jar包,下载地址一般会在该数据库的官网,比如我们这里所说的MySql,那么mysql的驱动就在mysql的官网可以下载到。

为了方便大家,在本文末尾也会提供一个mysql的驱动。大家可以下载使用。

JDBC的使用:

笔者还是使用上篇博文演示过的数据库mydb中的emp表演示,其中的数据以及表的结构如下所示:

+----+------+---------+--------+

| id | name | dept_id | salary |

+----+------+---------+--------+

|  1 | 曹操 |       1 |   2000 |

|  2 | 荀彧 |       2 |   2000 |

|  4 | 郭嘉 |       4 |   2000 |

|  5 | 荀攸 |    NULL |   2000 |

+----+------+---------+--------+

建议:如果读者的mysql还没有数据,请先创建一个数据库,然后创建一个表,然后往里面插入若干条数据作为演示

如有需要可查看本博客的前几篇文章,创建数据库,创建表,插入数据,查询数据等都有记录的;

接下来开始jdbc的使用介绍:

首先创建一个java项目,然后创建一个带有main方法的类。

下载mysql的jdbc驱动jar包(mysql官网可以下载,本文末尾也有提供);

放到项目的lib文件夹里面,用myeclipse创建的项目一般都有lib文件夹,而使用eclipse创建的java项目可能没有lib文件夹,没有的话我们自己创建一个文件夹命名为lib就可以了。然后把下载到的驱动jar包放到lib文件夹里就可以了。

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

当然,就这么放进去还没可以,还有右击该jar包----Build Path----Add to Build Path;

接下来就要在main方法里面操作了:

public static void main(String[] args) {

Connection conn = null;

Statement state = null;

ResultSet set = null;

try {

//注册数据库驱动

DriverManager.registerDriver(new Driver());

//获取数据库连接

conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "");

//获取传输器对象

state= conn.createStatement();

//利用传输器对象执行sql语句

set=state.executeQuery("select * from emp");

while(set.next()){

System.out.println(set.getString("name"));

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

try {

set.close();

state.close();

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

其中 conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "");

接受三个参数,第一个参数为数据库链接地址,开头的"jdbc:mysql://"是固定的而后面的localhost:3306是数据库所在的地址以及端口,由于笔者的mysql数据库就在本机所以写上localhost,而mysql的端口默认就是3306.后面的mydb是数据库的名称。

第二个参数就是用户名,默认也是root

第三个参数就是密码,笔者的数据库没有密码,所以直接写个双引号上去。

set=state.executeQuery("select * from emp");

可以看到executeQuery接受的参数是一句sql语句,笔者把查询emp全表的数据写上去,所查询的结果会保存到ResultSet 里面。

而在后面可以看到使用一个while循环把说查询的结果遍历出来了。

要说一下ResultSet 的遍历:

可以这么理解,ResultSet 有一根指针,一开始是指着表头,每调用一次ResultSet .next就会把这个指针往下移动一行,并且判断有没有数据,如果这一行有数据的话则返回true,否则返回false。

然后读者可以发现ResultSet 有很多方法,这里先介绍ResultSet .getString(”“);里面接受一个字段名,就是获取当前ResultSet 所指的行所对应的字段的数据。

最后需要关闭ResultSet ,Statement ,Connection 。及时释放资源。

我们试一下运行,可以看到运行结果是这样的:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

而我们再看一下数据库里面的数据是怎样的:

+----+------+---------+--------+

| id | name | dept_id | salary |

+----+------+---------+--------+

|  1 | 曹操 |       1 |   2000 |

|  2 | 荀彧 |       2 |   2000 |

|  4 | 郭嘉 |       4 |   2000 |

|  5 | 荀攸 |    NULL |   2000 |

+----+------+---------+--------+

正是正确地遍历出数据库mydb里emp表的name字段的数据。

本文到此结束,下篇将为大家介绍更多与jdbc相关的知识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值