JAVA连接SQL数据库.ppt
用字符流读出一个文件3_a.txt的奇数行,另存到文件3_b.txt中16上机作业1代码在备注中教材课后实训教材课后实训1简化版简化版实训实训1:【实训目的】练习输入输出流类的使用【实训步骤】(1)在一个类Student中,定义三个成员变量String name;int no;double score;(2)写一个方法input,从键盘输入姓名,学号(6位数)成绩,生成一个Student类对象a;(4)写一个方法save,将学生a的姓名、学号、成绩保存到以学号命名的文本文件中;16周上机作业周上机作业2代码在备注中上课演示代码1查询sql语句代码在备注中上课演示代码2其他sql语句代码在备注中数据库简介数据库是长期存储在计算机内的、有组织的、可共享的数据集合。本章介绍Java的数据库功能。1 关系型数据库 关系型数据库中以表为单位来组织数据,表是由行和列组成的二维表格。2、SQL简介结构化查询语言SQL(Structured Query Language)是所有关系型数据库都支持的一种统一的数据库语言,在Java中对数据库操作是通过SQL语言来实现的。2、SQL简介(续)定义表要建立表,首先需建立表结构。建立数据库中表结构的语句为:CREATE TABLE 表名(列名1 数据类型1 条件1,列名2 数据类型2 条件2,)查询利用SELECT语句从数据库中查询信息,其句型如下:SELECT 列名1,列名2,FROM 表名1,表名2,WHERE 条件插入利用INSERT语句向表中插入记录,INSERT语句的格式如下:INSERT INTO 表名VALUES(列1值,列2值,)删除要删除表中的一条或多条记录,可以使用DELETE语句,其格式如下:DELETE FROM 表名 WHERE 条件 修改要修改表中的记录,可以使用UPDATE语句,其格式如下:UPDATE 表名SET 列名1=值1,列名2=值2,WHERE 条件执行SQL的几种形式建表建表:String sql=create table student +(s_num char(4),s_name char(6)null,score int);stmt.executeUpdate(sql);增加记录增加记录:String sqlstr=insert into employee values(2001,邢雪花邢雪花,女女,650);stmt.executeUpdate(sqlstr);查询记录查询记录:ResultSet rs=stmt.executeQuery(select*from employee);while(rs.next()System.out.println(编号编号+rs.getString(no)+t+姓名姓名 +rs.getString(name)+t+性别性别 +rs.getString(sex)+t+工资工资 +rs.getFloat(salary);删除记录删除记录:String sql=delete from employee where name=tom;stmt.executeUpdate(sql);执行SQL的几种形式修改修改:String sql=update employee set no=3001+where name=翟建设翟建设;stmt.executeUpdate(sql);元数据元数据:ResultSet rs=stmt.executeQuery(SELECT*FROM employee);ResultSetMetaData rsmd=rs.getMetaData();for(int i=1;i=rsmd.getColumnCount();i+)if(i=1)System.out.print(rsmd.getColumnName(i);else System.out.print(,+rsmd.getColumnName(i);删除表删除表:String sql=drop table student;stmt.executeUpdate(sql);executeQuery方法只有在查询的时候才用方法只有在查询的时候才用并不是每个方法都会返回一个结果集并不是每个方法都会返回一个结果集ResultSet,例如插入,删除,例如插入,删除并不返回结果集并不返回结果集ResultSetselect code,cityName,pcode from city select code,cityName,pcode from city order by code descinsert into city(code,cityName,pcode)values(5,佛山,2)update city set cityName=江门 where code=5delete from city where code=5例:找出所有姓李的学生Select*from student where SNAME like 李*或:Select*from student where SNAME like 李%第十二章:数据库操作二、使用JDBC连接数据库 1JDBC简介 在Java程序中,连接数据库采用JDBC(Java Database Connectivity)技术,是由Sun公司提供的与平台无关的数据库连接标准,目前各大数据库厂商基本都提供JDBC驱动程序,使得Java程序能独立运行于各种数据库之上。JDBC特点特点利用JDBC,开发者能够编写出独立于特定数据库系统的Java程序。JDBC在Java中的作用和ODBC(开放式数据库连接)在Windows系列平台应用程序中的作用类似。利用JDBC-ODBC桥,可以使用所有能用的ODBC使用的数据库。JDBC不是由Microsoft的ODBC规范派生的,JDBC完全是用Java编写的,而ODBC是个C接口。1.JDBC-ODBC桥接驱动程序 2.原生API结合Java驱动程序 3.网络协议搭配完整的Java驱动程序 4.原生协议搭配完整的Java驱动程序 利用JDBC-ODBC桥,可以使用所有能用的ODBC使用的数据库。我们今天要介绍的前两种平台无关性差推荐使用后两种1 JDBC驱动程序分类access数据库数据库Java程序程序Class.forName(“);Connection con=con.close();在在windows中设置中设置的的Odbc数据源数据源SQLServer数据库数据库sqlserver数据库数据库Sqlserver数据库厂数据库厂商开发的商开发的JDBC驱驱动程序动程序方式方式1:jdbc-odbc连接连接方式方式4:各数据库:各数据库自带原生协议自带原生协议Java数据库编程数据库编程 步骤1 数据库编程的一般过程数据库编程的一般过程 加载驱动程序加载驱动程序 如:如:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);2 2连接数据库连接数据库 Connection con=DriverManager.getConnection(jdbc:odbc:myDB)3 3执行执行SQL Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(select*from employee);while(rs.next()4 4关闭连接关闭连接 rs.close();stmt.close();con.close();create,drop,insert,query,delete,update,meta四种类型的方式:这里的为jdbc-odbc驱动方式第十二章第十二章 数据库编程数据库编程【学习目标学习目标】读者通过本章学习,应该达到如下目标:理解JDBC驱动程序的含义编写java程序连接access数据库,并读写数据库中数据编写java程序读取数据库的元数据12.1 JDBC驱动程序驱动程序1.JDBC简介简介2.JDBC的分类的分类12.2 用用java程序连接程序连接Access数据库数据库【任任务务12-1】建建立立一一个个Access数数据据库库和和数数据源据源【任任务务12-2】查查询询出出数数据据库库表表中中已已有有的的数数据据import java.sql.*;public class AllStudent public static void main(String args)try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch(ClassNotFoundException e)System.out.println(ClassNotFoundException);System.exit(0);try Connection conn=DriverManager.getConnection(jdbc:odbc:student,li,1234);Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery(select*from basicInfo);while(rs.next()System.out.print(rs.getString(no)+t);System.out.print(rs.getString(name)+t);System.out.print(rs.getString(sex)+t);System.out.print(rs.getString(isJob)+t);System.out.println(rs.getString(isPartMember)+t);catch(SQLException e)System.out.println(SQLException);9001张三0109008李四1117098王五11012.3 数据库元数据数据库元数据【任务任务12-3】取出数据库元数据显示表头取出数据库元数据显示表头import java.sql.*;public class Meta public static void main(String args)try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection conn=DriverManager.getConnection(jdbc:odbc:student,li,1234);Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery(select*from basicInfo);ResultSetMetaData rsmd=rs.getMetaData();for(int i=1;i=rsmd.getColumnCount();i+)if(i=1)System.out.print(rsmd.getColumnName(i);else System.out.print(,+rsmd.getColumnName(i);stmt.close();conn.close();catch(SQLException e)System.out.println(SQLException);catch(ClassNotFoundException e)System.out.println(ClassNotFoundException);no,name,sex,isJob,isPartMember输出【任任务务12-4】综综合合实实例例:图图形形界界面面学学生生信信息输入息输入12.4习题习题一、选择题:1.下列的sql语句中,哪一项可用executeQuery方法发送到数据库?()A)UPDATEB)DELETE C)SELECT D)INSERT2.Statement接口的作用是什么?选出最佳答案()A)负责发送sql语句,如果有返回结果,则将结果保存到ResultSet对象中B)执行sql语句C)产生一个ResultSet结果集D)上述都不对二、判断题:1.()Statement类某个对象的的executeQuery方法只有在查询的时候才用。2.()并不是每个方法都会返回一个结果集ResultSet,例如插入,删除并不返回结果集ResultSet。三、简答题:1.简述JDBC工作原理。2.简述java.sql包中主要类的作用。课堂练习1解释下列名词数据库,SQL,JDBC,关系型数据库,记录2简述JDBC的功能和特点3什么是数据库前端开发工具?其主要作用和任务是什么?4简述使用JDBC完成数据库操作的基本步骤12.5实训实训实训实训1:【实训目的】练习连接数据库及使用数据库相关类【实训步骤】(1).在数据库中建立一个表,表名为studentEx,结构为:学号、姓名、性别、年龄、成绩提示:所用sql语句:create table studentEx(num int primary key,name char(32),sex char(8),age int,grade int);(2).增加四条记录(具体数据自己设计)所用sql语句:insert into studentEx values(9001,susan,女,20,89);(3).修改记录:将每人成绩增加10%所用sql语句:update studentEx set grade=grade*1.1;(4).查询记录并按成绩从大到小打印所用sql语句:select*from studentEx order by grade desc;(5).删除成绩不及格的学生记录所用sql语句:delete from studentEx where grade 60;用JDBC访问数据库的四个步骤:1。注册并装载一个JDBC驱动程序;2 通过DriverManager类获取与指定数据库的连接对象;3.1 在连接对象上创建一个Statement对象;3.2 通过Statement对象执行指定的SQL语句3.3(3.3步是当3.2步为查询才需要)将第3.2步返回一个ResultSet对象内容取出来显示4 关闭数据库连接Java操作数据库步骤连接数据库用到的对象和方法用哪种类型数据库Access,SQL ServerClass.forName(“”)指向哪个数据库文件创建Connection对象conn连接该数据库文件创建Statement对象stmt查询出的结果集创建ResultSet对象rssql语句(增 删查 改 更新操作)stmt.executeUpdate(sql)stmt.executeQuery(sql)关闭结果集,断开数据库 关闭Connection对象conn和Statement对象stmt和ResultSet 对象rsn加载并注册可用的驱动程序n Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);n建立连接nConnection con=n DriverManager.getConnection(jdbc:odbc:myDB,li,1234);n执行SQL语句n Statement stmt=con.createStatement();n String sql=create table student +n (s_num char(4),s_name char(6)null,score int);n stmt.executeUpdate(sql);n关闭连接二、建立数据源 1 建立数据库 建立数据库 建立mydb.mdb文件建立表的结构 建立employee表并设计其字段输入记录 让employee表有内容2 建立数据源 在电脑中建立系统dsn用JDBC访问数据库的四个步骤:1 注册并装载一个JDBC驱动程序;2 通过DriverManager类获取与指定数据库的连接对象;3 在连接对象上创建一个Statement对象;4 通过Statement对象执行指定的SQL语句,并返回一个ResultSet。四、四、Java数据库编程数据库编程 1 数据库编程的一般过程 加载驱动程序 如:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);连接数据库 Connection con=DriverManager.getConnection(jdbc:odbc:myDB)执行SQL Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(select*from employee);while(rs.next()关闭连接 rs.close();stmt.close();con.close();create,drop,insert,query,delete,update,meta