【示例】Spring中通过JdbcTemplate来实现数据库的操作

2024-05-16 15:08

本文主要是介绍【示例】Spring中通过JdbcTemplate来实现数据库的操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

示例来源于《JavaEE轻量级企业应用实战(第四版)》

示例思路:通过对beans.xml的配置来实现ComboPooledDataSource类的自动注入和相关数据库连接信息的设置。使用之前记得先导入c3p0的相关包,以下是代码实现

beans.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.springframework.org/schema/beans"xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-4.0.xsd"><!-- 定义数据源Bean,使用C3P0数据源实现,并注入数据源的必要信息 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"p:driverClass="com.mysql.jdbc.Driver"p:jdbcUrl="jdbc:mysql://localhost/spring"p:user="root"p:password="abc123"p:maxPoolSize="40"p:minPoolSize="2"p:initialPoolSize="2"p:maxIdleTime="30"/><!-- 配置JDBC数据源的局部事务管理器,使用DataSourceTransactionManager 类 --><!-- 该类实现PlatformTransactionManager接口,是针对采用数据源连接的特定实现--><!-- 配置DataSourceTransactionManager时需要依注入DataSource的引用 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"p:dataSource-ref="dataSource"/><!-- 配置一个业务逻辑Bean --><bean id="newsDao" class="com.dao.impl.NewsDaoImpl"p:dataSource-ref="dataSource"/><!-- 配置事务增强处理Bean,指定事务管理器 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><!-- 用于配置详细的事务语义 --><tx:attributes><!-- 所有以'get'开头的方法是read-only的 --><tx:method name="get*" read-only="true"/><!-- 其他方法使用默认的事务设置,指定超时时长为5秒 --><tx:method name="*" isolation="DEFAULT"propagation="REQUIRED" timeout="5"/></tx:attributes></tx:advice><!-- AOP配置的元素 --><aop:config><!-- 配置一个切入点,匹配org.crazyit.app.dao.impl包下所有以Impl结尾的类里、所有方法的执行 --><aop:pointcut id="myPointcut"expression="execution(* com.dao.impl.*Impl.*(..))"/><!-- 指定在myPointcut切入点应用txAdvice事务增强处理 --><aop:advisor advice-ref="txAdvice" pointcut-ref="myPointcut"/></aop:config>
</beans>

NewsDao接口

package com.dao;public interface NewsDao {public void insert(String title, String content);
}

NewsDaoImpl实现类

package com.dao.impl;import javax.sql.DataSource;import org.springframework.jdbc.core.JdbcTemplate;import com.dao.NewsDao;
import com.mchange.v2.c3p0.ComboPooledDataSource;public class NewsDaoImpl implements NewsDao {private ComboPooledDataSource dataSource;public void setDataSource(ComboPooledDataSource dataSource) {this.dataSource = dataSource;}@Overridepublic void insert(String title, String content) {// TODO Auto-generated method stubJdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);jdbcTemplate.update("insert into news_inf values(null, ?, ?)", title, content);jdbcTemplate.update("insert into news_inf values(null, ?, ?)", title, content);}
}

测试代码

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
NewsDao newDao = applicationContext.getBean("newsDao", NewsDao.class);
newDao.insert("测试标题", "测试内容");

数据库设计

CREATE TABLE `news_inf` (`id` int(11) NOT NULL AUTO_INCREMENT,`title` varchar(255) NOT NULL,`content` varchar(255) NOT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

这样执行的时候就会自动在NewsDaoImpl类中自动注入dataSource,通过这个dataSource来获取JdbcTemplate,JdbcTemplate是一个Spring封装好的通过JDBC来操作数据库的类,之后使用update方法对数据库表进行操作(update可以支持新增、修改和删除操作)

Slience的CSDN博客
Slience的简书博客

这篇关于【示例】Spring中通过JdbcTemplate来实现数据库的操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/995257

相关文章

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

SpringBatch数据写入实现

《SpringBatch数据写入实现》SpringBatch通过ItemWriter接口及其丰富的实现,提供了强大的数据写入能力,本文主要介绍了SpringBatch数据写入实现,具有一定的参考价值,... 目录python引言一、ItemWriter核心概念二、数据库写入实现三、文件写入实现四、多目标写入

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

SpringSecurity JWT基于令牌的无状态认证实现

《SpringSecurityJWT基于令牌的无状态认证实现》SpringSecurity中实现基于JWT的无状态认证是一种常见的做法,本文就来介绍一下SpringSecurityJWT基于令牌的无... 目录引言一、JWT基本原理与结构二、Spring Security JWT依赖配置三、JWT令牌生成与

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim

如何配置Spring Boot中的Jackson序列化

《如何配置SpringBoot中的Jackson序列化》在开发基于SpringBoot的应用程序时,Jackson是默认的JSON序列化和反序列化工具,本文将详细介绍如何在SpringBoot中配置... 目录配置Spring Boot中的Jackson序列化1. 为什么需要自定义Jackson配置?2.

Java中使用Hutool进行AES加密解密的方法举例

《Java中使用Hutool进行AES加密解密的方法举例》AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个,下面:本文主要介绍Java中使用Hutool进行AES加密解密的相关资料... 目录前言一、Hutool简介与引入1.1 Hutool简介1.2 引入Hutool二、AES加密解密基础

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小