网站首页 > 精选文章 正文
Scalers点评:这是成长会Java小组第4周学习笔记,Java小组是成长会内部专研Java的小组,目前仅面向成长会成员开放。
JDBCJava 数据库连接(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
JDBC也是Sun Microsystems的商标。JDBC是面向关系型数据库的。
JDBC 就是用于执行SQL语句的一类Java API,通过JDBC使得我们可以直接使用Java编程来对关系数据库进行操作。通过封装,可以使开发人员使用纯Java API完成SQL的执行。
可以理解一下,IO流类是把程序的一头连在文件上进行读写的操作。JDBC sql类是把程序连在数据库上做CRUD的操作。
(前导知识,学习了解数据库的基本操作和SQL语句。)
一、JDBC基本步骤:JDBC基本操作流程:连接数据库 → 发送数据请求,即传统的CRUD指令→返回操作结果集
(1)加载驱动;
//以mysql为例 Class.forName("com.mysql.jdbc.Driver");
(2)创建Connection对象;
Connection conn = DriverManager.getConnection(url, user, password);
(3)创建Statement对象;执行executeUpdate或executeQurey获得结果;
Statement st = conn.createStatement; st.executeUpdate(sql); // st.executeQuery(sql);
(4)先后关闭Statement对象和Connection对象。
//rs.close;------ st.close; conn.close;
JDBC常用API和方法说明
ResultSetMetaData 用于获取关于 ResultSet 对象中列的类型和属性信息的对象,反射封装时用得较多。
二、JDBC封装1、基本连接类的封装。(试着完善代码)
封装了对数据的基本操作,连接,更新(增加/修改/删除),查询数据库。
public class ConnectionDB { /** * 数据库驱动类名称 */ private static final String DRIVER = "com.mysql.jdbc.Driver"; /** * 连接字符串 */ private static final String URL = "jdbc:mysql://localhost:3306/mydb"; /** * 用户名 */ private static final String USERNAME = "root"; /** * 密码 */ private static final String USERPASSWORD = "root"; /** * 创建数据库连接对象 */ private Connection connnection = ; /** * 创建PreparedStatement对象 */ private PreparedStatement preparedStatement = ; /** * 创建CallableStatement对象 */ private CallableStatement callableStatement = ; /** * 创建结果集对象 */ private ResultSet resultSet = ; static { try { // 加载数据库驱动程序 Class.forName(DRIVER); } catch (ClassNotFoundException e) { System.out.println("load driver failed!"); System.out.println(e.getMessage); } } /** * 建立数据库连接 * @return 数据库连接 */ public Connection getConnection { try { // 获取连接 connnection = DriverManager.getConnection(URL, USERNAME, USERPASSWORD); } catch (SQLException e) { System.out.println(e.getMessage); } return connnection; } /** * insert update delete SQL语句的执行的统一方法 * @param sql SQL语句 * @param params 参数数组,若没有参数则为 * @return 受影响的行数 */ public int executeUpdate(String sql, Object[] params) { // 受影响的行数 int affectedLine = 0; // to do ... return affectedLine; } /** * SQL 查询将查询结果直接放入ResultSet中 * @param sql SQL语句 * @param params 参数数组,若没有参数则为 * @return 结果集 */ private ResultSet executeQueryRS(String sql, Object[] params) { // to do... return resultSet; } /** * SQL 查询将查询结果:一行一列 * @param sql SQL语句 * @param params 参数数组,若没有参数则为 * @return 结果集 */ public Object executeQuerySingle(String sql, Object[] params) { Object object = ; // to do... return object; } /** * 获取结果集,并将结果放在List中 * @param sql SQL语句 * @return List 结果集 */ public List<Object> excuteQuery(String sql, Object[] params) { // 执行SQL获得结果集 ResultSet rs = executeQueryRS(sql, params); // to do... return list; } /** * 存储过程带有一个输出参数的方法 * @param sql 存储过程语句 * @param params 参数数组 * @param outParamPos 输出参数位置 * @param SqlType 输出参数类型 * @return 输出参数的值 */ public Object excuteQuery(String sql, Object[] params,int outParamPos, int SqlType) { Object object = ; return object; } /** * 关闭所有资源 */ private void closeAll { // 关闭结果集对象 if (resultSet != ) { try { resultSet.close; } catch (SQLException e) { System.out.println(e.getMessage); } } // 关闭PreparedStatement对象 if (preparedStatement != ) { try { preparedStatement.close; } catch (SQLException e) { System.out.println(e.getMessage); } } // 关闭CallableStatement 对象 if (callableStatement != ) { try { callableStatement.close; } catch (SQLException e) { System.out.println(e.getMessage); } } // 关闭Connection 对象 if (connnection != ) { try { connnection.close; } catch (SQLException e) { System.out.println(e.getMessage); } } } }
ScalersTalkID:scalerstalk
本微信公众号作者Scalers,游走在口译世界的IT从业者。微信公众号ScalersTalk,网站ScalersTalk.com,口译100小时训练计划群C 456036104
成长会是由Scalers发起的面向成长、实践行动,且凝聚了来自全球各地各行各业从业者的社群。有意入会者请和Scalers直接联系,我和其他会员会和你直接交流关于成长行动等各方面的经验教训。2016年成长会持续招募中,参见做能说会写的持续行动者:ScalersTalk成长会2016年会员计划介绍(2016.2更新)
猜你喜欢
- 2025-09-06 优雅映射application.yml到Java Bean的实战技巧
- 2025-09-06 ExcelVBA 操作 SQLite3 数据库实例分享
- 2025-09-06 010:通过 MCP PostgreSQL 安全访问数据
- 2025-09-06 数据库工程师必学的 100 个数据库命令(全栈实操版)
- 2025-09-06 好用的开源大语言模型数据库操作工具-ToolFront
- 2025-09-06 从零开始:深入剖析 Spring Boot3 中配置文件的加载顺序
- 2025-09-06 深入理解Rust中的Arc:多线程共享数据的"聪明指针"
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)