目次
媒介
什么是JDBC ???
前置准备
使用JDBC的五个关键步调
1.创建与数据库的毗连
2.创建详细的sql语句和Statement
3.执行SQL语句
4.处置惩罚结果集
5.开释资源
完整流程展示
媒介
笔者在先前的博客就提过会写关于JDBC的内容
[Mysql] 的基础知识和sql 语句.教你速成(上)——逻辑清楚,涵盖完整-CSDN博客
作为一个初学者,JDBC很大程度上办理了我之前的困惑——应用步伐是怎么和数据库关联起来的
在本文中,我以先前分享过的图书管理体系为例子,来向大家开端先容如何使用JDBC
图书管理体系(java) 代码展示和思路先容 (9000字小长文)_图书管理体系关键代码展示-CSDN博客
什么是JDBC ???
JDBC ,即 Java Database Connectivity , java 数据库毗连。 是一种用于执行 SQL 语句的 Java API ,它是 Java中的数据库毗连规范。 这个 API 由 java.sql.*,javax.sql.* 包中的一些类和接口组成, 它为 Java 开发人员操纵数据库提供了一个标准的API ,可以为多种关系数据库提供同一访问。 JDBC提供了一个同一的接口,使得Java应用步伐可以与任何支持JDBC标准的关系型数据库进行交互,无需关心详细的数据库实现细节。这种平台无关性使得开发的应用步伐可以轻松地在差别的数据库体系上运行。 话句话说,通过使用JDBC以及它升级过的版本,我们就可以用相对低的知识本钱,使JAVA步伐毗连数据库 在之前的图书管理体系中笔者就说过,步伐的缺陷就是没法恒久生存数据,一旦步伐执行结束,数据就会丢失,因此,我们可以将它写入我们的MYsql数据库中,恒久生存. 前置准备
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)";
复制代码 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();
复制代码 详细案例更新在下篇
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |