1、第8章 数据库操作,本章将详细介绍数据库操作,如连接数据库、添加记录、更新记录、删除记录以及查询记录等等。 通过本章的学习,学生应该能够完成如下几个目标。熟练掌握加载JDBC驱动程序熟练掌握连接MySQL数据库熟练掌握添加、更新、删除记录熟练掌握获得指定记录熟练掌握使用PreparedStatement进行数据库操作,8.1.1 下载MySQL,首先登陆MySQL 5.0的官方下载网站:http:/ “Windows downloads”一栏下面的“Windows Essentials”选项。单击其右边的“Pick a mirror”链接,进入到镜像下载页面。在该下载页面中提供了MySQL用户
2、注册功能,这时可以单击“No thanks, just take me to the downloads!”链接,选择合适的镜像站点进行下载。,8.1.2 安装MySQL,MySQL下载完成后,即可对其进行安装,其安装步骤如下。 (1)双击下载的安装文件mysql-essential-5.0.67-win32.msi 。 (2)系统将数据库服务器安装到默认路径“C:Program FilesMySQL MySQL Server 5.0”下。 (3)安装结束后,在是否配置服务器界面中选择“Configure the MySQL server now” (4)在“MySQL Server Inst
3、ance Configuration”配置中选择“Standard Configuration” (5)在设置服务器选项界面中选择“Install As Windows Service”(安装为Windows服务) 和“Include Bin Directory in Windows PATH”(添加Bin路径到PATH环境变量)两个复选框。 (6)在安全选项界面中需要设置系统管理员root的密码 。 通过如上步骤即完成MySQL服务器的安装。,8.2.1 下载并安装MySQL的JDBC驱动程序,打开MySQL的JDBC驱动下载页面“http:/ connector/j/5.0.html”。选
4、择下载其中的“Source and Binaries (zip)”选项。安装 MySQL的JDBC驱动程序非常简单,只需将mysql-connector-java-5.0.8-bin.jar 文件拷贝到Web项目的WEB-INF目录的lib目录下。安装完成后,就可以在该项 目中通过JDBC驱动程序连接MySQL数据库服务器了。,8.2.2 加载JDBC驱动程序,JDBC与数据库建立连接首先必须加载适当的驱动程序。一般使用Class的forName()方法来加载驱动程序。其中MySQL的驱动程序类为com.mysql.jdbc包下的Driver.class。所以可以使用Class.forName
5、(“com.mysql.jdbc.Driver“);来加载MySQL的驱动程序。,8.3 JDBC连接MySQL数据库,1.创建数据库和数据表 create table user (userid int primary key auto_increment,username varchar(50),password varchar(50) ); 2.连接MySQL数据库 连接数据库非常简单,只需使用DriverManager类的getConnection()方法来创建一个连接对象即可。要想创建一个连接对象还需要指定连接URL。其中连接URL的语法格式如下。 主要通讯协议:次要通讯协议:/数据来
6、源 其中连接MySQL数据库的URL格式如下。 jdbc:mysql:/localhost:端口号(默认3306)/数据库名称?参数1=参数值1&参数2=参数值2,8.4 语句对象Statement,语句对象Statement可以用来执行SQL语句,从而实现数据库操作。可以通过调用连接对象的createStatement()方法来创建并获得语句对象Statement。语句对象Statement包含两个主要方法,分别为executeUpdate()方法和executeQuery()方法。其中executeUpdate()方法主要用来执行数据的更新操作,如添加记录、更新记录和删除记录;execut
7、eQuery()方法主要用来执行数据查询操作,如查询记录。示例:添加记录、更新记录、删除记录,8.5 ResultSet结果集,下面介绍通过语句对象Statement的executeQuery()方法用来执行数据查询操作。其中executeQuery()方法接受一个查询SQL语句,返回一个ResultSet结果集对象。ResultSet结果集对象包含了所以查询得到的记录。可以通过ResultSet结果集对象的next()方法来获得一笔一笔的数据。每次调用next()方法,光标都会向下移动,也就是光标指向下一条数据。如果只要获得第一笔数据,则只需调用一次next()方法就可以了;如果要获得多条数
8、据,则可以使用循环语句来逐条取出。当光标指到了指定的位置,这时还需要取出每个字段的数据。这时就必需根据字段的数据类型来调用ResultSet结果集对象相应的getXXX()方法。比如字段类型为int类型,这时就可以调用getInt()方法。在调用getXXX()方法时还需要指定查询字段的位置,如果为第一个字段,则指定参数为1,依此类推。示例:获得所有记录 、获得指定字段记录、获得指定起始位置和条数的记录,8.6 数据库的关闭操作,数据库在每次使用之后都必须进行关闭,这样可以释放大量资源。关闭数据库操作的顺序与打开数据库操作的顺序想反。首先关闭结果集,然后再关闭语句对象Statement,最后关
9、闭数据库连接对象。无论是关闭结果集ResultSet还是语句对象Statement以及数据库连接对象,都是调用其close()方法。,8.7 预处理语句对象PreparedStatement,PreparedStatement接口继承了Statement接口,所有它能够实现Statement的所有,但是其相比Statement更加灵活。PreparedStatement中的SQL语句可以接受一个或者多个参数,这些参数值都使用“?”来代替。在执行SQL语句前,必须通过PreparedStatement对象的setXXX()方法为参数赋值。通过预处理语句对象PreparedStatement同样可以进行添加记录、更新记录、删除记录和获得记录。示例:添加记录 、更新记录 、删除记录 、获得指定记录 。,8.8 综合练习,下面来看一个简单的用户注册案例 ,该案例包含两个文件。一个是注册表单页,一个是注册提交页,通过JDBC连接数据库,并通过SQL语句添加用户记录 。,8.9 小结,本章介绍了如何下载并安装MySQL数据库服务器,还介绍了如何安装JDBC驱动程序。介绍了如何通过JDBC连接MySQL数据库,并通过语句对象Statement来进行数据库操作。介绍了如何通过Result结果集来获得记录,以及如果通过预处理语句对象PreparedStatement来进行数据库操作。,