代码重构DBUtils工具类
1)连接管理起来(static方法)
2)资源关闭
how:
1.注册驱动 三种方式(a. DriverManager.registerDriver(new com.mysql.jdbc.Driver())
b. Class.ForName("com.mysql.jdbc.Driver") 常用这一种
c. java -Djdbc.drivers=com.mysql.jdbc.Driver.FirstJDBC)
三种方式的区别
Class.ForName("..");是通过字节码文件 .class (在硬盘)在JVM上创建类对象
DriverManager.registerDriver(new com.mysql.jdbc.Driver())的对象是 new 出来的
2.获取数据库连接
Connection conn = DriverManager.getConnection(url, username, password);
3.创建Statement对象
Statement stmt = conn.createStatement();
预编译语句 PreparedStatement pstmt = conn.createPreparedStatement(); 优点 提高效率?sql语句可以重复利用?结构相同 可以批量地处理数据,使用 ?作占位符,在执行sql语句之前必须输入参数
pstmt.setString(1,"..");
.....
pstmt.executeUpdate();
pstmt.clearParameter();
CallableStatement
调用存储过程(部署在数据库)真正的批处理
procedure
begin
....
end
缺点: 可移植性比较差
4.执行(发送)sql语句
select : ResultSet rs = stmt.executeQuerry(sql);
ResultSet rs = pstmt.execute();
update/insert into/ delete : 返回一个整数 (smst.executeUpdate(sql))
5.处理结果集
select : while(rs.next()){....}
6.关闭JDBC资源
逆序关闭 rs stmt/pstmt conn
处理结果集
select : ResultSet rs = stmt.executeQuerry(sql) 一个Statement对象在某一时刻只能有一个ResultSet对象,意味着必须处理上一次查询结果后才能做下一个查询
update/insert into/ delete : int n = stmt.executeUpdate(sql) 如果执行的是DDL,则返回0
ResultSet接口
重载的两个方法:
1)String getString(int columnIndex)
2)String getString(String columnIndex)
在不知道sql语句类型的情况下 boolean execute(String sql) 返回布尔值
如果第一结果是ResultSet对象,返回true
如果是更新计数或不存在任何结果,返回false
CallableStatement
作用:执行存储过程 (效率高,可移植性差)
设置OUT和IN参数: in:参数从Java程序传到数据库的存储过程
out:参数从数据库传到JAVA程序的存储过程
存储过程
不同数据库管理系统有各自定义的存储过程的方式
--mysql
delimiter //
drop procedure procedure_name;// --删除已有的存储过程
create procedure procedure_name(in p_字段, ...)
begin
insert into table_name(字段, ...)values(p_字段, ...)
commit;
select count(*) into total from table_name where 字段 = p_字段 and ... and ...
end;//
delimiter;
java程序调用存储过程
java数据类型和DBMS数据类型相互对应
3NF
List队列和泛型的结合使用
List<类型> list = new ArrayList<类型>();
把数据添加到List队列中 list.add(数组名);
构造器(无参和有参)的作用?
初始化
相关推荐
#### 三、JDBC安装步骤 ##### 1. 获取JDBC驱动 - **下载驱动**:根据目标数据库的不同,需要下载相应的JDBC驱动。例如,对于Microsoft SQL Server 2000,需要下载Microsoft提供的JDBC驱动包。 - **添加到项目**:将...
三、Spring JDBC的使用流程 1. **配置JDBC数据源**:通常使用`BasicDataSource`或应用服务器提供的数据源。 2. **创建JdbcTemplate实例**:通过数据源创建`JdbcTemplate`对象。 3. **编写SQL语句**:可以是静态SQL...
在开发过程中,了解JDBC连接池的概念也很重要,例如使用C3P0、DBCP或HikariCP等第三方库,它们能有效地管理数据库连接,提高应用性能并降低资源消耗。 总之,Oracle JDBC驱动是Java开发人员与Oracle数据库交互的...
为了连接SQL Server,我们需要下载对应的JDBC驱动,对于SQL Server 2008,通常会提供msbase.jar、mssqlserver.jar和msutil.jar这三个文件。将这些文件放入JSP项目中的WEB-INF/lib目录以及Tomcat服务器的lib目录下,...
小白第一次发博客哈哈,记录一下这三个晚上来我的悲惨经历以及我成功解决bug后的极度开心。 第一个晚上,有点小烦躁,但感觉还可以,有点小bug明天解决吧。 第二个晚上,不急,就一个小bug,20分钟调好吧。。。。。...
SSM框架是Java Web开发中常用的一种整合框架,它是由Spring、Spring MVC和MyBatis三个开源框架组合而成。这个“boot-crm.rar”压缩包文件中的内容显然是一款图书管理系统,其核心是利用SSM框架进行开发。 1. **...
"花2w学java的第七天作业答案"这个主题表明,这是某项价值不菲的Java培训课程的一部分,学员们在完成第七天的作业后,可能会寻找这些答案来检查自己的理解或解决问题。现在,我们将深入探讨Java编程的一些核心知识点...
总之,BBS论坛系统的开发涉及Web服务器、数据库操作以及资源管理等多个方面,利用JSP、B/W/S模式、JDBC和连接池等技术,可以构建高效、稳定、易于维护的论坛平台。在实际项目中,还需要考虑安全性、用户体验、性能...
1. **创建数据库连接池**:在“Services Configurations”下的“JDBC”选择“Connection Pools”,点击“Create”创建一个新的连接池。根据实际使用的数据库类型和驱动选择相应的配置,填写连接池的名称、连接信息等...
该题目要求利用JSP、Servlet和JDBC,结合SQLServer 2000的Northwind数据库,设计一个基于员工ID查询定单的系统。功能包括: 1. 设计一个包含输入文本框和提交按钮的查询界面(index.jsp),用于输入员工ID。 2. 提交...
#### 三、连接Oracle数据库 在Java中,通常使用`DriverManager`类来建立与数据库的连接。以下是一个简单的示例: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql....
它集成了大量常用的第三方库配置,如数据源、JPA、定时任务、WebSocket等,使得开发者可以快速构建稳定、生产级别的应用。 在"SpringBoot学习的相关工程并辅以博文讲解"中,我们主要会接触到以下几个关键知识点: ...
例如,我们可以创建一个名为“JDBC USER”的线程组,并配置合适的参数。 ##### 3.2 用户自定义变量 在“线程组”下创建“User Defined Variables”。通过自定义变量可以生成动态 SQL 语句,避免数据库对相同 SQL ...
【标题】"W21COMP1008S3W4"可能是一个课程代码或项目代号,暗示了这与计算机科学或者信息技术相关的学习单元,可能是某个学期的第三周到第四周的内容。不过,由于信息有限,我们无法进一步确定其具体含义。 【描述...
Apache DBCP2是Apache Commons的一个子项目,提供了基于Jakarta POI的数据库连接池。在Spring中配置DBCP2: ```xml <groupId>org.apache.commons <artifactId>commons-dbcp2 版本号 ...
【描述】提到“内含实验七、八、九部分实现代码,实操可运行”,这意味着压缩包内包含了三个不同阶段的编程实验的源代码,这些实验可能涉及了Swing的不同组件和功能,比如窗口创建、菜单栏设计、按钮、文本框等元素...
【标题】"Aakash145-W21G6_FeedTheBelly"是一个免费的食品服务应用程序,旨在为用户提供方便、快捷的餐饮服务。它可能是由开发者Aakash145设计并发布的,W21G6可能代表项目的一个特定版本或迭代。这个应用程序的核心...
1. 私有属性(Private Fields):每个数据库表字段对应一个私有属性,类型与数据库中的数据类型匹配。 2. Getter和Setter方法:用于访问和修改属性值。 3. 构造函数:默认构造函数和带参数的构造函数,便于实例化...
4. **数据库连接**:Java通过JDBC(Java Database Connectivity)与各种数据库进行交互,处理数据存储和检索。 5. **RESTful API**:如果项目涉及前后端分离,可能会用到REST(Representational State Transfer)...