JDBC使用

news/2024/12/5 2:18:17/

目录

1.JDBC常用接口和类

1 JDBC API

 2 数据库连接Connection

1.通过DriverManage

2.通过DataSource对象获取

3.Statement对象

4.ResultSet对象

2.步骤

3.代码


1.JDBC常用接口和类

1 JDBC API

在Java JDBC编程中对数据库的操作均使用JDK自带的API统一处理,通常与特定数据库的驱动类是完全解耦的。所以掌握Java JDBC API (位于 java.sql 包下) 即可掌握Java数据库编程。

 2 数据库连接Connection

获取Connection对象方法:

1.通过DriverManage

// 加载JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 创建数据库连接
Connection connection = DriverManager.getConnection(url);

2.通过DataSource对象获取

DataSource ds = new MysqlDataSource();
((MysqlDataSource) ds).setUrl("jdbc:mysql://localhost:3306/test");
((MysqlDataSource) ds).setUser("root");
((MysqlDataSource) ds).setPassword("root");
Connection connection = ds.getConnection();

3.Statement对象

Statement对象主要是将SQL语句发送到数据库中,有三种Statement对象

方法使用
Statement执行不带参数的简单SQL语句
PreparedStatement

执行带参和不带参数的SQL语句

SQL语句会预编译在数据库系统

执行速度比Statement对象

CallableStatement执行数据库存储过程的调用

方法:

executeQuery()方法执行返回结果集,使用select语句

executeUpdate()方法返回值是一个整数,指示受影响的行数,用于update,insert,delect语句

4.ResultSet对象

ResultSet对象它被称为结果集,它代表符合SQL语句条件的所有行,并且它通过一套getXXX方法提供了对这些行中数据的访问。

2.步骤

1.准备数据库驱动包,并添加到项目的依赖中:

      在项目中创建文件夹lib,并将依赖包mysql-connector-java-5.1.47.jar复制到lib中。再配置该jar

包到本项目的依赖中:右键点击项目Open Module Settings,在Modules中,点击项目,配置

Dependencies,点击+,JARS or Directories,将该lib文件夹配置进依赖中,表示该文件夹下的

jar包都引入作为依赖。

2.建立数据库连接

3.构造SQL语句

4.执行SQL语句--把sql语句(预编译过的)发送给服务器,由服务器做出响应

5.释放资源(关闭结果集,命令,连接)

3.代码

public class insert {public static void main(String[] args) throws SQLException {Scanner sc=new Scanner(System.in);DataSource dataSource=new MysqlDataSource();((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java0?characterEncoding=utf8&useSSL=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("123456");Connection connection=dataSource.getConnection();System.out.println("输入姓名");String name=sc.nextLine();System.out.println("输入学号");int id=sc.nextInt();String sql="insert into student value(?,?)";PreparedStatement statement= connection.prepareStatement(sql);statement.setInt(1,id);statement.setString(2,name);System.out.println(statement);int ret=statement.executeUpdate();System.out.println("ret="+ret);statement.close();connection.close();}
}


http://www.ppmy.cn/news/48156.html

相关文章

40岁以上的程序员还容易找到工作吗?聊聊我自己的亲身经历

今天我们来讨论一个比较热门的话题,那就是程序员。如果到了40岁以上还容易找到工作吗?这个问题呢,其实是一个非常现实的问题,也是我们程序员非常关心的一个问题。因为我们每一个程序员,他都会有到40岁的那一天。 首先…

《花雕学AI》12:从ChatGPT的出现看人类与人工智能的互补关系与未来发展

马云说道,ChatGPT这一类技术已经对教育带来挑战,但是ChatGPT这一类技术只是AI时代的开始。 谷歌CEO桑德尔皮猜曾说:“人工智能是我们人类正在从事的最为深刻的研究方向之一,甚至要比火与电还更加深刻。” 360周鸿祎认为&#xf…

LinuxGUI自动化测试框架搭建(十五)-截图功能screenShort.py封装和调用

(十五)-截图功能screenShort.py封装和调用 1 实现目的2 测试需求3 需求分析4 详细设计4.1 创建脚本4.2 截图名称命名规则4.3 脚本设计5 创建截图保存目录6 完整截图功能代码7 登录成功后调用截图8 baseInfo.py脚本更新后的代码9 截图效果10 目前框架结构1 实现目的 有时候我…

shell中的for循环和if判断

一.编写脚本for1.sh,使用for循环创建20账户,账户名前缀由用户从键盘输入,账户初始密码由用户输入,例如: test1、test2、test3、.....、 test10 1.创建脚本for1.sh [rootserver ~]# vim for1.sh 2.编写脚本for1.sh 3.执行脚本for1.sh [roo…

基于Java+Springboot+Vue+elememt美食论坛平台设计实现

基于JavaSpringbootVueelememt美食论坛平台设计实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文…

vue3新的组件

1.Fragment - 在Vue2中: 组件必须有一个根标签 - 在Vue3中: 组件可以没有根标签, 内部会将多个标签包含在一个Fragment虚拟元素中 - 好处: 减少标签层级, 减小内存占用 没有写根标签,也没有报错,如果是在v2中,我们还需要用一个div来包裹它 …

Android监听消息(二)——电话及短信监听

学更好的别人, 做更好的自己。 ——《微卡智享》 本文长度为2747字,预计阅读6分钟 前言 前面一篇《Android监听消息(一)——应用消息捕获》我们使用NotificationListenerService实现了应用的消息监听,但是电话和短信是…

WPF教程(二)--Application WPF程序启动方式

1.Application介绍 WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只有一个 Application 实例存在。和 WinForm 不同的是WPF Application默认由两部分组成 : App.xaml 和 App.xaml.…