JDBC 增删改的操作.docx
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
JDBC 增删改的操作 一、项目使用技术 封装数据库连接、关闭方法和封装数据库增、删、改、查方法,实现Java项目连接数据库,实现基础的JDBC操作。 二、使用示例 1、项目准备 1)创建数据库 创建jdbc_test数据库,在此数据库中创建student表,设置id属性、name属性、age属性,分别存放学生id信息、名称和年龄,id属性设置为int类型,为自增长,name属性设置为varhcar(25),age属性设置为int类型。 2)导入jar包 将druid-1.1.10.jar和mysql-connector-java-5.1.48-bin.jar导入项目中 在Java开发中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的一套标准API。本篇将详细讲解如何使用JDBC进行增删改(CRUD)操作,以一个具体的示例为背景,涉及数据库的创建、jar包导入、配置文件设置以及JDBC连接工具类的编写。 我们需要创建一个名为`jdbc_test`的数据库,并在其中建立一个名为`student`的表。表结构如下: - `id`:整型(int),作为主键且自增长。 - `name`:变长字符串(varchar(25)),存储学生的姓名。 - `age`:整型(int),存储学生的年龄。 创建数据库和表后,我们需要引入相应的jar包,这里提到了`druid-1.1.10.jar`和`mysql-connector-java-5.1.48-bin.jar`。`druid`是一个优秀的数据库连接池,而`mysql-connector-java`则是MySQL的JDBC驱动,它们将帮助我们的Java项目连接到MySQL数据库。 接下来是配置文件`jdbc.properties`的设置,包含以下关键信息: - `driverClassName`:指定JDBC驱动类,这里是`com.mysql.jdbc.Driver`。 - `url`:数据库连接URL,如`jdbc:mysql://localhost:3306/jdbc_test`,指向本地的`jdbc_test`数据库。 - `username`:数据库用户名,例如`root`。 - `password`:数据库密码,同样为`root`。 - `maxActive`:最大活跃连接数,这里设为20。 - `maxWait`:最大等待时间,这里是10000毫秒。 然后,我们编写一个名为`JDBCUtils`的工具类,用于数据库的连接和关闭。这个类包括以下几个核心部分: 1. 静态的`DataSource`对象,使用懒汉式初始化,保证线程安全。 2. 私有构造器,防止外部实例化。 3. 使用`Properties`加载配置文件,并通过`DruidDataSourceFactory.createDataSource()`创建`DataSource`。 4. 公共的`getConnection()`方法,返回数据库连接。 5. 封装了关闭连接的`close(Connection)`方法。 6. 针对增删改操作,提供了`close(Statement, Connection)`和`close(ResultSet, Statement, Connection)`,以确保资源的正确释放。 在实际的增删改操作中,我们通常会按照以下步骤进行: 1. 获取数据库连接。 2. 创建`Statement`或`PreparedStatement`对象,用于执行SQL语句。 3. 执行SQL语句(插入、更新或删除数据)。 4. 处理结果集(如果有的话)。 5. 关闭`ResultSet`、`Statement`和`Connection`。 例如,新增一条学生记录的代码可能如下所示: ```java String sql = "INSERT INTO student(name, age) VALUES (?, ?)"; try (Connection conn = JDBCUtils.getConnection(); PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setString(1, "张三"); pstmt.setInt(2, 20); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } ``` 在这个例子中,我们使用`PreparedStatement`来防止SQL注入,并设置参数值。注意,这里使用了try-with-resources语句,它会在操作完成后自动关闭资源。 对于删除和更新操作,逻辑大致相同,只需更改SQL语句并设置合适的参数即可。例如,删除id为1的学生: ```java String sql = "DELETE FROM student WHERE id = ?"; try (Connection conn = JDBCUtils.getConnection(); PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setInt(1, 1); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } ``` 更新操作则需要指定更新的字段和新的值,如更新id为1的学生年龄为21: ```java String sql = "UPDATE student SET age = ? WHERE id = ?"; try (Connection conn = JDBCUtils.getConnection(); PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setInt(1, 21); pstmt.setInt(2, 1); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } ``` 以上就是使用JDBC进行数据库增删改操作的基本流程。在实际开发中,我们通常会进一步封装这些操作,例如创建DAO(Data Access Object)层,使得代码更加模块化和易于维护。同时,为了提高性能和减少资源消耗,可以考虑使用存储过程或者ORM框架(如Hibernate、MyBatis等)。
剩余16页未读,继续阅读
- 粉丝: 254
- 资源: 1940
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 没用333333333333333333333333333333
- 基于Vue和SpringBoot的企业员工管理系统2.0版本设计源码
- 【C++初级程序设计·配套源码】第2期-基本数据类型
- 基于Java和Vue的kopsoftKANBAN车间电子看板设计源码
- 影驰战将PS3111 东芝芯片TT18G23AIN开卡成功分享,图片里面画线的选项很重要
- 【C++初级程序设计·配套源码】第1期-语法基础
- 基于JavaScript、CSS、HTML的简易DOM版飞机游戏设计源码
- 基于Java开发的日程管理FlexTime应用设计源码
- SM2258XT-BGA144-4BGA180-6L-R1019 三星KLUCG4J1CB B0B1颗粒开盘工具 , EC, 3A, 94, 43, A4, CA 七彩虹SL300这个固件有用
- GJB 5236-2004 军用软件质量度量