您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 第4章Java数据库编程(教材)
第4章Java数据库编程建立学生管理数据库/*学生管理数据库*/CREATEDATABASExsglON(NAME='xsgl_Data',FILENAME='c:\start新\xsgl.mdf',SIZE=2,FILEGROWTH=10%)LOGON(NAME='xsgl_Log',FILENAME='c:\start新\xsgl_log.ldf',SIZE=2,FILEGROWTH=10%)usexsglGO/*创建专业表*/CREATETABLEspeciality(specialityIDintIDENTITY(l,1)PRIMARYKEY,specialitynamechar(10)NOTNULL)GO/*创建用户表*/CREATETABLEusertable(uidintIDENTITY(1,1)PRIMARYKEY,unamechar(10)NOTNULL,upwdchar(10)NULL)GO/*创建班级分类表*/CREATETABLEclassclass(idintIDENTITY(1,1)PRIMARYKEY,parentintNOTNULL,namenchar(10)NOTNULLUNIQUE)GO/*创建课程表*/CREATETABLEcourse(courseIDintIDENTITY(1,1)PRIMARYKEY,courseNamenchar(20)NOTNULLUNIQUE,teachernchar(10)NULL)GO/*创建学生档案表*/CREATETABLExsda(nointIDENTITY(1,1)PRIMARYKEY,classIDintREFERENCESclassclass(ID),namechar(10)NOTNULL,sexnchar(1)NOTNULL,birthDatechar(10)NULL,specialityintNULL,addresschar(30)NULL,isMemberchar(1)NULL,resumentextNULL,pictureimageNULL)GO/*创建学生成绩表*/CREATETABLEgrade(nointREFERENCESxsda(no),courseIdintREFERENCEScourse(courseID),gradefloatNOTNULL,PRIMARYKEY(no,courseID))GO1数据库的连接数据库的连接一般使用两种方法:使用JDBC-ODBC桥实现数据库的连接和使用纯JavaJDBC驱动程序实现数据的连接。1.JDBCJDBC(JavaDataBaseConnection,Java数据库连接)由一组用Java语言编写的类和接口组成。JDBC为使用数据库及其工具的开发人员提供了一个标准的API,使他们能够用JavaAPI来编写数据库应用程序。通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。JDBC的作用概括起来有如下3个方面:(1)建立与数据库的连接(2)向数据库发起查询请求(3)处理数据库返回结果这些作用是通过一系列API实现的,其中的几个重要类或接口如表4-1所示。表与数据库有关的几个重要类或接口接口作用java.sql.Drivermanagerjava.sql.Connectionjava.sql.Statementjava.sql.ResultSet处理驱动程序的加载和建立新数据库连接处理与特定数据库的连接在指定连接中处理SQL语句处理数据库操作结果集2.DrverManagerDriverManager类是Java.sql包中用于数据库驱动程序管理的类,作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应的驱动程序之间建立连接,也处理诸如驱动程序登录时间限制及登录和跟踪消息的显示等事务。一般的应用程序只使用它的getConnection()方法。这个方法用来建立与数据库的连接。staticConnectiongetConnection(Stringurl,Stringusername,Stringpassword):通过指定的数据的URL及用户名、密码创建数据库连接。3.ConnectionConnection是用来表示数据库连接的对象,对数据库的一切操作都是在这个连接基础上进行的。Connection类的主要方法有:voidclearWarning():清除连接的所有警告信息。StatementcreateStatement():创建一个Statement对象。StatementCreateStatement(intresultSetType,intresultSetConcurrency):创建一个Statement对象,它将生成具有特定类型和并发性的结果集。voidcommit():提交对数据库的改动并释放当前持有的数据库的锁。voidrollback():回滚当前事务中的所有改动并释放当前连接持有的数据库的锁。StringgetCatalog():获取连接对象的当前目录。booleanisClose():判断连接是否已关闭。booleanisReadOnly():判断连接是否为只读模式。voidsetReadOnly():设置连接的只读模式。voidclose():立即释放连接对象的数据库和JDBC资源。4.StatementJava所有SQL语句都是通过陈述(Statement)对象实现的。Statement用于在已经建立的连接的基础上向数据库发送SQL语句的对象。Statement对象的建立通过Connection对象的createStatement方法建立Statement对象:Statementstmt=con.createStatement();如果要建立可滚动的记录集,需要使用如下格式的方法:publicStatementcreateStatement(intresultSetType,intresultSetConcurrency)throwsSQLExceptionresultSetType可取下列常量:ResultSet.TYPE_FORWARD_ONL:只能向前,默认值。ResultSet.TYPE_SCROLL_INSENSITIVE:可操作数据集的游标,但不反映数据的变化。ResultSet.TYPE_SCROLL_SENSITIVE:可操作数据集的游标,反映数据的变化。resultSetConcurrency的取值:ResultSet.CONCUR_READ_ONLY:不可进行更新操作。ResultSet.CONCUR_UPDATABLE:可以进行更新操作,默认值。Statement对象的方法Statement对象提供了三种执行SQL语句的方法:ResultSetexecuteQuery(Stringsql):执行SELECT语句,返回一个结果集。intexecuteUpdate(Stringsql):执行update、insert、delete等不需要返回结果集的SQL语句。它返回一个整数,表示执行SQL语句影响的数据行数。booleanexecute(Stringsql):用于执行多个结果集、多个更新结果(或者两者都有)的SQL语句。它返回一个boolean值。如果第一个结果是ResultSet对象,返回true;如果是整数,就返回false。取结果集时可以与getMoreResultSet、getResultSet和getUpdateCount结合来对结果进行处理。5.ResultSetResultSet对象实际上是一个由查询结果数据构成的表。在ResultSet中隐含着一个指针,利用这个指针移动数据行,可以取得所要的数据,或对数据进行简单的操作。其主要的方法有:booleanabsolute(introw):将指针移动到结果集对象的某一行。voidafterLast():将指针移动到结果集对象的末尾。voidbeforeFrist():将指针移动到结果集对象的头部。booleanfirst():将指针移动到结果集对象的第一行。booleannext():将指针移动到当前行的下一行。booleanprevious():将指针移动到当前行的前一行。booleanlast():将指针移动到当前行的最后一行。此外还可以使用一组getXXX()方法,读取指定列的数据。XXX是JDBC中Java语言的数据类型。这些方法的参数有两种格式,一是用int指定列的索引,二是用列的字段名(可能是别名)来指定列。如:StringstrName=rs.getString(2);StringstrName=rs.getString(name);案例使用纯JavaJDBC驱动程序实现数据库的连接在相关网站下载驱动程序,通过Class.forName()方法加载驱动程序,再通过驱动程序管理器(DriverManager)的方法getConnection()建立连接。【代码与注释】importjava.sql.*;importjavax.swing.*;classConnectServer2{//连接数据类staticConnectioncon=null;//连接对象publicstaticbooleanconn(Stringurl,Stringusername,Stringpassword){try{Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);}catch(Exceptione){e.printStackTrace();returnfalse;}try{con=DriverManager.getConnection(url,username,password);//连接数据库}catch(SQLExceptione){e.printStackTrace();returnfalse;}returntrue;//成功}publicstaticbooleanclose(){try{con.close();//关闭数据库con=null;}catch(SQLExceptione){returnfalse;}returntrue;}publicstaticvoidmain(Stringargs[]){//连接SQLServer数据库if(conn(jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=xsgl,sa,)){JOptionPane.showMessageDialog(null,数据库连接成功!);close();//关闭数据库}elseJOptionPane.showMessageDialog(null,数据库连接失败!);}}学习利用纯JavaJDBC驱动程序实现数据库连接。【应用扩展】连接其他类型的数据库使用的驱动程序,可参考表4-2。表4-2常用的数据库驱动程序数据库驱动类URL下载地址MySQLorg.git.mm.mysql.Driverjdbc:mysql://localhost:3306/xsgl:oracle:thin:@127.0.0.1:1521:xsgl【相关知识】1.纯JavaJDBC驱动程序纯JavaJDBC驱动程序是独立的连接驱动程序,不需要中间服务器,与数据库实现通信的整个过程均由Java语言实现。这种方法目前应用较广泛,缺点是需要下载相应的类包,不同数据库的连接代码可能不同。连接SQLServer可以在网站下载。有三个类包:msbase.jar、mssqlserver.jar、msutil.jar。使用时要将这三个包放在j
本文标题:第4章Java数据库编程(教材)
链接地址:https://www.777doc.com/doc-6346445 .html