实验8-jdbc数据库访问
- 格式:doc
- 大小:160.00 KB
- 文档页数:12
jdbc连接数据库的四个步骤一、引入jdbc相关的jar包在使用jdbc连接数据库之前,需要先引入jdbc相关的jar包,以便在代码中使用jdbc的相关类和方法。
常用的jdbc jar包有mysql-connector-java、ojdbc等,根据所使用的数据库类型选择相应的jar包。
二、加载数据库驱动加载数据库驱动是使用jdbc连接数据库的第一步。
不同的数据库有不同的驱动类,需要根据所使用的数据库类型加载相应的驱动类。
加载驱动的方式有两种:一种是使用Class.forName()方法加载驱动类,另一种是使用DriverManager.registerDriver()方法注册驱动类。
三、建立数据库连接建立数据库连接是使用jdbc连接数据库的第二步。
在建立数据库连接之前,需要先获取数据库连接所需的连接信息,包括数据库的URL、用户名和密码。
数据库的URL是连接数据库的唯一标识,用户名和密码用于验证用户身份。
通过调用DriverManager.getConnection()方法,并传入连接信息参数,即可建立数据库连接。
四、执行数据库操作建立数据库连接之后,就可以执行数据库操作了。
数据库操作包括数据的增删改查等操作。
在执行数据库操作之前,需要创建Statement或PreparedStatement对象,并使用这些对象执行相应的SQL语句。
Statement对象用于执行静态SQL语句,而PreparedStatement对象用于执行带有参数的预编译SQL语句。
执行SQL语句后,可以通过ResultSet对象获取查询结果。
jdbc连接数据库的四个步骤如上所述,其中第一步是引入jdbc相关的jar包,第二步是加载数据库驱动,第三步是建立数据库连接,第四步是执行数据库操作。
通过这四个步骤,可以实现使用jdbc连接数据库,进行数据的增删改查等操作。
在使用jdbc连接数据库时,需要注意以下几点:1. 引入的jdbc jar包需要与所使用的数据库类型对应,否则无法正常连接数据库。
jdbc编程实验报告JDBC编程实验报告一、实验目的本次实验的目的是通过JDBC编程实现Java程序与数据库的交互,掌握JDBC编程的基本方法和技巧。
二、实验环境本次实验使用的开发环境为Eclipse,数据库为MySQL。
三、实验步骤1. 导入JDBC驱动在Eclipse中创建Java项目后,需要将MySQL的JDBC驱动导入到项目中。
具体步骤为:右键项目 -> Build Path -> Configure Build Path -> Libraries -> Add External JARs -> 选择MySQL的JDBC 驱动文件。
2. 连接数据库在Java程序中使用JDBC连接数据库需要使用以下代码:```javaClass.forName("com.mysql.jdbc.Driver");Connection conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/test ", "root", "123456");```其中,`com.mysql.jdbc.Driver`为MySQL的JDBC驱动类名,`jdbc:mysql://localhost:3306/test`为数据库连接地址,`root`为数据库用户名,`123456`为数据库密码。
3. 执行SQL语句在Java程序中使用JDBC执行SQL语句需要使用以下代码:```javaStatement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM user"); while (rs.next()) {System.out.println(rs.getString("name"));}```其中,`conn.createStatement()`用于创建Statement对象,`stmt.executeQuery("SELECT * FROM user")`用于执行SQL查询语句,`rs.next()`用于遍历查询结果集,`rs.getString("name")`用于获取查询结果中名为name的字段的值。
jdbc mysql8连接参数在使用Java数据库连接(JDBC)时,如果需要连接MySQL8数据库,需要特别注意连接参数的设置。
以下是连接MySQL8数据库时需要注意的连接参数:1. 驱动名:com.mysql.cj.jdbc.Driver2. URL格式:jdbc:mysql://<host>:<port>/<database_name>?characterEncodin g=utf8&useSSL=false&serverTimezone=UTC其中,<host>:MySQL服务器的主机名或IP地址。
<port>:MySQL服务器的端口号,一般为3306。
<database_name>:要连接的数据库的名称。
characterEncoding=utf8:设置字符集为UTF-8,以避免中文乱码问题。
useSSL=false:关闭SSL连接,避免出现证书错误。
serverTimezone=UTC:设置时区为UTC,避免出现时区不一致的问题。
3. 用户名和密码:连接MySQL8数据库时,建议使用MySQL 8.0以上版本的加密方式,即使用caching_sha2_password加密方式,而不是以前的mysql_native_password加密方式。
在使用caching_sha2_password加密方式时,需要使用以下连接参数:user=<username>&password=<password>&useUnicode=true&useJDBC CompliantTimezoneShift=true&useLegacyDatetimeCode=false&ser verTimezone=UTC&nullCatalogMeansCurrent=true&authentication Plugins=mysql_native_password, caching_sha2_password 其中,<username>:MySQL数据库的用户名。
简述jdbc访问数据库的一般流程JDBC 是 Java Database Connectivity 的缩写,意为 Java 语言连接数据库。
使用 JDBC 访问数据库的一般流程如下:1. 加载和注册数据库驱动程序:在程序中引入所需的 JDBC 驱动程序,并将其注册到 Java 虚拟机中。
2. 连接数据库建立连接 (获得 Connection 对象):使用 JDBC API 提供的 Connection 对象连接到数据库,一般通过 URL、DriverManager 等方法获取 Connection 对象。
3. 操作数据库 (增查改删):使用 Connection 对象执行 SQL 语句,进行数据的增删改查操作。
可以使用 JDBC API 提供的Statement、ResultSet 等对象来实现。
4. 创建数据库操作对象 (用于执行 SQL 语句):根据需要创建相应的 DatabaseOperation 对象,用于执行 SQL 语句。
5. 关闭连接:在使用完 Connection 对象后,需要及时关闭连接以释放资源。
具体实现过程可以参考以下示例代码:```// 加载和注册数据库驱动程序Class.forName('com.mysql.jdbc.Driver');Connection conn =DriverManager.getConnection('jdbc:mysql://localhost:3306/te st', 'root', 'password');// 连接数据库conn.setAutoCommit(false);// 操作数据库PreparedStatement stmt = conn.prepareStatement('SELECT * FROM user');ResultSet rs = stmt.executeQuery();// 创建数据库操作对象DatabaseOperation bop = new DatabaseOperation('SELECT * FROM user');// 执行 SQL 语句bop.executeUpdate(stmt);// 关闭连接conn.close();```以上仅为一般流程,具体实现过程可能因应用场景不同而有所差异。
实验八访问数据库应用实例一.实验目的:能够熟练运用某种高级语言进行数据库编程二.实验内容:编写一个访问数据库的程序,要求该程序具备查询、插入、删除、修改四个基本功能。
三.实验过程:(将程序的实验过程简单描述并将相关界面截图,关键代码附在文中)本次实验我采用ODBC方式连接数据库,要求先创建ODBC数据源,应用程序通过数据源与数据库连接。
1.利用之前实验中已有的数据库student,其中student表中含有的学生信息2.创建ODBC数据源(1)“开始”—〉“设置”—〉“控制面板”—〉“管理工具”—〉“数据源(ODBC)”,打开之后出现如图所示窗口(2)点击“添加”按钮,出现下图(3)选择SQL Server,点击“完成”,出现下图(4)这里要更改默认的数据库,默认情况下数据源所连接的数据库为master,这里要改为student数据库(5)点击“测试数据源”,如果测试成功说明数据源已成功创建3.创建VC应用程序(1)打开VC6.0++,新建工程,选择MFC AppWizard(exe),添加5个BUTTON控件,其值分别为插入,修改,删除,查询,刷新,4个static控件,其值分别为学号,姓名,年龄,所在系,5个Edit Box控件,如图所示:(2)实验结果及相关代码:原数据库中student表插入void CMy123View::OnButton4(){// TODO: Add your control notification handler code here CString strAge;GetDlgItem(IDC_EDIT1)->GetWindowText(strAge);int nAge = atoi(strAge.GetBuffer(0));if(nAge<0 || nAge>120){AfxMessageBox("输入的年龄不符合实际!");return;}//呈编辑状态m_pSet->AddNew();UpdateData();//更新数据库m_pSet->Update();//重新获得记录集m_pSet->Requery();UpdateData(FALSE);}删除void CMy123View::OnButton5(){// TODO: Add your control notification handler code here m_pSet->Delete();m_pSet->Requery();UpdateData(FALSE);}刷新void CMy123View::OnButton3(){// TODO: Add your control notification handler code here CWnd* c1;c1= CWnd::GetDlgItem(IDC_EDIT5);//获得编辑框c1->SetWindowText("");//将编辑框置空c1= CWnd::GetDlgItem(IDC_EDIT6);c1->SetWindowText("");c1=CWnd::GetDlgItem(IDC_EDIT1);c1->SetWindowText("");c1= CWnd::GetDlgItem(IDC_EDIT2);c1->SetWindowText("");}修改void CMy123View::OnButton6(){// TODO: Add your control notification handler code here CString strAge;GetDlgItem(IDC_EDIT1)->GetWindowText(strAge);int nAge = atoi(strAge.GetBuffer(0));if(nAge<0 || nAge>120){AfxMessageBox("输入的年龄不符合实际!");return;}//呈编辑状态m_pSet->Edit();UpdateData();//更新数据库m_pSet->Update();//重新获得记录集m_pSet->Requery();UpdateData(FALSE);}四.实验总结这次实验通过VC++6.0工具和SQL Sever2005进行数据库编程,编程的过程最开始是建立数据库连接,有ODBC和ADO两种方法,我选的是ODBC来建立数据库,需要先建立数据源,编程的过程用到了一些控件,这些控件才使得界面设计很规范,在代码的设计上将数据库中一些查询,删除,修改,插入一起用到VC中,SQL Sever2005与高级语言有很好的兼容性,所以可以很好的完成这些操作,这次试验让我知道了SQL Sever2005的用处。
jdbc访问数据库的基本步骤访问数据库的基本步骤如下:1. 加载驱动程序:通过Class.forName()方法加载数据库驱动程序,例如加载MySQL驱动程序:`Class.forName("com.mysql.jdbc.Driver")`。
2. 创建数据库连接:通过DriverManager.getConnection()方法创建与数据库的连接。
需要指定数据库的URL、用户名和密码,例如:`Connection connection =DriverManager.getConnection(url, username, password)`。
3. 创建Statement对象:通过Connection对象的createStatement()方法创建Statement对象,用于执行SQL语句,例如:`Statement statement = connection.createStatement()`。
4. 执行SQL语句:使用Statement对象的executeUpdate()方法执行SQL语句,例如:`int result =statement.executeUpdate(sql)`。
可以执行增删改操作。
5. 处理查询结果:如果执行的是查询语句,使用Statement对象的executeQuery()方法执行查询,并使用ResultSet对象获取结果集,例如:`ResultSet resultSet =statement.executeQuery(sql)`。
6. 关闭数据库连接:使用Connection对象的close()方法关闭数据库连接,例如:`connection.close()`。
数据访问技术实验报告实验目的:本实验旨在通过实践操作,加深对数据访问技术的理解,掌握不同数据访问方法的实现原理和应用场景,提高解决实际数据访问问题的能力。
实验环境:- 操作系统:Windows 10- 数据库管理系统:MySQL 8.0- 开发工具:Eclipse IDE 2021-09实验内容:1. SQL查询语句的编写与执行。
2. JDBC(Java Database Connectivity)的使用。
3. ORM(Object-Relational Mapping)框架Hibernate的使用。
实验步骤:1. 准备实验环境,安装并配置好MySQL数据库和Eclipse开发环境。
2. 创建数据库和数据表,为实验提供数据支持。
3. 编写SQL查询语句,实现数据的增删改查操作。
4. 利用JDBC连接数据库,执行SQL语句,并处理结果。
5. 配置Hibernate框架,通过ORM方式进行数据访问。
实验过程:1. 在MySQL中创建名为`ExperimentDB`的数据库,并在其中创建`Students`表,包含字段`id`, `name`, `age`, `major`。
2. 编写SQL语句,插入几条学生记录,并查询所有学生信息。
3. 在Eclipse中创建Java项目,添加MySQL驱动依赖。
4. 编写Java程序,使用JDBC连接到`ExperimentDB`数据库,执行SQL查询语句,并打印查询结果。
5. 配置Hibernate,定义实体类`Student`与`Students`表映射,并使用Hibernate的Session进行数据访问。
实验结果:1. SQL查询语句成功执行,能够正确插入和查询数据。
2. JDBC程序能够连接数据库,执行SQL语句,并正确处理查询结果。
3. Hibernate配置成功,通过ORM方式能够进行数据的增删改查操作。
实验分析:通过本次实验,我们了解到SQL是直接与数据库进行交互的基本语言,适用于简单的数据操作。
实验项目十三JDBC数据库编程一、实验目的及要求1、掌握创建ODBC数据源2、掌握创建一个Student表3、运用Type1(JDBC-ODBC桥)连接、访问数据库4、实现数据库的增删改查操作二、实验内容和要求1、在D盘建立sql文件夹,进入该文件夹建立名为stu.mdb的数据库,打开,设计表结构如下(参照P178表10-6),存盘,定表名为Students:打开表,可以添加2条记录如下:2、创建ODBC数据源开始-设置-控制面板-管理工具-数据源,选择“系统DSN”-“添加”,选第2项“Driver do Microsoft Access(*.Mdb)”(如下图):配置系统DNS(数据源):StudentSystem按照以下图例进行设置:数据源名,填StudentSystem,按“选择”,选d:\sql目录下的stu.mdb:再按“高级”按钮,登录名填sa,密码填sql,按“确定”。
记住数据源的名字System,表的名字Students,登录名sa,密码sql,编程会用到。
注意配置环境变量,Dos下加上 set path=C:\Program Files\Java\jdk1.6.0_20\bin3、运用Type1(JDBC-ODBC桥)连接、访问数据库//P179,操作1 创建一个类Student,与上面的表Student是对接:class Student{String No; //学号String Name; //姓名int Age; //年龄String Sex; //性别String Address; //住址String Email; //电子邮件String Phone; //联系电话//创建学生对象,封装数据//编写Student构造函数如下public Student(String No,String Name,int Age,String Sex,String Address,String Email,String Phone){this.No=No;=Name;this.Age=Age;this.Sex=Sex;this.Address=Address;this.Email=Email;this.Phone=Phone;}}编译情况如下:●运行结果●算法分析//P179,操作2 连接数据库:import java.sql.*; //导入包public class StudentSystem{Connection conn; //数据库连接对象Statement stm; //执行简单的SQL语句PreparedStatement pstm;//执行带有参数的SQL语句ResultSet rs; //保存查询结果StudentSystem()throws Exception{//加载驱动程序Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//连接数据库conn=DriverManager.getConnection("jdbc:odbc:StudentSystem","sa","sql"); }//操作3 :显示数据表的内容://查询并显示所有学生信息void selectAll()throws SQLException{stm=conn.createStatement();//创建Statement对象rs=stm.executeQuery("select * from Students");//执行SQL语句//判断是否有查询结果并显示while(rs.next()){printAll();System.out.println("------------------------------");}closeAll();//关闭Statement对象和ResultSet结果集//操作4 增:插入一条记录到数据表中://插入学生信息void insertStudent(Student s)throws SQLException{//创建带有参数的preparedStatement对象pstm=conn.prepareStatement("insert into Students values(?,?,?,?,?,?,?)"); //为参数赋值setValue(s);//执行SQL语句pstm.executeUpdate();//关闭preparedStatement对象pstm.close();}//操作5 删:删除满足条件的记录://删除指定学号的学生void deleteNo(String No)throws SQLException{pstm=conn.prepareStatement("delete from Students where StudentNo=?"); pstm.setString(1,No);pstm.executeUpdate();}//操作6 改:修改数据表的内容://修改指定学号的学生信息/* void updateStudent(Student s)throws SQLException{pstm=conn.prepareStatement("update Students setStudentNo=?,Name=?,Age=?,Sex=?,Address=?,Email=?,Phone=? where StudentNo=?"); setValue(s);pstm.setString(8,s.No);pstm.executeUpdate();pstm.close();}*///操作7 查:查找满足条件的记录://按照指定的学号查找特定学生信息void selectNo(String No)throws SQLException{stm=conn.createStatement();rs=stm.executeQuery("select * from Students where StudentNo='"+No+"'"); if(rs.next()){printAll();}closeAll();//操作8 综合处理://用来显示数据库中的数据private void printAll()throws SQLException{System.out.println("学号:"+rs.getString(1));System.out.println("姓名:"+rs.getString(2));System.out.println("年龄:"+rs.getInt(3));System.out.println("性别:"+rs.getString(4));System.out.println("地址:"+rs.getString(5));System.out.println("Email:"+rs.getString(6));System.out.println("电话:"+rs.getString(7));}//用来为参数设定值private void setValue(Student s)throws SQLException{pstm.setString(1,s.No); //pstm.setString("StudentNo",s.No);pstm.setString(2,); //pstm.setString("Name",);pstm.setInt(3,s.Age); //pstm.setInt("Age",s.Age);pstm.setString(4,s.Sex); //pstm.setString("Sex",s.Sex);pstm.setString(5,s.Address);//pstm.setString("Address",s.Address); pstm.setString(6,s.Email); //pstm.setString("Email",s.Email);pstm.setString(7,s.Phone); //pstm.setString("Phone",s.Phone);}//关闭结果集和Statement对象private void closeAll()throws SQLException{rs.close();stm.close();}//关闭连接void closeConn()throws SQLException{conn.close();}}将上述代码存入d:\j文件夹,名为StudentSystem.java,编译情况如下:●运行结果●算法分析4、实现数据库的增删改查操作//p181,主控程序class MainStudent{public static void main(String args[])throws Exception{//创建数据库操作类实例StudentSystem ss=new StudentSystem();//创建学生对象Student s1=new Student("20053051103","李三",22,"男","河北","168755955@","12345908945");Student s2=new Student("20053051105","王五",21,"男","湖北","wangwu@","12345908846");Student s3=new Student("20053051106","刘萍",22,"女","江西","zsan@","12345908965");Student s4=new Student("20053051107","黄志彬",21,"男","湖北","huang@","12345778849");//将学生信息写入数据库ss.insertStudent(s1);ss.insertStudent(s2);ss.insertStudent(s3);ss.insertStudent(s4);//查找指定学号学生//ss.selectNo("20053051101");//修改学生信息//ss.updateStudent(s);//删除指定学号学生信息//ss.deleteNo("20053051102");//显示所有学生信息ss.selectAll();//关闭数据库连接ss.closeConn();}}增加4条记录并显示:查找学号为"20053051106" 的学生:class MainStudent{public static void main(String args[])throws Exception{ //创建数据库操作类实例StudentSystem ss=new StudentSystem();//创建学生对象//查找指定学号学生ss.selectNo("20053051106");ss.closeConn();}}删除学号为"20053051106" 的学生:class MainStudent{public static void main(String args[])throws Exception{ //创建数据库操作类实例StudentSystem ss=new StudentSystem();//创建学生对象//删除指定学号学生信息ss.deleteNo("20053051106");//显示所有学生信息ss.selectAll();//关闭数据库连接ss.closeConn();}}观察,学号为"20053051106" 的学生即“刘萍”被删除了。
JDBC实验心得1. 介绍JDBC(Java Database Connectivity)是Java语言访问数据库的标准API。
通过JDBC,可以实现Java程序与各种关系型数据库的连接与交互。
在本次实验中,我深入学习了JDBC的使用方法,并通过实际操作,对JDBC在开发中的重要性有了更深刻的认识。
本文将从以下几个方面详细探讨我在实验中的心得体会:•JDBC的基本概念及原理•JDBC连接数据库的步骤•实际操作中遇到的问题及解决方法•JDBC在开发中的应用场景•实验的收获和不足之处2. JDBC的基本概念及原理2.1 JDBC的作用和优势JDBC是Java语言连接数据库的标准接口。
它使得Java程序能够通过标准的数据库操作语句与数据库进行交互,实现数据的存储和查询等功能。
JDBC的优势在于它能够提供跨平台的数据库访问能力,而不依赖于特定的数据库或操作系统。
2.2 JDBC的工作原理JDBC的工作原理可以分为以下几个步骤:1.加载数据库驱动程序:在使用JDBC之前,需要先加载相应数据库的驱动程序。
通过Class.forName()方法加载驱动类,这个类实现了Java SQL接口规范。
2.建立数据库连接:通过DriverManager类的getConnection()方法,传入数据库URL、用户名和密码等参数,来建立与数据库的连接。
连接成功后,将返回一个Connection对象。
3.创建执行SQL语句的Statement对象:通过Connection对象的createStatement()方法,可以创建一个用于执行SQL语句的Statement对象。
4.执行SQL语句:使用Statement对象的executeQuery()或executeUpdate()方法,可以执行查询或更新操作。
5.处理查询结果或更新结果:当执行查询语句后,可以使用ResultSet对象来遍历查询结果集;当执行更新语句后,可以使用int值表示受影响的行数。
数据库原理与应用?课程教学大纲【说明部份】数据库技术是计算机科学技术中开展最快的领域之一,也是应用最广的技术之一。
数据库技术是计算机科学的重要分支,数据库技术和数据库系统已经成为计算机信息系统的核心技术和重要根底。
数据库原理与应用?是本科计算机专业和信息系统信息管理等相关专业的专业主干课程。
【正文部份】一、课程内容概述本课程系统讲述数据库系统的根底理论、根本技术和根本方法。
内容包括:数据库系统的根本概念、数据模型、关系数据库及其标准语言SQL、数据库平安性和完整性的概念和方法、关系标准化理论、数据库设计方法和步骤,数据库恢复和并发控制等事务管理根底知识,关系查询处理和查询优化等。
二、课程目标通过本课程学习,使学生系统地掌握数据库系统的根本原理和根本技术。
要求在掌握数据库系统根本概念的根底上,能熟练使用SQL语言在某一个数据库管理系统上进展数据库操作;握数据库设计方法和步骤,具有设计数据库模式以及开发数据库应用系统的根本能力。
三、先修课程* 计算机程序设计方法和语言* 数据构造* 离散数学* 操作系统四、教学内容和教学要求〔一〕绪论〔4课时〕内容概述:阐述数据库的根本概念,介绍数据管理技术的进展情况、数据库技术产生和开展的背景,数据模型的根本概念、组成要素和主要的数据模型,概念模型的根本概念及ER方法,数据库系统的3级模式构造以及数据库系统的组成。
本章目标:本章讲解的数据库根本概念和根本知识是学习后续各个章节的根底。
学习本章的目的在于了解根本知识,掌握根本概念,为以后的学习打好扎实的根底。
重点:结实掌握概念模型的根本概念及其主要建模方法ER方法;掌握关系数据模型的相关概念、数据库系统三级模式和两层映像的体系构造、数据库系统的逻辑独立性和物理独立性等;对于如何通过ER方法描述现实世界的概念模型要做到能够举一反三的程度。
难点:本章的难点是需要掌握数据库领域大量的根本概念。
有些概念一开场接触会感到比拟抽象,但不要紧,随着学习的逐渐推进,在后续章节中,这些抽象的概念会逐渐变得清晰具体起来。
实验8 JDBC访问数据库一、实验目的1. 掌握使用传统的方法访问数据库;2. 掌握使用数据源的方法访问数据库。
二、实验原理数据库应用是Web应用开发的一个重要应用。
Web应用程序访问数据库有两种方法:传统的方法和使用JNDI数据源的方法。
传统方法访问数据库的步骤是:①加载数据库驱动程序;②建立连接对象;③创建语句对象;④获得结果集;⑤关闭有关连接对象。
使用数据源访问数据库的步骤是:①配置数据源(局部数据源或全局数据源);②通过JNDI机制查找命名数据源;③通过数据源对象创建连接对象;④其他与传统方法一致。
三、实验容与步骤(一)使用传统方法通过JSP页面访问数据库【步骤1】创建数据库。
假设在PostgreSQL建立了一个名为bookstore的数据库,在其中建立books表,代码如下:CREATE TABLE books (bookid character(5) PRIMARY KEY, --书号title varchar2(80), --书名author character varying(20), --作者publisher character varying (40), --price real --价格);向books表中插入几条记录,代码如下:INSERT INTO books VALUES('204','Head First Servlets & JSP', 'Bryan Basham', '中国电力',98.00);INSERT INTO books VALUES('201', 'Servlets 与JSP 核心教程', 'Hall Marty','清华大学',45);INSERT INTO books VALUES('202', 'Tomcat与Java Web 开发技术祥解', '卫琴', '机械工业',45);INSERT INTO books VALUES('203', 'JSP 应用开发技术', '柳永坡','人民邮电',52);INSERT INTO books VALUES('205', 'J2EE 1.4 编程指南', 'Spielman Sue','电子工业',68);注意:需要将数据库的JDBC驱动程序安装到应用程序的WEB-INF\lib目录中。
【步骤2】使用下面JSP页面displayBooks.jsp访问books表中的数据。
<% page contentType="text/html; charset=gb2312" %><% page import="java.sql.*"%><html><head> <title>Database Access Test</title></head><body><%try {Class.forName("org.postgresql.Driver");String dburl = "jdbc:postgresql://localhost:5432/bookstore";Connection conn = DriverManager.getConnection(dburl, "bookstore","bookstore");Statement stmt = conn.createStatement();String sql = "SELECT * FROM books" ;ResultSet rs = stmt.executeQuery(sql);out.println("<table border=1>");out.println("<tr><td>书号</td><td>书名</td><td>作者</td><td>价格</td></tr>");while (rs.next()){out.println("<tr><td>"+ rs.getString(1)+"</td><td>"+rs.getString(2)+"</td><td>"+ rs.getString(3)+"</td><td>"+ rs.getString(5)+"</td></tr>");}out.println("</table>");rs.close();stmt.close();conn.close();}catch (Exception e) {out.println(e.getMessage());}%></body></html>运用mysql的代码如下:<% page contentType="text/html; charset=gb2312"%><% page import="java.sql.*"%><html><head><title>Database Access Test</title></head><body><%try {Class.forName(".mysql.jdbc.Driver");String dburl = "jdbc:mysql://localhost:3306/bookstore";Connection conn = DriverManager.getConnection(dburl, "root", "");Statement stmt = conn.createStatement();String sql = "SELECT * FROM books";ResultSet rs = stmt.executeQuery(sql);out.println("<table border=1>");out.println("<tr><td>书号</td><td>书名</td><td>作者</td><td>价格</td></tr>");while (rs.next()) {out.println("<tr><td>" + rs.getString(1) + "</td><td>"+ rs.getString(2) + "</td><td>" + rs.getString(3)+ "</td><td>" + rs.getString(5) + "</td></tr>");}out.println("</table>");rs.close();stmt.close();conn.close();} catch (Exception e) {out.println(e.getMessage());}%></body></html>图1 displayBooks.jsp(二)通过数据源访问数据库注意:需要将数据库的JDBC驱动程序安装到Tomcat安装目录的\lib目录中,并重新启动Tomcat服务器。
【步骤1】建立局部数据源在Web应用程序中建立一个META-INF目录,在其中建立一个context.xml文件,容如下:<?xml version="1.0" encoding="utf-8"?><Context reloadable = "true"><Resourcename="jdbc/bookDS"type="javax.sql.DataSource"maxActive="4"maxIdle="2"username="bookstore"maxWait="5000"driverClassName="org.postgresql.Driver"password="bookstore"url="jdbc:mysql://localhost:3306/bookstore"/></Context>【步骤2】使用下面的JSP页面displayBooks.jsp访问数据库<% page contentType="text/html; charset=gb2312" %><% page import="java.sql.*, javax.sql.*,javax.naming.*"%><html><head> <title>DataSource Test</title></head><body><%try {Context context = new InitialContext();DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/bookDS");Connection conn = ds.getConnection();Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM books");out.println("<table border=1>");out.println("<tr><td>书号</td><td>书名</td><td>作者</td><td>价格</td></tr>");while (rs.next()){out.println("<tr><td>"+ rs.getString(1)+"</td><td>"+rs.getString(2)+"</td><td>"+ rs.getString(3)+"</td><td>"+ rs.getString(5)+"</td></tr>");}out.println("</table>");rs.close();stmt.close();conn.close();}catch (Exception e) {out.println(e.getMessage());}%></body></html>图2 displayBooks.jsp(三)综合应用。