目录
前言
什么是JDBC ???
前置准备
使用JDBC的五个关键步骤
1.建立与数据库的连接
2.创建具体的sql语句和Statement
3.执行SQL语句
4.处理结果集
5.释放资源
完整流程展示
前言
笔者在先前的博客就提过会写关于JDBC的内容
[Mysql] 的基础知识和sql 语句.教你速成(上)——逻辑清晰,涵盖完整-CSDN博客
作为一个初学者,JDBC很大程度上解决了我之前的困惑——应用程序是怎么和数据库关联起来的
在本文中,我以先前分享过的图书管理系统为例子,来向大家初步介绍如何使用JDBC
图书管理系统(java) 代码展示和思路介绍 (9000字小长文)_图书管理系统关键代码展示-CSDN博客
什么是JDBC ???
前置准备
1.下载好驱动包
2.创建好项目以后,再创建目录存放驱动包,并且设置为library
具体操作可以看我另一篇博客
图文讲解IDEA如何导入JDBC驱动包-CSDN博客
使用JDBC的五个关键步骤
1.建立与数据库的连接
在Java中创建一个数据源(DataSource)对象,并实例化为MySQL数据库的数据源(MysqlDataSource) (向上转型)
然后设置好 URL User 和Password
其中关于URL 说明如下:
URL
(Uniform Resource Locator,统一资源定位符)是用于标识和定位互联网上资源的地址。它是一个字符串,描述了资源的位置和访问方式
URL是互联网中标准的资源定位方式,用于浏览器访问网页、下载文件、发送请求等操作。在编程中,通过URL可以指定需要访问的网络资源,进行网络通信和数据传输。
同时呢,代码如下
DataSource dataSource=new MysqlDataSource();((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jsh?characterEncoding=utf8&useSSL=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("你的数据库密码");
关于URL,作为我们自己练习来说,127.0.0.1 是一个回环IP地址 ,3306是我们的端口号, jsh在这代表连接哪个数据库,基本都是默认的,直接复制即可(除了连接什么数据库自己定)
然后建立连接
Connection connection=dataSource.getConnection();
2.创建具体的sql语句和Statement
这里就要考验你的sql语句是否扎实了
举例来说
我们要写一个sql命令,它的数据类型是String
String sql="insert into lib (name,author,price,type,state)values(?,?,?,?,default)";
System.out.println("增加图书");Scanner scanner=new Scanner(System.in);System.out.println("请输入您要添加的图书的书名:");String name = scanner.nextLine();System.out.println("请输入您要添加的图书的作者名:");String author = scanner.nextLine();System.out.println("请输入您要添加的图书的类型:");String type = scanner.nextLine();System.out.println("请输入您要添加的图书的价格:");int price = scanner.nextInt();String sql="insert into lib (name,author,price,type,state)values(?,?,?,?,default)";PreparedStatement preparedStatement=connection.prepareStatement(sql);preparedStatement.setString(1,name);preparedStatement.setString(2,author);preparedStatement.setInt(3,price);preparedStatement.setString(4,type);
在写好我们的命令以后,创建 PreparedStatement,它的作用是将sql语句传到数据库当中,
它也给了我们一组方法,可以手动输入数据去替换我们的占位符(?)
在方法中,左边的数字代表问好的位置,右边的标识符代表我们要替换的数据
3.执行SQL语句
现在,我们已经建立好连接,写好了命令,现在就需要他执行!
执行也有两种方法,分别去应用广义上的写(包括修改增加删除)和查询
int n=preparedStatement.executeUpdate();
这里我们以"写"作为例子去看
int executeUpdate() throws SQLException;
可以看到这是一个 int 方法,我们用n去接收,来查看有几条命令执行了
4.处理结果集
如果是查询操作,通常会有结果集,但这里我们就不细说了,到时候看案例就知道了
5.释放资源
顺序通常是释放最后调用的对象
preparedStatement.close();connection.close();
完整流程展示
这里给大家看个大概的流程
//1 创建DataSource dataSource=new MysqlDataSource();((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jsh?characterEncoding=utf8&useSSL=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("你的密码");//2 建立链接Connection connection=dataSource.getConnection();//3 创建sql语句System.out.println("增加图书");Scanner scanner=new Scanner(System.in);System.out.println("请输入您要添加的图书的书名:");String name= scanner.nextLine();System.out.println("请输入您要添加的图书的作者名:");String author = scanner.nextLine();System.out.println("请输入您要添加的图书的类型:");String type = scanner.nextLine();System.out.println("请输入您要添加的图书的价格:");int price = scanner.nextInt();String sql="insert into lib (name,author,price,type,state)values(?,?,?,?,default)";PreparedStatement preparedStatement=connection.prepareStatement(sql);preparedStatement.setString(1,name);preparedStatement.setString(2,author);preparedStatement.setInt(3,price);preparedStatement.setString(4,type);//4 发送给服务器int n=preparedStatement.executeUpdate();//5 释放资源preparedStatement.close();connection.close();
具体案例更新在下篇