版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章Java的数据库编程Java应用开发与实践第二部分
酒店管理系统的设计学习目标理解JDBC的功能掌握配置JDBC驱动程序的方法掌握MySQL数据库的安装与使用方法掌握使用JDBC访问数据库的方法9.1JDBC简介9.2MySQL数据库的安装与使用9.3使用JDBC访问数据库9.4实训9数据库的增删改查目录9.1JDBC简介JDBC(JavaDatabaseConnectivity)即Java数据库连接,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,它提供了查询以及增、删、改等更新数据库中数据的方法。JDBC也是SunMicrosystems的商标,我们通常说的JDBC是面向关系型数据库的。JDBC制定了统一访问各类关系数据库的标准接口,为各个数据库厂商提供了标准接口的实现打下了基础。Java中的包、类、JDBC是连接数据库和Java程序的桥梁,通过JDBCAPI可以方便地实现对各种主流关系型数据库的操作,它由一组用Java编写的类和接口组成。JDBCAPI主要位于JDK中的java.sql包中。9.1.1JDBC的功能在实际开发中可以直接使用JDBC进行各个数据库的连接与操作,而且可以方便的向数据库中发送各种SQL语句。在JDBC中提拱的是一套标准的接口,这样各个支持Java的数据库生产商只要按照此接口提拱相应的实现,则就可以使用JDBC进行操作,极大的体现了Java的可移植性。9.1.1JDBC的功能JDBC最终为了实现以下目标:1)通过使用标准的SQL语句甚至是SQL扩展,使数据库开发人员能够编写数据库应用程序,同时还遵守Java语言的相关规定。2)数据库供应商和数据工具开发商可以提供底层的驱动程序,因此他们可以不断优化各自数据库产品的驱动程序。9.1.1JDBC的功能9.1JDBC简介每个数据库厂商比如Oracle、SQLServer、MySQL都提供了该数据库的JDBC驱动程序,并且都提供了一个实现java.sql.Driver接口的类,简称Driver类。在Java应用开发中,如果要访问数据库,首先应配置数据库的JDBC驱动程序(jar包)buildPath到Java应用程序的ReferencedLibraries目录下,Java应用程序才能正常地通过JDBC接口访问数据库。首先在网上下载与MySQL的数据库驱动程序mysql-connector-java-x.jar,这里的x代表数据库驱动程序的版本号。
比如:mysql-connector-java-5.1.20-bin.jar9.1.2配置JDBC驱动程序9.2MySQL数据库的安装与使用较好的可移植性。支持包括Windows、Linux、Solaris在内的多种操作系统。为Java、PHP、.NET、C等多种编程语言提供了API。支持多线程技术。优化的SQL查询算法,有效地提高查询速度。提供了TCP/IP、ODBC和JDBC等多种数据库连接途径。提供了用于管理、检查、优化数据库操作的管理工具。具有处理千万条记录的能力。支持多种字符编码。9.2.1MySQL的特点9.2MySQL数据库的安装与使用9.2.2MySQL的安装输入密码9.2MySQL数据库的安装与使用9.2.2MySQL的安装安装完成9.2MySQL数据库的安装与使用9.2.2MySQL的安装MySQL的可视化界面9.2MySQL数据库的安装与使用创建数据库:CREATEDATABASE数据库名;删除数据库:DROPDATABASE数据库名;使用数据库:USE数据库名;创建表:CREATETABLE表名(列名1属性类型AUTO_INCREMENTPRIMARYKEY,//自动增长,主键列名2属性类型NOTNULL,//非空列名3属性类型NOTNULL,//非空);删除表:DROPTABLE表名;增加表一行数据:INSERTINTO表名(列名)VALUES(值1,值2,...);删除表一行数据:DELETEFROM表名WHERE列名=‘值’;9.2.3MySQL的基本SQL语法和使用9.3使用JDBC访问数据库JDBC本身是一个固定的标准,所以其操作基本上也是固定的,只需修改很少的一部分代码就可以达到不同数据库之间的连接转换功能。Java应用程序需要访问数据库时,首先要加载数据库驱动,只需加载一次,然后在每次访问数据库时创建一个Connection实例,获取数据库连接,获取连接后,执行需要的SQL语句,最后完成数据库操作后释放与数据库间的连接。使用JDBC访问数据库的步骤有:1.加载数据库驱动2.创建数据库连接3.使用SQL语句进行数据库操作4.关闭数据库连接9.3使用JDBC访问数据库Java加载JDBC数据库驱动的方法是调用Class类的静态方法forName(),不同数据库的JDBC驱动名称不同。语法格式如下:
Class.forName(StringdriverManager);MySQL的驱动类名为com.mysql.jdbc.Drivertry{
Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动}catch(ClassNotFoundExceptione){e.printStackTrace();}9.3.1加载数据库驱动9.3使用JDBC访问数据库加载完数据库驱动后,就可以建立数据库的连接了,需要使用DriverManager类的静态方法getConnection()方法来实现。Stringurl="jdbc:mysql://localhost:3306/userdb";//数据库连接字符串Stringuser="root";//数据库用户名 Strignpassword="1234"//数据库密码Connectionconnection=null;try{ Class.forName("com.mysql.jdbc.Driver");//创建Connection连接
connection=DriverManager.getConnection(url,user,passwd); }catch(ClassNotFoundExceptione){ e.printStackTrace(); }catch(SQLExceptione){ e.printStackTrace();}9.3.2创建数据库连接9.3使用JDBC访问数据库建立了连接之后,就可以使用Connection接口的createStatement()方法来获取Statement对象,也可以调用prepareStatement()方法获得PrepareStatement对象,通过executeQuery()方法来执行查询数据库的SQL语句。Statementstatement=conn.createStatement(); Stringsql="select*fromuserinfo"; ResultSetrs=stmt.executeQuery(sql);
9.3.3查询数据库操作9.3使用JDBC访问数据库建立了连接之后,就可以使用Connection接口的createStatement()方法来获取Statement对象,也可以调用prepareStatement()方法获得PrepareStatement对象,通过executeQuery()方法来执行查询数据库的SQL语句。while(rs.next()){ //光标向后移动,并判断是否有效
StringuserId=rs.getString(1); //查询并返回表的uid属性的值
Stringusername=rs.getString(2);//查询并返回表的uname属性的值 StringuserPass=rs.getString(3);//查询并返回表的upass属性的值
intuserAge= rs.getInt(4);//查询并返回表的uage属性的值}System.out.println("用户编号是:"+userId);System.out.println("用户名是:"+username);System.out.println("用户密码是:"+userPass);System.out.println("用户年龄是:"+userAge);9.3.3查询数据库操作9.3使用JDBC访问数据库接口PreparedStatement表示预编译的SQL语句的对象。PreparedStatement实例包含已编译的SQL语句。这就是使语句"准备好"。包含于PreparedStatement对象中的SQL语句可具有一个或多个IN参数。IN参数的值在SQL语句创建时未被指定。相反的,该语句为每个IN参数保留一个问号("?")作为占位符。PreparedStatementstatement=null;Stringsql="select*fromuserInfowhereuserName=?";statement=connection.prepareStatement(sql);statement.setString(1,user.getUserId());ResultSetresult=statement.executeQuery();9.3.3查询数据库操作9.3使用JDBC访问数据库建立了连接之后,就可以使用Connection接口的createStatement()方法来获取Statement对象,也可以调用prepareStatement()方法获得PrepareStatement对象,通过executeUpdate()方法来执行更新数据库的SQL语句。PreparedStatementstatement=null;Stringsql="insertintouserInfovalues(?,?,?,?,?,?)";statement=connection.prepareStatement(sql);statement.setString(1,user.getUserId());statement.setString(2,user.getUserName());statement.setString(3,user.getUserSex());statement.setInt(4,user.getUserAge());intcount=statement.executeUpdate();9.3.4更新数据库操作9.3使用JDBC访问数据库1.加载驱动确保数据库的jar包已经在项目的;2.建立连接,确定访问数据库mydb的用户名和密码;3.创建PreparedStatement(发送预编译sql语句到数据库)4.返回结果;5.释放资源;9.3.5应用程序通过JDBC访问MySQL9.4实训9数据库的增删改查要求在mydb数据库的userinfo表中删除姓名为“吴刚”的记录,并把查询结果显示在控制台。任务1:数据库表的中指定行的删除9.4实训9数据库的增删改查要求在判断一个用户和密码是否在mydb数据库userinfo表中有记录,如果有记录在控制台输出1,如果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- X水厂工程质量控制方案
- 2024年阜新小型客运从业资格证考试真题保过
- 2024年来宾道路客运输从业资格证仿真考试题库
- 2024年创业项目借款协议
- 2024年深圳客运从业资格证模拟考
- 2024年液压电磁阀项目申请报告模范
- 2024年液压破碎锤项目提案报告模范
- 2024年黄南客运资格证考试题
- 2024年黄南客运从业资格证理论考试题
- 生鲜电商平台超市入驻方案
- 危险货物道路运输安全卡4
- 船舶电气安装理论图纸相结合PPT课件
- 道路交通标志与标线PPT课件
- 幕墙打胶工艺
- 违约损失率(LGD)研究
- 新冀教版九年级英语上册第26课课件
- 编写标准必备文件 国家标准 地方标准 行业标准 企业标准 格式模板大全
- 《钻木取火》PPT
- 2021-2025乡村5年规划三篇
- 无线电遥控帆船讲解
- 压力与情绪管理(完整版)
评论
0/150
提交评论