版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计第11章数据库编程目录2
11.1数据库编程概述
11.2数据库访问流程
11.1数据库编程概述JDBC(JavaDatabaseConnection)Java程序连接和存取数据库的应用程序接口(API)JDBC为Java数据库开发人员提供了一个标准的API以一致的方式连接多种不同的数据库系统JDBC的功能建立与数据库的连接。发送SQL语句到数据库系统中执行。返回SQL查询语句的执行结果。关闭与数据库的连接。支持的数据库系统所有关系型数据库系统如商用的:Oracle,DB2,SQLServer`免费的:MySQL,PostgreSQL,HSQLDB,Derby3MySQLMySQL的优点跨平台可以在Windows或Linux等平台下运行,这与Java语言的理念相吻合。性能高在较低配置的硬件上也能具有较高的性能。功能适中具有标准的关系型数据库管理系统的功能,满足Java应用程序或JSP网站开发的需要。稳定性好经过大量用户的检验,技术成熟,稳定可靠。Java与MySQL的组合是业界最普遍的做法4安装MySQL安装MySQL服务器从网站上下载安装时注意选择多国语言时要用utf8。添加MySQL的安装目录到Path路径中,应该打上勾。设置系统管理员(root)用户的密码,建议在开发阶段使用sa作为密码。安装MySQL的JDBC驱动程序从网站上下载“MySQLConnector/J”文件名为mysql-connector-java-8.0.29.jar5使用MySQL图形界面需安装MySQL-gui-tools,或第三方的phpMyAdmin、Navicat和MySQL-Front,选择其中之一图形界面的优点界面直观,使用方便字符界面优点字符界面是内置的,不需要另外安装由于在真实的工作环境中,常常是远程管理MySQL,这时需要通过字符界面来使用MySQLJava程序员应该学会字符界面的使用6字符界面7mysql-uroot-p-u后的参数是用户名-p表示提示输入密码输入安装时设置的密码mysql>是提示符,在后面可以输入命令及SQL语句常用命令usedb_name切换数据库db_name。showdatabases列出所有数据库的信息。showtables列出当前数据库的所有表的信息。showcolumnsfromtbl_name列出表tbl_name的各个列的信息。showindexfromtbl_name列出表tbl_name的索引信息(包括主键等)。quit退出MySQL控制台。8SQL语句可以使用所有SQL语句createdatabase、createtable、select、insert、update和delete等输入方式直接在字符界面窗口打字输入先在记事本上编程,然后然后复制到字符界面窗口输入的要求一行一条语句,在最后一定要加上分号“;”,表示SQL的结束语句太长一行写不下时,可以分成多行,但只需在最后加分号特别注意:每条语句都必须要有分号“;”作为结束符注:SQL语言在其它课程中学习9数据的备份与恢复数据备份使用MySQLDump命令,直接在命令行下使用:命令的含义是将名为mydb的数据库的内容备份到backdb.sql文件中,包括数据库中的表结构和数据记录。数据恢复使用MySQL命令,直接在命令行下使用:命令的含义是将备份文件backdb.sql中的数据结构和数据记录恢复到名为mydb的数据库中,前提条件是该数据库已经存在。如果数据库不存在,则需要事先创建。创建数据库的命令命令是在MySQL控制台上发出的,而不是在命令行下发出的10C:\>mysqldump-uroot-pmydb>backdb.sqlC:\>mysql-uroot-pmydb<backdb.sqlmysql>createdatabasemydb11.2数据库访问流程数据准备创建数据库,创建表,插入测试用数据等添加JDBC类库将JDBC驱动程序添加到项目中加载JDBC驱动程序在程序中加载JDBC创建数据库连接通过连接字符串建立与数据库的连接执行SQL语句执行select或insert等语句接收并处理SQL的返回结果如果执行的是select语句,则需要处理该语句返回的结果关闭创建的对象结束时一定要关闭数据库连接11数据准备在需求分析和系统设计的基础上进行创建数据库创建表插入测试用数据12mysql>createdatabasetestdb;mysql>usetestdb;mysql>createtableuser(usrIDintprimarykeyauto_increment,accountvarchar(20),passwordvarchar(20),fullnamevarchar(20));mysql>insertintouser(account,password,fullname)values('huang','12345','HuangMing');添加JDBC类库将JDBC驱动程序添加到项目将下载解压缩出mysql-connector-java-8.0.29.jar文件再将该文件添加到项目中13加载JDBC驱动程序加载JDBC加载的方式很简单每种JDBC的DriverName(全限定名)都是约定好的MySQLOracle14Class.forName("DriverName");Class.forName("com.mysql.cj.jdbc.Driver");Class.forName("oracle.jdbc.driver.OracleDriver");创建数据库连接通过连接字符串建立与数据库的连接使用DriverManager类的getConnection()静态方法直接使用数据源名(用于ODBC数据源)
使用URL每种JDBC对连接字符串的规定不同MySQLOracle15Connectionconn=DriverManager.getConnection(jdbcURL,jdbcUser,jdbcPassword);Connectionconn=DriverManager.getConnection("jdbc:odbc:TestDB");Connectionconn;conn=DriverManager.getConnection("jdbc:mysql://:3306/TestDB","root","sa");Connectionconn;conn=DriverManager.getConnection("jdbc:oracle:thin:@:1521:TestDB","root","sa");执行SQL语句不论对什么数据库系统,后续的操作都是一样的,体现了JDBC与数据库的解藕建立与数据库的连接之后,执行select或insert等语句无返回结果的SQL语句insert,delete,update,create等语句有返回结果的SQL语句(见下页)select语句16//从数据库连接中创建一个Statement的实例Statementstmt=conn.createStatement();//然后通过该实例执行SQL语句(execute方法)stmt.execute("insertintouservalues(1,'zhangs','123','张三')");接收并处理SQL的返回结果如果执行的是select语句,则需要处理该语句返回的结果ResultSet类的常用方法17//从数据库连接中创建一个Statement的实例Statementstmt=conn.createStatement();//然后通过该实例执行SQL语句(executeQuery方法)ResultSetrs=stmt.executeQuery("SELECT*FROMuser");//再通过列名访问数据库的内容while(rset.next()){ System.out.println(rset.getInt("usrID")+","+rset.getString("account"));}关闭创建的对象结束时一定要关闭数据库连接关闭语句应该放在try结构中的finally语句块中形成一个嵌套的try结构18
Connectionconn=null;//在try结构前声明
try{//加载JDBC、创建连接、执行SQL语句、处理返回的结果等处理}catch(ClassNotFoundExceptione){//异常处理}catch(SQLExceptione){//异常处理}finally{if(conn!=null){
try{
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB5305T 41-2020 保山小粒咖啡生产技术规程
- 2026年湖北省口腔医院医护人员招聘考试参考题库及答案详解
- 2026福建南平光泽县教育局公费师范生专项招聘的25人备考题库及参考答案详解一套
- 2026广西崇左宁明县融媒体中心招聘2人备考题库及一套答案详解
- 2026年内蒙古医科大学第二附属医院医护人员招聘考试参考题库及答案详解
- 2026年湖州市妇幼保健医院医护人员招聘笔试备考试题及答案详解
- 2026年河北省中医院医护人员招聘笔试参考题库及答案详解
- 2026年福州市第二医院医护人员招聘笔试备考题库及答案详解
- 2026年复旦大学附属华山医院医护人员招聘考试参考试题及答案详解
- 2026铬铁矿精炼行业市场供需分析及投资评估规划分析研究报告
- 《国有企业领导人员廉洁从业规定》(2026版)修订对比
- 血液透析不同抗凝剂的应用及护理
- 语文教师书写《识字写字教学》教育教研讲座教学培训课件
- 《铁路信号与通信设备》课件
- DB43T 876.2-2014 高标准农田建设 第2部分:土地平整
- 2024年咨询服务协议书范文
- 中医内科临床诊疗指南-肺动脉高压
- DL∕T 5372-2017 水电水利工程金属结构与机电设备安装安全技术规程
- 2022管理学试题库(马工程)
- 形式发票模板范文
- 《周长》 单元作业设计
评论
0/150
提交评论