java速成课件数据库.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,例如插入,删除并不返回结果集ResultSet,select 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连接数据库,JDBC简介 在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接口。,JDBC-ODBC桥接驱动程序 原生API结合Java驱动程序 网络协议搭配完整的Java驱动程序 原生协议搭配完整的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连接数据库 Connection con=DriverManager.getConnection(jdbc:odbc:myDB)3执行SQL Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(select*from employee);while(rs.next()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王五110,12.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操作数据库步骤,加载并注册可用的驱动程序 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);建立连接Connection con=DriverManager.getConnection(jdbc:odbc:myDB,li,1234);执行SQL语句 Statement stmt=con.createStatement();String sql=create table student+(s_num char(4),s_name char(6)null,score int);stmt.executeUpdate(sql);关闭连接,二、建立数据源,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,