前言:
本文指在介绍Spring框架中的JdbcTemplate类的使用方法,涉及基本的Spring反转控制的使用方法和JDBC的基本概念。目标是使读者能够对JdbcTemplate快速地掌握和使用。
原创不易,转载请注明出处:Spring JdbcTemplate框架搭建及其增删改查使用指南
代码下载地址:http://www.zuidaima.com/share/1724429678644224.htm
准备:
1. Spring的基本概念
Spring框架核心的思想就是建立一个Java对象的大工厂,用户只要给工厂一个指令,工厂就能将用户需要的对象根据配置文件组装好返还给用户。用户需要做的许多工作则可以写成简单的配置文件。
2. 丑陋的JDBC代码
01 |
Connection con = null ;
|
02 |
PreparedStatement pStmt = null ;
|
03 |
ResultSet rs = null ;
|
04 |
try {
|
05 |
con = ods.getConnection();
|
06 |
String sql = "select * from admin" ;
|
07 |
pStmt = con.prepareStatement(sql);
|
08 |
rs = pStmt.executeQuery();
|
09 |
while (rs.next()) {
|
10 |
}
|
11 |
} catch (Exception ex) {
|
12 |
try {
|
13 |
con.rollback();
|
14 |
} catch (SQLException sqlex) {
|
15 |
sqlex.printStackTrace(System.out);
|
16 |
}
|
17 |
ex.printStackTrace();
|
18 |
19 |
} finally {
|
20 |
try {
|
21 |
rs.close();
|
22 |
pStmt.close();
|
23 |
con.close();
|
24 |
} catch (Exception e) {
|
25 |
e.printStackTrace();
|
26 |
}
|
27 |
} |
以上是常见的JDBC代码,简单的select语句也需要冗长的出错处理,并且每个函数都不断地重复同样的代码。
3. JdbcTemplate的作用
JdbcTemplate正是为了减少上述繁琐的代码而设计出来的。它是对JDBC的一种封装,抽象我们常用的一些方法。Simple and Stupid就是它的目标。下面是完成了刚才JDBC代码同样功能的JdbcTemplate的代码:
1 |
String sql = "select * from admin" ;
|
2 |
3 |
jdbcTemplate.query(sql, new RowCallbackHandler() {
|
4 |
5 |
public void processRow(ResultSet rs) throws SQLException {
|
6 |
7 |
}
|
8 |
9 |
} );
|
环境搭建:
1. 数据库的配置
本文使用Mysql数据库,新建表admin:
1 |
CREATE TABLE `admin` (
|
2 |
`ID` bigint (20) unsigned NOT NULL auto_increment,
|
3 |
` NAME ` varchar (100) NOT NULL ,
|
4 |
` PASSWORD ` varchar (200) NOT NULL ,
|
5 |
PRIMARY KEY (`ID`)
|
6 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8
|
2. Spring配置
JdbcTemplate的使用需要有DataSource的支持,所以在配置文件中,我们首先要配置一个OracleDataSource,然后在将这个DataSource配置到JdbcTemplate里。接着将JdbcTemplate配置进DAO层,最后将DAO配置进Model层。简要的关系如下:
01 |
<? xml version = "1.0" encoding = "UTF-8" ?>
|
02 |
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" |
04 |
< beans >
|
05 |
< bean id = "dataSource"
|
06 |
class = "org.springframework.jdbc.datasource.DriverManagerDataSource" >
|
07 |
< property name = "driverClassName" value = "com.mysql.jdbc.Driver" />
|
08 |
< property name = "url" value = "jdbc:mysql://localhost:3306/zuidaima_admin?useUnicode=true&characterEncoding=utf-8" />
|
09 |
< property name = "username" value = "root" />
|
10 |
< property name = "password" value = "111111" />
|
11 |
</ bean >
|
12 |
13 |
< bean id = "jdbcTemplate" class = "org.springframework.jdbc.core.JdbcTemplate" >
|
14 |
< property name = "dataSource" >
|
15 |
< ref bean = "dataSource" />
|
16 |
</ property >
|
17 |
</ bean >
|
18 |
19 |
< bean id = "userDao" class = "com.zuidaima.dao.impl.UserDaoImpl" >
|
20 |
< property name = "jdbcTemplate" >
|
21 |
< ref bean = "jdbcTemplate" />
|
22 |
</ property >
|
23 |
</ bean >
|
24 |
25 |
< bean id = "user" class = "com.zuidaima.model.User" >
|
26 |
< property name = "dao" >
|
27 |
< ref bean = "userDao" />
|
28 |
</ property >
|
29 |
</ bean >
|
30 |
31 |
</ beans >
|
3. 项目截图:
使用方法:
1.查找
多行查询:
01 |
class UserRowMapper implements RowMapper {
|
02 |
03 |
public Object mapRow(ResultSet rs, int index) throws SQLException
|
04 |
05 |
{
|
06 |
07 |
User u = new User();
|
08 |
09 |
u.setId(rs.getString( "ID" ));
|
10 |
11 |
u.setName(rs.getString( "Name" ));
|
12 |
13 |
u.setPassword(rs.getString( "Password" ));
|
14 |
15 |
return u;
|
16 |
17 |
}
|
18 |
19 |
}
|
20 |
21 |
public List select(String where)
|
22 |
23 |
{
|
24 |
25 |
List list;
|
26 |
27 |
String sql = "select * from admin " +where;
|
28 |
29 |
list = jdbcTemplate.query(sql, new RowMapperResultReader( new UserRowMapper()));
|
30 |
31 |
return list;
|
32 |
33 |
}
|
List最终返回的是满足条件的User队列。
单行查询:
01 |
public User selectById(String id){
|
02 |
03 |
String sql = "select * from admin where id=?" ;
|
04 |
05 |
final User u = new User();
|
06 |
07 |
final Object[] params = new Object[] {id};
|
08 |
09 |
jdbcTemplate.query(sql, params, new RowCallbackHandler(){
|
10 |
11 |
public void processRow(ResultSet rs) throws SQLException {
|
12 |
13 |
u.setId(rs.getString( "ID" ));
|
14 |
15 |
u.setName(rs.getString( "NAME" ));
|
16 |
17 |
u.setPassword(rs.getString( "PASSWORD" ));
|
18 |
19 |
}
|
20 |
21 |
});
|
22 |
23 |
return u;
|
24 |
25 |
} |
2. 插入
01 |
public void insert(User u)
|
02 |
03 |
{ |
04 |
05 |
String sql = "insert into admin (ID,NAME,PASSWORD) values (admin_id_seq.nextval,?,?)" ;
|
06 |
07 |
Object[] params = new Object[] {
|
08 |
09 |
u.getName(),
|
10 |
11 |
u.getPassword() };
|
12 |
13 |
jdbcTemplate.update(sql,params);
|
14 |
15 |
} |
admin_id_seq.nextval为Oracle设置好的序列,问号“?”被params里的数据依次替代,最终执行sql。
3. 修改
非常简单:
1 |
public void update(String how)
|
2 |
3 |
{ |
4 |
5 |
jdbcTemplate.update(how);
|
6 |
7 |
}
|
运行截图
数据库截图
相关推荐
本项目聚焦于Spring、Spring MVC和JDBC Template的集成应用,用于实现数据库的增删改查操作。这是一套常见的企业级应用开发模式,对于理解和掌握Java Web开发至关重要。 首先,Spring框架是一个开源的应用框架,它...
在这个“Spring实现增删改查”的项目中,我们将深入探讨如何利用Spring框架来实现数据库操作的基础功能。 1. **依赖注入(DI)**:在Spring框架中,DI是一种设计模式,它允许对象之间的关系在运行时被外部容器管理...
在Spring框架中,JdbcTemplate是用于简化数据库操作的重要工具,它是Spring JDBC模块的一部分。通过使用JdbcTemplate,开发者可以避免编写大量的重复代码,如手动管理连接、处理结果集等,从而专注于业务逻辑。本文...
在本实例中,我们将深入探讨如何使用SpringBoot框架进行数据库操作,主要集中在增删改查(CRUD)功能。SpringBoot以其简洁的配置和强大的功能,成为Java开发中广泛采用的框架,尤其在构建微服务时更为突出。下面,...
在这个实例中,我们将探讨如何利用这三个框架实现一个简单的登录功能,并通过Spring进行登录、增、删、改、查的完整操作。 首先,Struts2作为MVC模式中的Controller层,负责处理用户请求并转发到相应的Action。在...
本文将详细介绍Spring使用JDBC进行增删改查的三种主要方法。 首先,让我们了解Spring JDBC的基础。Spring JDBC模块通过`JdbcTemplate`和`SimpleJdbcTemplate`类提供了数据库访问的抽象层,简化了数据库操作。这两种...
在这个"ssh 框架增删改查小项目(CRUD)"中,我们可以深入学习SSH框架如何实现基本的数据操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)。 Spring框架作为基础,它是一个全面的后端应用...
在增删改查操作中,Spring通过它的数据访问集成(Data Access/Integration)模块,如JdbcTemplate或JPA,与数据库进行交互。 2. **Struts框架**:Struts是MVC(Model-View-Controller)设计模式的实现,主要负责...
在实际的"SSH案例(增删改查)"项目中,开发者可能还使用了JDBC或者Spring的JdbcTemplate进行数据库交互,这些工具可以帮助简化数据库操作。同时,为了增强用户体验,界面可能使用了JSP(Java Server Pages)和HTML...
Spring JDBC是Spring框架的一部分,它提供了一种抽象层,使得我们能够更方便地使用Java数据库连接(JDBC)来处理数据库操作,如增删改查(CRUD)。在这个主题下,我们将深入探讨Spring JDBC的核心概念、配置、以及...
总的来说,"三大框架写的增删改查"项目对于初学者而言,是一个很好的学习平台,能够帮助理解如何在实际开发中整合Struts、Spring和Hibernate,掌握企业级Java Web应用开发的基础技能。通过这个项目,你可以学习到...
在“spring的增删改查”这个主题中,我们将深入探讨Spring如何与Oracle数据库配合,实现数据的CRUD(Create、Read、Update、Delete)操作。 1. **Spring JDBC模块** Spring提供了JDBC模块,使得开发者可以避免繁琐...
在"Spring3.x MySql 增删改查"项目中,初学者可以学习如何配置Spring的JDBC支持。这通常涉及以下步骤: 1. 添加Spring JDBC的依赖到项目构建配置(如Maven或Gradle)。 2. 创建DataSource bean,配置数据库连接参数...
在本文中,我们将深入探讨如何使用Spring框架,特别是Spring MVC和JdbcTemplate,来实现一个功能齐全的数据操作系统,包括单表的增删改查、条件查询以及分页功能,并涉及文件上传。对于初学者来说,这是一个很好的...
在"Spring+Hibernate 增删改查等基本操作"这个主题中,我们主要探讨的是如何整合这两个框架来实现数据持久化。以下是一些关键的知识点: 1. **Spring**: - **依赖注入(DI)**:Spring的核心特性之一,通过XML...
在本项目中,我们主要探讨的是如何利用SpringMVC框架结合注解来实现一个完整的增删改查(CRUD)功能。SpringMVC是Spring框架的一部分,专门用于处理Web应用程序的请求和响应,通过注解的方式,我们可以使代码更加...
标题"Spring+Hibernate工具类所有增删改查"暗示了这是一个集合了Spring和Hibernate框架中用于基本数据库操作的工具类库。这些工具类通常包含了一系列静态方法,用于执行常见的数据库CRUD(创建、读取、更新、删除)...
在IT行业中,Spring、Hibernate和Struts2是三个非常重要的框架,它们构成了经典的Java Web开发栈,被广泛用于实现Web应用程序的"增删改查"(CRUD)操作。在这个项目中,"北大青鸟"可能是一个教育机构,它可能在教授...
下面将详细介绍这些技术及其在“增删改查”操作中的应用。 首先,SpringMVC是Spring框架的一部分,是一个基于模型-视图-控制器(MVC)架构模式的轻量级Web开发框架。它简化了Java Web应用的开发,提供了依赖注入、...
Spring MVC实现mysql数据库增删改查完整实例 本资源主要介绍了Spring MVC实现mysql数据库增删改查完整实例,从创建一个web项目开始,分享了项目结构以及具体Java代码和前端页面等相关内容,具有一定借鉴价值。 一...