2022年jdbc实例教程 .pdf
《2022年jdbc实例教程 .pdf》由会员分享,可在线阅读,更多相关《2022年jdbc实例教程 .pdf(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 JDBC 代码手册整理者:Eric 2008-1-13 版本号:V080113 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 28 页 -2 JDBC 使用手册 .1 JDBC 详细介绍 .3 JDBC 类地图.3 插入数据.3 修改数据.4 删除数据.5 查询数据.6 查询统计函数.8 带参数的SQL 查询 .9 存储过程的调用.11 JDBC 元数据.12 元数据 Meta Data.12 数据库的元数据.12 结果集的元数据.14 JDBC 事务 .15 事务的基本知识.15 事务实例.15 滚动 ResultSet 更新数据 .17 ResultSet中的 Type
2、 取值.17 修改数据.17 删除数据.19 插入数据.20 SQL 批处理.22 批处理 .22 事务和批处理的区别.23 Blob 与 Clob 字段的处理 .24 把数据写入数据库.24 把数据从数据库读出来.25 数据库连接池(JNDI).27 第一步:为Tomcat 配置连接池.27 第二步:在应用中配置资源引用.28 第三步:在Servlet 的 init 方法中通过JNDI 接口来获取DataSource.28 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 28 页 -3 1 JDBC 详细介绍1.1 JDBC 类地图?DriverManager:通过驱动,建立与
3、数据库间的连接。?Connection:代表着与数据库间的连接。?Statement:代表着要执行的SQL 语句。?ResultSet:代表着数据库查询到的结果集。1.2 插入数据import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;publicclass Run_MySql /*paramargs*/publicstaticvoid main(String args)Connection conn=null;Statement stmt=null;try /动态导入数据库的驱动Cl
4、ass.forName(com.mysql.jdbc.Driver);DriverManagerConnectionStatem entResultSet名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 28 页 -4/获取数据库链接conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/jdbc_teaching,root,);/创造 SQL语句String sql=INSERT INTO user_list(user_name,user_password)VALUES(Eric,123);/执行 SQL语句stmt
5、=conn.createStatement();stmt.executeUpdate(sql);System.out.println(OK!);catch(Exception e)e.printStackTrace();finally /关闭 Statementtry stmt.close();catch(Exception e)/关闭 Connectiontry conn.close();catch(Exception e)1.3 修改数据import java.sql.Connection;import java.sql.DriverManager;import java.sql.Stat
6、ement;publicclass RunUpdate publicstaticvoid main(String args)Connection conn=null;Statement stmt=null;try /动态导入数据库的驱动Class.forName(com.mysql.jdbc.Driver);名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 28 页 -5/获取数据库链接conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/jdbc_teaching,root,);/创造 SQL语句String sq
7、l=UPDATE jdbc_teaching.user_list SET user_password=456 WHERE user_name=Eric;/执行 SQL语句stmt=conn.createStatement();stmt.executeUpdate(sql);System.out.println(OK!);catch(Exception e)e.printStackTrace();finally /关闭 Statementtry stmt.close();catch(Exception e)/关闭 Connectiontry conn.close();catch(Exceptio
8、n e)1.4 删除数据import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;publicclass RunDelete publicstaticvoid main(String args)Connection conn=null;Statement stmt=null;try /动态导入数据库的驱动名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 28 页 -6 Class.forName(com.mysql.jdbc.Driver);/获取数据库链接conn=Driv
9、erManager.getConnection(jdbc:mysql:/localhost:3306/jdbc_teaching,root,);/创造 SQL语句String sql=DELETE FROM jdbc_teaching.user_list WHERE user_name=Eric;/执行 SQL语句stmt=conn.createStatement();stmt.executeUpdate(sql);System.out.println(OK!);catch(Exception e)e.printStackTrace();finally /关闭 Statementtry stm
10、t.close();catch(Exception e)/关闭 Connectiontry conn.close();catch(Exception e)1.5 查询数据import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;publicclass RunQuery publicstaticvoid main(String args)Connection conn=null;Statement stmt=null;名师资料总结-精品资
11、料欢迎下载-名师精心整理-第 6 页,共 28 页 -7 ResultSet rs=null;try /动态导入数据库的驱动(注册驱动)Class.forName(com.mysql.jdbc.Driver);/获取数据库链接(取得连接)conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/jdbc_teaching,root,);/创造 SQL语句String sql=SELECT*FROM user_list;/执行 SQL语句(创建 statement)stmt=conn.createStatement();/(执行查询)
12、rs=stmt.executeQuery(sql);/处理查询while(true)/移动到下一条数据boolean b=rs.next();/检查下一条数据是否存在if(false=b)/如果下一条数据不存在,就不用再遍历了break;/取得用户名()String userName=rs.getString(user_name);/取得密码(字段的编号从1开始,密码排第二位)String userPassword=rs.getString(2);System.out.println(userName+:+userPassword);catch(Exception e)e.printStack
13、Trace();finally /关闭 ResultSettry rs.close();catch(Exception e)/关闭 Statementtry 名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 28 页 -8 stmt.close();catch(Exception e)/关闭 Connectiontry conn.close();catch(Exception e)1.6 查询统计函数import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import ja
14、va.sql.Statement;publicclass RunQueryCount publicstaticvoid main(String args)Connection conn=null;Statement stmt=null;ResultSet rs=null;try /动态导入数据库的驱动Class.forName(com.mysql.jdbc.Driver);/获取数据库链接conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/jdbc_teaching,root,);/创造 SQL语句String sql=SEL
15、ECT COUNT(*)FROM user_list;/执行 SQL语句stmt=conn.createStatement();rs=stmt.executeQuery(sql);/移动到下一条数据rs.next();名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 28 页 -9/取得结果int count=rs.getInt(1);int count2=rs.getInt(COUNT(*);System.out.println(count+:+count2);catch(Exception e)e.printStackTrace();finally /关闭 ResultSett
16、ry rs.close();catch(Exception e)/关闭 Statementtry stmt.close();catch(Exception e)/关闭 Connectiontry conn.close();catch(Exception e)1.7 带参数的SQL 查询import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;publicclass RunQuery publicstaticvoid ma
17、in(String args)Connection conn=null;/注意 stmt的类型PreparedStatement stmt=null;ResultSet rs=null;try 名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 28 页 -10/动态导入数据库的驱动Class.forName(com.mysql.jdbc.Driver);/获取数据库链接conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/jdbc_teaching,root,);/创造 SQL语句String sql=SELECT*
18、FROM user_list WHERE user_name=?;/创造 SQL语句stmt=conn.prepareStatement(sql);/参数赋值(参数的顺序是从1开始的)stmt.setString(1,Eric);/执行 SQLrs=stmt.executeQuery(sql);while(true)/移动到下一条数据boolean b=rs.next();/检查下一条数据是否存在if(false=b)/如果下一条数据不存在,就不用再遍历了break;/取得用户名String userName=rs.getString(user_name);/取得密码(字段的编号从1开始,密码
19、排第二位)String userPassword=rs.getString(2);System.out.println(userName+:+userPassword);catch(Exception e)e.printStackTrace();finally /关闭 ResultSettry rs.close();catch(Exception e)/关闭 Statementtry 名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 28 页 -11 stmt.close();catch(Exception e)/关闭 Connectiontry conn.close();cat
20、ch(Exception e)1.8 存储过程的调用?MySql 中的存储过程:CREA TE DEFINER=rootlocalhost PROCEDURE test_procedure()BEGIN INSERT INTO jdbc_teaching.user_list(user_name,user_password)VALUES(Janet,678);END import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;publicclass CallProcedure /*param
21、args*/publicstaticvoid main(String args)Connection conn=null;Statement stmt=null;try /动态导入数据库的驱动Class.forName(com.mysql.jdbc.Driver);/获取数据库链接conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/jdbc_teaching,root,);名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 28 页 -12/创造调用存储过程的SQLString sql=CALL test_proc
22、edure();/执行调用存储过程的SQL语句stmt=conn.prepareCall(sql);stmt.execute(sql);System.out.println(OK!);catch(Exception e)e.printStackTrace();finally /关闭 Statementtry stmt.close();catch(Exception e)/关闭 Connectiontry conn.close();catch(Exception e)2 JDBC 元数据2.1 元数据 Meta Data?什么是元数据?本身固有的特性。?元数据分类数据库的元数据:如数据库的名称,
23、版本等。查询结果的元数据:查询结果集中字段数量,某字段的名称等。2.2 数据库的元数据import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.DriverManager;import java.sql.Statement;名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 28 页 -13 publicclass RunDatabaseMetaData /*paramargs*/publicstaticvoid main(String args)Connection conn=null;
24、Statement stmt=null;try /动态导入数据库的驱动Class.forName(com.mysql.jdbc.Driver);/获取数据库链接conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/jdbc_teaching,root,);/获取数据库元数据DatabaseMetaData dmd=conn.getMetaData();String productName=dmd.getDatabaseProductName();String productVersion=dmd.getDatabaseProdu
25、ctVersion();String driverName=dmd.getDriverName();String driverVersion=dmd.getDriverVersion();System.out.println(productName+-+productVersion+n+driverName+-+driverVersion);catch(Exception e)e.printStackTrace();finally /关闭 Statementtry stmt.close();catch(Exception e)/关闭 Connectiontry conn.close();cat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年jdbc实例教程 2022 jdbc 实例教程
限制150内