Java程序设计-项目驱动式教程09使用JDBC实现学生信息管理_第1页
Java程序设计-项目驱动式教程09使用JDBC实现学生信息管理_第2页
Java程序设计-项目驱动式教程09使用JDBC实现学生信息管理_第3页
Java程序设计-项目驱动式教程09使用JDBC实现学生信息管理_第4页
Java程序设计-项目驱动式教程09使用JDBC实现学生信息管理_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

讲师:XXX时间:

月目录CONTENTWS01.项目开发环境搭建02.学生成绩管理03.学生基本信息管理04.不同类别学生信息管理05.学生基本信息查找与计算目录CONTENTWS06.使用集合实现学生信息管理07.学生信息管理系统异常处理08.使用文件实现学生信息存储09.使用JDBC实现学生信息管理10.图书管理系统设计与实现项目

使用JDBC实现学生信息管理项目9使用JDBC实现学生信息管理任务一JDBC概述任务二

数据库编程知识目标了解JDBC的概念及主要功能。理解JDBC访问数据库的机制。熟悉JDBC常用的类和接口。掌握数据库的基本操作。能力目标能够根据实际需求,下载并导入相应的JDBC驱动程序包。能够使用JDBC连接数据库,并对数据库进行查询、插入、更新和删除操作。素养目标提升团队合作与沟通能力,培养严谨的学习态度。增强主动寻求问题解决方法的意识。点击跳过情境扫码观看“使用JDBC实现学生信息管理”视频,讨论并回答下列问题问题1:列举数据库存储和文件存储的区别。在学生信息管理系统中使用数据库存储数据有哪些优点?问题2:如何使用JDBC实现学生信息管理?扫码学习使用JDBC实现学生信息管理任务一JDBC概述JDBC定义Java数据库连接(JDBC)是用于执行SQL语句的JavaAPI,由类和接口组成,为开发者提供标准数据库访问接口。JDBC的主要功能(1)建立数据库连接。(2)执行SQL语句。(3)处理数据库返回结果。JDBC核心组件

包含开发者API与驱动API,前者供Java程序调用,后者管理底层数据库连接,实现跨数据库兼容性。访问流程解析Java程序通过JDBCAPI连接驱动管理器,管理器再经驱动API调用对应数据库驱动,完成数据交互操作。。JDBC访问数据库的机制ODBC

ODBC(opendatabaseconnectivity,开放数据库互联)是

Microsoft

提供的用于访问数据库的应用程序接口。它采用

SQL

语言执行查询、插入、更新和删除等数据库操作

。JDBC

ODBC

的主要区别在于:JDBC

是专为

Java

设计的数据库连接接口,与平台无关,能在任何支持

Java

的系统上运行

ODBC

是通用的数据库连接接口,支持多平台、多语言,但需要安装特定驱动程序,因此平台兼容性较差。12实施流程下载MySQLJDBC驱动程序包导入MySQLJDBC驱动程序包扫码学习下载和导入MySQLJDBC驱动程序包JDBC概述JDBC简介JDBC访问数据库的机制任务二数据库编程驱动管理机制DriverManager类用于加载与注册数据库驱动程序,通过统一接口实现数据库连接管理,支持多种数据源操作。版本优化特性Java6及后续版本优化驱动加载流程,自动完成驱动注册过程,开发者无需手动调用注册方法即可建立连接。1.DriverManager类语法格式getConnection(Stringurl[,Stringuser,Stringpassword])DriverManager

类提供了

getConnection()方法,用于与指定数据库建立连接,并返回一个Connection对象。其中,url

表示数据库的

URL,user

表示数据库的用户名,password

表示数据库的密码。连接本地的数据库student_sql,可以使用以下代码实现DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/student_sql","root","123456");示例127.0.0.1是本地MySQL服务器地址,3306是MySQL默认端口号。2.Connection接口方

法返回值类型说

明createStatement()Statement创建Statement对象prepareStatement(Stringsql)PreparedStatement创建PreparedStatement对象close()void关闭当前连接并释放相关资源

Connection接口提供的常用方法Connection接口用于表示和管理指定数据库的连接。功能特点

Statement

接口用于执行静态

SQL

语句(在编译时结构和内容就已经确定的

SQL

语句)。3.Statement接口方

法返回值类型说

明execute(Stringsql)boolean执行

SQL

语句。如果执行查询语句,则返回true,可通过

getResultSet()方法获取结果集(ResultSet

对象);否则返回

false,可通过getUpdateCount()方法获取执行操作的记录数executeQuery(Stringsql)ResultSet执行SQL查询语句executeUpdate(Stringsql)int执行

SQL

插入、更新或删除等语句,返回执行操作的记录数close()void关闭Statement对象并释放相关资源Statement接口提供的常用方法查询students表中age为18的所有记录,可以使用以下代码实现。//创建Statement对象st,con为Connection对象Statementst=con.createStatement();//执行SQL查询语句st.executeQuery("SELECT*FROMstudentsWHEREage=18");示例作用

预编译动态SQL,提升执行效率,防SQL注入。场景多次执行带参数SQL,如查询、更新操作。4.PreparedStatement接口SQL

SQL

注入攻击是一种利用应用程序存在的安全漏洞,在输入中插入恶意

SQL

代码的攻击方式,从而篡改或窃取数据库中的敏感信息。PreparedStatement接口的优势PreparedStatement优势通过预编译SQL语句,提升执行效率,增强安全性,避免SQL注入攻击。参数设置方法

提供多样化参数设置方法,支持在执行预编译SQL语句时动态传入参数值,增加灵活性。方

法返回值类型说

明setInt(intindex,intk)void将指定位置index的参数设置为int型值setLong(intindex,longl)void将指定位置index的参数设置为long型值setFloat(intindex,floatf)void将指定位置index的参数设置为float型值setDouble(intindex,doubled)void将指定位置index的参数设置为double型值setBoolean(intindex,booleanb)void将指定位置index的参数设置为boolean型值setDate(intindex,Datedate)void将指定位置index的参数设置为Date型值setString(intindex,Strings)void将指定位置index的参数设置为String型值setNull(intindex,intsqlType)void将指定位置index的参数设置为SQL的null值PreparedStatement接口提供的常用方法所有方法的

index

参数均从

1

开始。此外,预编译

SQL

语句时,可使用通配符“?”来代替任何字段值,随后在执行预编译

SQL

语句前,须使用相应的

setXxx()方法设置通配符的值。查询

students

表中

sex

为男且

age

18

的所有记录,可以使用以下代码实现。//创建PreparedStatement对象ps,con为Connection对象PreparedStatementps=con.prepareStatement("SELECT*FROMstudentsWHEREsex=?ANDage=?");ps.setString(1,"男"); //设置第1个通配符的值ps.setInt(2,18); //设置第2个通配符的值ps.executeQuery(); //执行SQL查询语句示例1

2

表示

SQL

语句中通配符的位置(从左向右)。如果要修改查询条件,只需重新设置通配符的值。也就是说,PreparedStatement

对象只用创建一次,就可使用它多次执行

SQL

语句,这样可以减轻数据库中

SQL

解释器的负担,提升

SQL

语句的执行效率。5.ResultSet接口ResultSet接口功能

用于存储查询操作返回的结果集,提供遍历与处理数据的方法,支持数据库查询结果的结构化访问。游标初始状态

内置游标标记当前操作行,默认位于结果集首行之前,通过方法调节能实现向上或向下移动。方

法返回值类型说

明previous()boolean将游标移到结果集的前一行next()boolean将游标移到结果集的下一行first()boolean将游标移到结果集的第一行last()boolean将游标移到结果集的最后一行absolute(intindex)boolean将游标移到结果集指定序号index的行getInt(Stringcolname)int获取结果集当前行指定字段colname的int型值getLong(Stringcolname)long获取结果集当前行指定字段colname的long型值getFloat(Stringcolname)float获取结果集当前行指定字段colname的float型值getDouble(Stringcolname)double获取结果集当前行指定字段colname的double型值getBoolean(Stringcolname)boolean获取结果集当前行指定字段colname的boolean型值getDate(Stringcolname)Date获取结果集当前行指定字段colname的Date型值getString(Stringcolname)String获取结果集当前行指定字段colname的String型值close()void关闭ResultSet对象并释放相关资源

ResultSet接口提供的常用方法1.查询记录字段名表示要查询的列名,如果不指定字段名,用“*”代替,则查询所有字段信息;表名表示数据库中表的名称;条件用于筛选满足条件的记录,如果不指定条件,则查询表中的所有记录,如果有多个条件,条件之间用“AND”连接。SELECT字段名1,字段名2,……FROM表名[WHERE条件]查询数据库中表的记录的SQL语句的语法格式2.插入记录字段名和值须一一对应。如果不指定字段名,值列表须按顺序给出表中所有字段的值。执行SQL插入语句可使用Statement接口或PreparedStatement接口的executeUpdate()方法实现。INSERTINTO表名[(字段名1,字段名2,……)]VALUES(值1,值2,……)向数据库的表中插入一行记录的SQL语句的语法格式3.更新记录如果不指定条件,则更新表中的所有记录。执行

SQL

更新语句可使用

Statement

接口或

PreparedStatement

接口的

executeUpdate()方法实现。UPDATE表名SET字段名1=值1,字段名2=值2,……[WHERE条件]更新数据库中表的一行记录的SQL语句的语法格式4.删除记录如果不指定条件,则删除表中的所有记录。执行

SQL

删除语句可使用

Statement

接口或PreparedStatement接口的executeUpdate()方法实现。DELETEFROM表名[WHERE条件]删除数据库中表的记录的

SQL

语句的语法格式实例:9-1

使用Statement接口实现插入、查询、更新和删除products表中的记录【问题分析】

使用

Java

数据库编程前,须先下载并安装MySQL

数据库,以及创建数据库和表。此处已经安装了MySQL

数据库,用户名为root,密码为

123456,并创建了数据库product_mysql

及商品表

products,其中

products

表包括

id(商品

ID)、name(商品名称)、price(商品价格)和

stock(商品库存)字段。本任务的实例都基于product_mysql数据库和products表完成。扫码学习下载并安装MySQL和创建数据库及表实例:9-1

使用Statement接口实现插入、查询、更新和删除products表中的记录【问题分析】

定义ProductManage类,在类中定义printInfo()方法,在方法中通过ResultSet对象res调用next()方法循环将游标移到结果集的下一行,以及调用getXxx()方法获取每行记录指定字段的值,并输出查询的商品信息。在main()方法中首先连接product_mysql数据库,然后通过Connection对象con调用createStatement()方法创建Statement对象st,最后通过st调用executeUpdate()方法执行SQL插入、更新和删除语句,以及调用executeQuery()方法执行SQL查询语句,将返回的结果集赋值给res,并调用printInfo()方法显示查询的商品信息。。【参考代码】/*ProductManage.java*/package

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论