JDBC 详解.docx
- 文档编号:2197873
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:87
- 大小:237.70KB
JDBC 详解.docx
《JDBC 详解.docx》由会员分享,可在线阅读,更多相关《JDBC 详解.docx(87页珍藏版)》请在冰豆网上搜索。
JDBC详解
JDBC详解
1.摘要
2.JDBC的使用步骤
1.注册驱动只做一次
2.建立连接Connection
3.创建执行SQL的语句Statement
4.处理执行结果ResultSet
5.释放资源
3.使用JDBC来实现CRUD的操作
4.Statement中的sql依赖注入的问题
5.JDBC中特殊数据类型的操作问题
1.第一个是日期问题
2.第二个问题就是大文本数据的问题
6.JDBC中事务的概念
7.JDBC中调用存储过程
8.JDBC来实现批处理功能
9.JDBC中的滚动结果集和分页技术
10.JDBC中的可更新以及对更新敏感的结果集操作
11.元数据的相关知识
1.数据库的元数据信息
2.查询参数的元数据信息
3.结果集中元数据信息
12.JDBC中的数据源
13.JDBC中CRUD的模板模式
14.Spring框架中的JdbcTemplate
1.加强版的JdbcTemplate
1.NamedParameterJdbcTemplate
2.SimpleJdbcTemplate
今天我们来说一下关于JDBC的相关知识,关于JDBC我想大家都不陌生了,而且我记得早就开始使用它了,记得那是大二的时候做课程设计,但是那时候是为了完成任务,所以遇到问题就google,那时候也没有时间去整理,所以这次就来详细说一下关于JDBC的知识
摘要:
JDBC(JavaDataBaseConnectivity,java数据库连接),由一些接口和类构成的API。
J2SE的一部分,由java.sql,javax.sql包组成。
应用程序、JDBCAPI、数据库驱动及数据库之间的关系
JDBC的使用步骤
1.注册驱动(只做一次)
方式一:
Class.forName(“com.MySQL.jdbc.Driver”);
推荐这种方式,不会对具体的驱动类产生依赖。
方式二:
DriverManager.registerDriver(com.mysql.jdbc.Driver);
会造成DriverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖。
方式三:
System.setProperty(“jdbc.drivers”,“driver1:
driver2”);
虽然不会对具体的驱动类产生依赖;但注册不太方便,所以很少使用。
驱动类型(四种类型)
2.建立连接(Connection)
[java] viewplain copy
1.Connection conn = DriverManager.getConnection(url, user, password);
url格式:
JDBC:
子协议:
子名称//主机名:
端口/数据库名?
属性名=属性值&…
User,password可以用“属性名=属性值”方式告诉数据库;
其他参数如:
useUnicode=true&characterEncoding=GBK。
3.创建执行SQL的语句(Statement)
[java] viewplain copy
1.Statement
2.Statement st = conn.createStatement();
3.st.executeQuery(sql);
4.PreparedStatement
5.String sql = “select * from table_name where col_name=?
”;
6.PreparedStatement ps = conn.preparedStatement(sql);
7.ps.setString(1, “col_value”);
8.ps.executeQuery();
4.处理执行结果(ResultSet)
[java] viewplain copy
1.ResultSet rs = statement.executeQuery(sql);
2.While(rs.next()){
3.rs.getString(“col_name”);
4.rs.getInt(“col_name”);
5.//…
6.}
5.释放资源
释放ResultSet,Statement,Connection.
数据库连接(Connection)是非常稀有的资源,用完后必须马上释放,如果Connection不能及时正确的关闭将导致系统宕机。
Connection的使用原则是尽量晚创建,尽量早的释放。
下面来看一下完整的Demo:
工具类:
JdbcUtils
[java] viewplain copy
1.package com.weijia.firstdemo;
2.
3.import java.sql.Connection;
4.import java.sql.DriverManager;
5.import java.sql.ResultSet;
6.import java.sql.SQLException;
7.import java.sql.Statement;
8.
9.import javax.sql.DataSource;
10.
11.public class JdbcUtils {
12.
13. private static String user = "root";
14. private static String password = "123456";
15. private static String dbName = "test";
16. private static String url = "jdbc:
mysql:
//localhost:
3306/"+dbName+"?
user="+user+"&password="+password+"&useUnicode=true&characterEncoding=gb2312";
17.
18. private static DataSource dataSource = null;
19.
20. /**
21. * 加载驱动
22. */
23. static{
24. try{
25. Class.forName("com.mysql.jdbc.Driver");
26. }catch(Exception e){
27. System.out.println("Exception:
"+e.getMessage()+"");
28. throw new ExceptionInInitializerError(e);
29. }
30. }
31.
32. private JdbcUtils(){
33. }
34.
35. /**
36. * 获取连接
37. * @return
38. * @throws SQLException
39. */
40. public static Connection getConnection() throws SQLException{
41. return DriverManager.getConnection(url);
42. }
43.
44. public static DataSource getDataSource(){
45. return dataSource;
46. }
47.
48. /**
49. * 释放资源
50. * @param rs
51. * @param st
52. * @param conn
53. */
54. public static void free(ResultSet rs,Statement st,Connection conn){
55. try{
56. if(rs !
= null){
57. rs.close();
58. }
59. }catch(SQLException e){
60. e.printStackTrace();
61. }finally{
62. try{
63. if(st !
= null){
64. st.close();
65. }
66. }catch(SQLException e){
67. e.printStackTrace();
68. }finally{
69. try{
70. if(conn !
= null){
71. conn.close();
72. }
73. }catch(SQLException e){
74. e.printStackTrace();
75. }
76. }
77. }
78.
79. }
80.
81.}
测试类:
[java] viewplain copy
1.package com.weijia.firstdemo;
2.
3.import java.sql.Connection;
4.import java.sql.DriverManager;
5.import java.sql.ResultSet;
6.import java.sql.SQLException;
7.import java.sql.Statement;
8.
9.public class Demo {
10.
11. public static void main(String[] args) throws Exception{
12. //测试代码:
13. test();
14. //标准规范代码:
15.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JDBC 详解