实验8-jdbc数据库访问
jdbc连接数据库的四个步骤
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编程实验报告一、实验目的本次实验的目的是通过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连接参数
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访问数据库的一般流程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();```以上仅为一般流程,具体实现过程可能因应用场景不同而有所差异。
实验8 访问数据库应用实例 (1)
实验八访问数据库应用实例一.实验目的:能够熟练运用某种高级语言进行数据库编程二.实验内容:编写一个访问数据库的程序,要求该程序具备查询、插入、删除、修改四个基本功能。
三.实验过程:(将程序的实验过程简单描述并将相关界面截图,关键代码附在文中)本次实验我采用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访问数据库的基本步骤
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是直接与数据库进行交互的基本语言,适用于简单的数据操作。
《Java》实验指导13-JDBC数据库编程(Access版)
实验项目十三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实验心得
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值表示受影响的行数。
《数据库原理与应用》教学大纲1
数据库原理与应用?课程教学大纲【说明部份】数据库技术是计算机科学技术中开展最快的领域之一,也是应用最广的技术之一。
数据库技术是计算机科学的重要分支,数据库技术和数据库系统已经成为计算机信息系统的核心技术和重要根底。
数据库原理与应用?是本科计算机专业和信息系统信息管理等相关专业的专业主干课程。
【正文部份】一、课程内容概述本课程系统讲述数据库系统的根底理论、根本技术和根本方法。
内容包括:数据库系统的根本概念、数据模型、关系数据库及其标准语言SQL、数据库平安性和完整性的概念和方法、关系标准化理论、数据库设计方法和步骤,数据库恢复和并发控制等事务管理根底知识,关系查询处理和查询优化等。
二、课程目标通过本课程学习,使学生系统地掌握数据库系统的根本原理和根本技术。
要求在掌握数据库系统根本概念的根底上,能熟练使用SQL语言在某一个数据库管理系统上进展数据库操作;握数据库设计方法和步骤,具有设计数据库模式以及开发数据库应用系统的根本能力。
三、先修课程* 计算机程序设计方法和语言* 数据构造* 离散数学* 操作系统四、教学内容和教学要求〔一〕绪论〔4课时〕内容概述:阐述数据库的根本概念,介绍数据管理技术的进展情况、数据库技术产生和开展的背景,数据模型的根本概念、组成要素和主要的数据模型,概念模型的根本概念及ER方法,数据库系统的3级模式构造以及数据库系统的组成。
本章目标:本章讲解的数据库根本概念和根本知识是学习后续各个章节的根底。
学习本章的目的在于了解根本知识,掌握根本概念,为以后的学习打好扎实的根底。
重点:结实掌握概念模型的根本概念及其主要建模方法ER方法;掌握关系数据模型的相关概念、数据库系统三级模式和两层映像的体系构造、数据库系统的逻辑独立性和物理独立性等;对于如何通过ER方法描述现实世界的概念模型要做到能够举一反三的程度。
难点:本章的难点是需要掌握数据库领域大量的根本概念。
有些概念一开场接触会感到比拟抽象,但不要紧,随着学习的逐渐推进,在后续章节中,这些抽象的概念会逐渐变得清晰具体起来。
jdbc使用步骤
jdbc使用步骤JDBC使用步骤JDBC(Java Database Connectivity)是Java程序连接数据库的一种标准接口。
通过JDBC,我们可以在Java程序中访问和操作各种数据库。
下面将介绍使用JDBC连接数据库的步骤。
1. 导入JDBC相关的包在Java程序中使用JDBC,首先需要导入JDBC相关的包。
通常使用的包包括java.sql和javax.sql。
可以使用import语句导入这些包,以便在代码中使用JDBC提供的类和接口。
2. 加载数据库驱动程序在使用JDBC之前,需要先加载数据库驱动程序。
驱动程序是一个Java类,用于与特定的数据库进行通信。
不同的数据库有不同的驱动程序,需要根据使用的数据库选择相应的驱动程序。
可以使用Class类的forName()方法来动态加载驱动程序。
3. 建立数据库连接在加载了数据库驱动程序之后,就可以建立与数据库的连接了。
首先需要创建一个Connection对象,该对象表示与数据库的物理连接。
可以使用DriverManager类的getConnection()方法来建立数据库连接。
该方法接收数据库的URL、用户名和密码等参数,返回一个代表数据库连接的Connection对象。
4. 创建Statement对象在建立了数据库连接之后,就可以创建Statement对象了。
Statement对象用于向数据库发送SQL语句并接收执行结果。
可以通过Connection对象的createStatement()方法来创建Statement对象。
5. 执行SQL语句通过Statement对象可以执行SQL语句。
可以使用Statement对象的executeUpdate()方法执行更新操作(如插入、删除、修改),该方法返回一个整数,表示受影响的行数。
可以使用Statement对象的executeQuery()方法执行查询操作,该方法返回一个ResultSet对象,表示查询结果集。
简述jdbc访问数据库的一般流程
简述jdbc访问数据库的一般流程JDBC是Java中用于访问数据库的标准接口。
它可以让Java程序通过与数据库建立连接,执行SQL语句,并处理查询结果等操作。
一般情况下,JDBC访问数据库的流程如下:1. 加载数据库驱动首先,需要加载数据库的驱动程序。
不同的数据库有不同的驱动程序,例如MySQL的驱动程序是com.mysql.jdbc.Driver,Oracle的驱动程序是oracle.jdbc.driver.OracleDriver。
可以通过Class.forName方法或者DriverManager.registerDriver 方法来加载驱动程序。
2. 建立连接加载驱动程序之后,需要建立与数据库的连接。
可以使用DriverManager.getConnection方法来建立连接,需要传入数据库的URL、用户名和密码等信息。
连接成功后,就可以在Java程序中操作数据库了。
3. 执行SQL语句建立连接之后,可以使用Connection对象的createStatement方法或prepareStatement方法来创建一个Statement对象或PreparedStatement对象。
然后,可以使用这些对象执行SQL语句,例如查询、插入、更新或删除数据等操作。
4. 处理查询结果如果执行的SQL语句是查询操作,那么需要通过ResultSet对象来处理查询结果。
可以使用Statement对象或PreparedStatement对象的executeQuery方法来执行查询操作,然后使用ResultSet对象的getXXX方法来获取查询结果。
5. 关闭连接操作数据库完毕之后,需要关闭与数据库的连接,以释放相关资源。
可以使用Connection对象的close方法来关闭连接。
JDBC访问数据库的流程需要注意一些问题,例如SQL注入、事务处理、连接池等,这些问题都需要开发人员进行认真的考虑和处理。
jdbc实验心得
jdbc实验心得JDBC实验心得一、实验背景和目的JDBC(Java Database Connectivity)是Java语言访问数据库的标准接口,通过JDBC可以方便地连接和操作各种类型的数据库。
本次实验旨在通过编写Java程序使用JDBC连接数据库,并进行数据的增删改查操作,加深对JDBC的理解和掌握。
二、实验过程1. 环境准备:首先需要安装并配置好Java开发环境,包括JDK和IDE (如Eclipse或IntelliJ IDEA)。
然后下载并安装相应版本的数据库驱动程序,如MySQL Connector/J。
2. 创建数据库:根据实验需求,可以选择已有的数据库或创建新的数据库。
如果选择创建新的数据库,需要执行相应的SQL语句来创建表结构。
3. 导入驱动程序:将下载好的驱动程序导入到项目中,并在代码中引入相应的包。
4. 连接数据库:使用DriverManager类中的getConnection()方法来建立与数据库之间的连接。
需要提供数据库URL、用户名和密码等连接信息。
5. 执行SQL语句:通过Connection对象创建Statement对象,并使用Statement对象执行SQL语句。
可以执行查询语句、更新语句等不同类型的SQL语句。
6. 处理结果集:如果执行查询语句,则会返回一个ResultSet对象,可以通过ResultSet对象获取查询结果集中的数据。
7. 关闭资源:在完成所有操作后,需要关闭ResultSet、Statement 和Connection等资源,释放内存。
三、实验收获1. 掌握JDBC的基本使用方法:通过本次实验,我了解了JDBC的基本使用方法,包括建立数据库连接、执行SQL语句和处理结果集等。
2. 熟悉常用的JDBC API:在实验过程中,我熟悉了一些常用的JDBC API,如DriverManager类、Connection接口、Statement接口和ResultSet接口等。
jdbc实验报告总结
jdbc实验报告总结一、实验介绍本次实验是基于JDBC(Java Database Connectivity)的学习与应用。
JDBC是Java编程语言中的一种用于执行SQL语句的API,它可以让Java程序员轻松地访问数据库。
在本次实验中,我们将学习JDBC的使用方法,在MySQL数据库中创建表格、插入数据、查询数据,并将这些操作封装成Java程序。
二、实验步骤1. 安装MySQL数据库以及JDBC驱动程序。
2. 创建数据库及表格我们需要先创建一个名为“stu”的数据库,在该数据库下创建一个名为“student”的表格。
该表格包含了学生的ID、姓名、性别、年龄和成绩五个字段,其中ID为主键。
CREATE DATABASE stu;USE stu;CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(20),sex VARCHAR(2),age INT,score FLOAT(4,1));3. 编写Java程序连接数据库我们需要在Java程序中连接MySQL数据库,使用JDBC提供的API对数据库进行操作。
首先需要加载JDBC的驱动程序,然后获取数据库连接,接着执行SQL语句,最后关闭数据库连接。
Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/stu";String user = "root";String password = "";Connection conn = DriverManager.getConnection(url, user, password);Statement stmt = conn.createStatement();String sql = "SELECT * FROM student";ResultSet rs = stmt.executeQuery(sql);while(rs.next()){int id = rs.getInt("id");String name = rs.getString("name");String sex = rs.getString("sex");int age = rs.getInt("age");float score = rs.getFloat("score");System.out.println("ID:"+id+"\t姓名:"+name+"\t性别:"+sex+"\t 年龄:"+age+"\t成绩:"+score);}rs.close();stmt.close();conn.close();4. 插入数据我们需要向student表格中插入一些数据。
简述使用jdbc访问数据库的主要流程。
简述使用jdbc访问数据库的主要流程。
随着互联网的不断发展,数据的处理和存储已经成为整个信息系统中最为重要的部分之一。
数据库的使用已经成为了基本的方法之一,而访问数据库则需要使用一些特殊的工具,其中最为常用的就是JDBC。
JDBC是Java数据库连接的缩写,它是一个标准的Java API,用于访问各种数据库。
被广泛应用于各种应用程序和信息系统中。
那么,在使用JDBC时,我们需要注意哪些流程呢?1. 导入JDBC驱动程序使用JDBC访问数据库时,需要首先导入相应的JDBC驱动程序。
这个驱动程序是由不同的数据库厂商提供的。
在对不同的数据库进行操作时,我们需要拥有对应的JDBC驱动程序。
2. 加载驱动程序使用Class.forName()方法来加载驱动程序,并对其进行初始化,以确保JDBC驱动程序被正确地安装和使用。
3. 建立连接使用DriverManager类来建立数据库的连接。
使用DriverManager.getConnection()方法来建立连接。
在此期间,我们可以通过指定连接的URL、用户名、密码以及其他的连接属性来确定每个连接的选项。
4. 通过连接创建Statement对象使用Connection对象来创建Statement对象,Statement是一个用于执行SQL语句的对象。
可以使用Statement对象来查询、插入、修改和删除数据。
5. 执行SQL语句通过执行executeQuery()方法来执行查询语句,语句的执行结果将会返回ResultSet对象。
另一方面,如果需要执行插入、修改或删除语句时,则需要使用executeUpdate()方法。
6. 处理结果集当执行查询语句时,将会返回一个ResultSet对象,该对象包含了查询结果的所有行数。
可以通过ResultSet的next()方法从结果集中获取数据。
获取数据后,可以将其进行处理,如将其输出、写入到文件等。
7. 关闭连接和释放资源在使用完JDBC之后,需要使用Connection对象的close()方法来关闭与数据库的连接,并释放与该连接相关的所有资源。
实验四 JDBC访问数据库
实验四JDBC访问数据库一、实验目的理解并掌握JDBC连接数据库的常用方法及其使用要点。
二、实验内容与步骤1、新建Web Project,把MySQL的驱动程序部署到“/WEB-INF/lib/”下;建立数据库。
在MySQL数据库中新建book数据库,创建bookinfo数据表和info数据表,并从数据库中加入几条记录,其表结构如下:2、新建index.jsp页面,实现从数据库中读取bookinfo表中的图书信息列表,并且每条记录后都有两个超链接:修改、删除;除此之外,主页内有一个超链接是用来添加图书信息用的;界面如下:3、新建addbook.html和addbook.jsp实现图书添加功能,添加成功重定向到index.jsp页面,的界面如下:4、新建editbook.jsp和update.jsp实现图书编辑功能,编辑成功重定向到index.jsp页面;5、新建delbook.jsp实现删除图书信息功能,删除成功重定向到index.jsp 页面;点击某条记录的删除超链接删除图书信息(第6条记录)界面以及删除后重定向到主页的界面如下:6、部署library ;7、开启Tomcat 服务器,在浏览器中先输入http://localhost:8080/ 看到欢迎界面后输入项目名和要访问的jsp 文件,如http://localhost:8080/library/index.jsp ,进行测试。
三、预备知识1、SQL 介绍——常见SQL 语句(说明返回结果)1) 创建数据库create database book2) 创建表bookinfo :create table bookinfo(列名1 类型 属性,列名2 类型 属性……)create table bookinfo(id int auto_increment not null primary key,bookname varchar(45) not null,author varchar(45),intro varchar(45);3) 向表中插入数据insert into 表(列名1,列名2……) values(值1,值2……)insert into bookinfo(bookname,author,intro) values ('漫步人生路','邓丽','很好看');4) 查询表中数据select 列 from 表 where 子句Select * from bookinfoSelect bookname from bookinfoSelect bookname,author,intro from bookinfo where id=65)删除表中数据 delete from 表 where子句Delete from bookeinfo where id=66)修改数据(更新表中数据) update 表 set 列名=新值 where子句Update bookinfo set author =’周杰伦’ where id=62、JDBC技术介绍1)编程步骤1——装载驱动程序方法:使用oracle 的驱动程序:Class.forName(“oracle.jdbc.driver.OracleDriver”);使用DB2 的驱动程序:Class.forName(“com.ibm.db2.jdbc.app.DB2Driver”);经过以上其中之一语句的声明后,驱动程序就会自动地加载。
(完整word版)JDBC实验报告详细
实验二JDBC编程一、目的通过Java数据库访问程序的编写、调试,使学生掌握JDBC编程的基本方法,熟悉常用的JDBC API,促进学生对概念的理解,培养动手能力。
二、基本要求学生需要按时达到指定实验室上机。
调试教学中使用的程序示例,并加以修改,增加程序的功能;实现数据库访问的优化。
完成实验后,需要按时提交实验报告。
三、实验内容(1)复习数据库SQL语句的编写。
(2)编写Java数据库(使用ODBC-JDBC驱动)公共模块。
(3)建立数据库应用模型,对数据库进行操作。
(4)调试程序,实现数据库的访问。
3.1数据源的确定可能是我不知道怎么配置,我的电脑是Windows7系统,和学校WindowsXP 系统的电脑配置方法不太一样,需要在C:\Windows\System32路径中,找到odbcad32.exe才能顺利修改数据源。
数据源设置好了以后就可以编辑代码并正常运行了。
下面以一张截图展示我的数据库3.2数据库信息查询.一3.2.1代码import java.sql.*; /*此处提供了SQL包,就可以放心使用SQL语句了*/ public class Students{public static void main(String args[]){ //look out this "S" of "string" !String driver="sun.jdbc.odbc.JdbcOdbcDriver";/*这里定义了driver做驱动器使用,为了美观事先定义,其实放在Class.forName 的括号里也是完全正确的*/String url="jdbc:odbc:students";/*此处指定了数据库,要注意两者名字一定要一样,否则找不到数据源*/ String query="select name,num,course,score from students"; //focus on the SQL language :select...from... ! /*需要执行的SQL语句*/Connection con=null; /*链接的定义*/Statement s=null; /*Statement对象的定义,两者赋值null 是为了在try块出现异常的时候不会被判断为逻辑错误,认为变量没有赋值*/try{ /*第一个try块实现了驱动器的启动*/Class.forName(driver); //look out this "class" should write in Huge one!/*注意此处的Class需要大写!*/}catch(ClassNotFoundException e){System.err.println("ClassNotFoundException:"+e.getMessage());}try{ /*第二个try块实现查询功能*/con=DriverManager.getConnection(url);/*刚刚定义的url在这里用上,此时程序才真正与数据库相连*/s=con.createStatement(); /*新建一个Statement*/ResultSet r=s.executeQuery(query); /*query在这里用上,执行SQL语句,也就是按照我们的要求实现我们想完成的功能*/System.out.println("name:" + " num:" + " course:" + " score:");while(r.next()){ /*逐行查询,只要有值就执行while里的语句*//*注意以下的每一项name,num等都要与数据库中的题目想吻合*/ String r1=r.getString("name");String r2=r.getString("num");String r3=r.getString("course");String r4=r.getString("score");/*注意这些名字一定要与数据库中的名字吻合!当然也可以用数字代替,但是我的数据库第一列是ID,所以要注意name是2,num是3,以此类推*/System.out.println(r1+ r2+ r3+ r4);}}catch(SQLException e){e.printStackTrace();}finally{try{s.close(); /*关闭Statement对象*/con.close(); /*关闭连接*/}catch(SQLException e){e.printStackTrace();}} System.out.println("i am lagent");/*这条语句是一开始用于查找错误使用的*/ }}3.2.2运行截图13.3数据库信息查询.二3.3.1代码import java.sql.*;import java.util.*;public class Statement1{ /* pay attention the name of class must not be the same with the public style ! The first time i named it "Statement" so that it can't run successfully *//*英文是编程当时留下的痕迹,当时讲类名写作Statement,与关键字相同,因此出错不能正常运行,我的总结是在拿不准的情况加一个数字就可以避免这样的尴尬情况*/public static void main(String arg[]){String driver="sun.jdbc.odbc.JdbcOdbcDriver";String url="jdbc:odbc:Students";String query="select * from students where score > 90"; /*整个程序与第一次编写的没有太大变动和突破,主要是对SQL功能的了解和语句利用的熟练,当时的想法是多写多体会,没考虑创新,在此也就不对语句做重复分析了*/ Connection con=null;Statement s=null;try{Class.forName(driver);}catch(ClassNotFoundException e){System.err.println("ClassNotFoundException:"+e.getMessage());}try{con=DriverManager.getConnection(url);s=con.createStatement();ResultSet r=s.executeQuery(query);System.out.println("name:"+" num:"+" course:"+" score");while(r.next()){String r1=r.getString("name");String r2=r.getString("num");String r3=r.getString("course");String r4=r.getString("score");System.out.println(r1+r2+r3+r4);}}catch(SQLException e){e.printStackTrace();}finally{try{s.close();con.close();}catch(SQLException e){e.printStackTrace();}}}}3.3.2运行截图23.4数据库信息查询.三3.4.1代码import java.sql.*;import java.util.*;import java.io.*;public class PreparedStatement1{public static void main(String arg[]){String driver="sun.jdbc.odbc.JdbcOdbcDriver";String url="jdbc:odbc:Students";String query="select * from students where score > ?";/*要实现按键盘输入的参数来选择查询数据库中的数据,因此需要用“?”*/ Connection con=null;PreparedStatement ps=null;ResultSet r=null;try{Class.forName(driver);}catch(ClassNotFoundException e){System.err.println("ClassNotFoundException:"+e.getMessage());}try{System.out.println("您想要查询分数的下限是:");con=DriverManager.getConnection(url);BufferedReader br=new BufferedReader(new InputStreamReader(System.in));/*带有缓冲区,可以实现从键盘的输入,从字符流中对文本*/try{int ms=Integer.parseInt(br.readLine().trim());/*将键盘输入的参数赋值给ms*///this told me to pay a try and catch , so i put them in a try kuaips=con.prepareStatement(query);/*注意在这里就实现预编译了,这里要注意prepare:小些打头,不是prepared*/ ps.setInt(1,ms); /*1是付给第一个“?”,这里就只有1个*/r=ps.executeQuery();/*因为已经预编译,这里不用在写query*/ }catch(Exception e){System.out.println(e);}System.out.println("name:"+" num:"+" course:"+" score");while(r.next()){String r1=r.getString("name");String r2=r.getString("num");String r3=r.getString("course");String r4=r.getString("score");System.out.println(r1+r2+r3+r4);}}catch(SQLException e){e.printStackTrace();}finally{try{ps.close();con.close();}catch(SQLException e){e.printStackTrace();}}}}3.4.2运行截图31.程序开始运行的程序界面:2.输入参数后的程序界面:3.5数据库信息的增添、删除、修改3.5.1代码import java.sql.*;public class ALL{Connection con=null;Statement s=null;PreparedStatement ps=null;String driver="sun.jdbc.odbc.JdbcOdbcDriver";String url="jdbc:odbc:students";String query="select name,num,course,score from students";public void init(){ /*用init()将定义的对象和变量都初始化*/ try{Class.forName(driver);}catch(ClassNotFoundException e){System.err.println("ClassNotFoundException:"+e.getMessage());}try{con=DriverManager.getConnection(url);s=con.createStatement();}catch(SQLException e){e.printStackTrace();}}public void output(){ /*先输出数据库的数据*/ try{ResultSet r=s.executeQuery(query);System.out.println("name:" + " num:" + " course:" + " score:");while(r.next()){String r1=r.getString("name");String r2=r.getString("num");String r3=r.getString("course");String r4=r.getString("score");System.out.println(r1+ r2+ r3+ r4);}}catch(SQLException e){e.printStackTrace();}}public void add(){try{System.out.println("增加语句之后:");s.executeUpdate("INSERT INTO students(name,num,course,score) V ALUES('三毛','20115407','JA V A高级应用',59)");/*执行更新方法,注意V ALUES后所赋的值对V ALUES前的数据库题目要一一对应,而且在所赋的值一定是用单引号包括*/}catch(Exception e){e.printStackTrace();}}public void change(){try{System.out.println("改变分数之后");ps=con.prepareStatement("UPDATE students SET score=0 WHERE name='三毛'");/*将name为三毛的一栏数据中的score改为0*/ps.executeUpdate();}catch(Exception e){e.printStackTrace();}}public void destroy(){try{s.close();con.close();ps.close();}catch(SQLException e){ e.printStackTrace();}}public static void main(String arg[]){ALL a=new ALL();try{a.init();a.output();a.add();a.output();a.change();a.output(); /*把需要实现的功能分开放在方法中,再在主函数中调用,逻辑清晰而且十分简洁漂亮*/}catch(Exception e){e.printStackTrace();}finally{a.destroy();}}}3.5.2运行截图4四、实验方法与实验步骤(1)根据课堂所学知识,写出JDBC编程的步骤,熟悉JDBC编程所用的类及接口,如Connection、Statement、ResultSet等等;(2)创建程序所要访问的数据库,打开控制面板,建立ODBC数据源,记录给数据库所起的数据源名称。
jdbc访问数据库实验总结
jdbc访问数据库实验总结
在进行jdbc访问数据库实验后,我对jdbc的使用有了更深刻的了解和认识。
以下是我的一些总结:
1. JDBC是一种用于Java编程语言的API,可帮助我们管理与数据库的连接和操作。
JDBC是Java SE的一部分,因此不需要单独下载或安装。
2. JDBC可以用于连接各种关系数据库,如MySQL、Oracle、SQL Server等,并提供了一些内置的驱动程序。
3. JDBC主要是通过sql语句进行对数据库的操作,需要对sql语句进行熟练的掌握。
例如:查询数据的语句为"SELECT * FROM tablename",插入数据的语句为"INSERT INTO tablename (field1,field2,...) VALUES(value1,value2,...)"。
4. 在使用JDBC时,必须导入相关的jar包,并且需要进行连接和断开连接等操作。
5. JDBC提供了PreparedStatement和Statement两种方式来执行sql语句。
其中PreparedStatement可以预编译sql语句,性能更高,也更安全,因为它可以对输入的参数进行安全过滤。
6. 在进行JDBC开发时,需要注意防止SQL注入攻击。
可以使用
PreparedStatement和参数化查询来防止SQL注入攻击。
总之,JDBC是Java应用程序连接关系数据库的通用方式,掌握JDBC的使用方法非常重要。
在进行实际应用开发时,需要能够熟练运用JDBC来操作数据库,避免一些常见的问题,如SQL注入攻击等。
使用JDBC连接数据库(一)
使⽤JDBC连接数据库(⼀)JDBC是由java编程语⾔编写的类及接⼝组成,同时它为程序开发⼈员提供了⼀组⽤于实现对数据库访问的JDBC API,并⽀持SQL语⾔。
利⽤JDBC可以将JAVA代码连接到oracle、DB2、SQLServer、MYSQL等数据库,从⽽实现对数据库中的数据操作的⽬的。
⼀、JDBC简介JDBC全称为:Java Data Base Connectivity (java数据库连接),可以为多种数据库提供填统⼀的访问。
JDBC是sun开发的⼀套数据库访问编程接⼝,是⼀种SQL级的API。
它是由java语⾔编写完成,所以具有很好的跨平台特性,使⽤JDBC编写的数据库应⽤程序可以在任何⽀持java的平台上运⾏,⽽不必在不同的平台上编写不同的应⽤程序。
JDBC的主要功能如下:(1)建⽴与数据库或者其他数据源的链接(2)向数据库发送SQL命令(3)处理数据库的返回结果⼆、JDBC中常⽤类和接⼝连接到数据库(Connection)、建⽴操作指令(Statement)、执⾏查询指令(executeQuery)、获得查询结果(ResultSet)等。
1、驱动程序管理类(DriverManager)DriverManager类是JDBC的管理类,作⽤于⽤户和驱动程序之间。
它跟踪在可⽤的驱动程序,并在数据库和相应驱动程序之间建⽴连接。
另外,DriverManager类也处理诸如驱动程序登陆时间限制及登录和跟踪消息的显⽰事务。
对于简单的应⽤程序,⼀般程序员需要在此类中直接使⽤唯⼀的⽅法时DriverManager.getConnection()。
该⽅法将建⽴与数据库的链接。
JDBC允许⽤户调⽤DriverManager的⽅法getDriver()、getDrivers()和registerDriver()及Driver的⽅法connect().2、声明类(Statement)Statement对象⽤于将SQL语句发送到数据库中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验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(三)综合应用。