企业项目管理、ORK、研发管理与敏捷开发工具平台

网站首页 > 精选文章 正文

[811]ScalersTalk成长会Java小组第4周学习笔记

wudianyun 2025-09-06 14:14:42 精选文章 6 ℃

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更新)

Tags:

最近发表
标签列表