ApplicationContext.Xml 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://ww[align=center][/align]w.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<!-- 数据源 -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="net.sourceforge.jtds.jdbc.Driver" />
<property name="url"
value="jdbc:jtds:sqlserver://localhost:1433/test;charset=GBK" />
<property name="username" value="sa" />
<property name="password" value="123" />
<property name="poolPreparedStatements" value="true" />
<property name="defaultAutoCommit" value="false" />
</bean>
<!-- 事务 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- jdbcTemplate 注入 -->
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- attendance 类注入 -->
<bean id="attendance" class="emisx.attend.Attendance">
<property name="jdbcTemplate" ref="jdbcTemplate" />
</bean>
<!-- 代理类 -->
<bean id="checkWiner" class="emisx.attend.CheckWiner">
<property name="attendance" ref="attendance"/>
</bean>
<!-- 定时器 -->
<bean id="scheduledTask" class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="delay" value="0"/>
<property name="period" value="5000"/>
<property name="timerTask" ref="checkWiner"/>
</bean>
<!-- 周期任务 -->
<bean id="timerFactory" class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref bean="scheduledTask" />
</list>
</property>
</bean>
</beans>
Web.xml 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Attendance 类
package emisx.attend;
import org.springframework.jdbc.core.JdbcTemplate;
public class Attendance {
private JdbcTemplate jdbcTemplate;
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public void importDBOnThread() {
try {
System.out.println(getJdbcTemplate().hashCode());
System.out.println(getJdbcTemplate().getDataSource());
System.out.println(getJdbcTemplate().toString());
getJdbcTemplate().update("insert into myt values(?,?)",new String[] {"a","n"});
// 执行getJdbcTemplate().update()之后既没有报错,数据库也没有新的纪录不知道怎么回事
System.out.println(getJdbcTemplate().hashCode());
System.out.println(getJdbcTemplate().getDataSource());
System.out.println(getJdbcTemplate().toString());
System.out.println("1111111111");
} catch (Exception e) {
e.printStackTrace();
}
}
}
CheckWiner 代理代理调用 Attendance 类
package emisx.attend;
import java.util.TimerTask;
public class CheckWiner extends TimerTask {
private Attendance attendance;
public Attendance getAttendance() {
return attendance;
}
public void setAttendance(Attendance attendance) {
this.attendance = attendance;
}
public void run() {
try {
attendance.importDBOnThread();
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行 attendance.importDBOnThread() 之后的结果
30633470
org.apache.commons.dbcp.BasicDataSource@186c730
org.springframework.jdbc.core.JdbcTemplate@1d36dfe
30633470
org.apache.commons.dbcp.BasicDataSource@186c730
org.springframework.jdbc.core.JdbcTemplate@1d36dfe
1111111111
但是数据库却没有改变。
事务添加或者不添加结果都一样。大家帮帮忙瞧瞧...
<property name="defaultAutoCommit" value="false" />
</bean>
//这行代码表示是否自动提交的,所以 修改下 values="true" 就ok了
分享到:
相关推荐
Spring JDBC模絫提供了一种简洁的方式来处理数据库操作,而`Spring JdbcTemplate`是这个模絫的核心组件。本教程将深入探讨如何使用基于注解的Spring JdbcTemplate进行数据库操作,特别适合初学者入门学习。 ### 1. ...
使用SpringJdbcTemplate进行数据库操作通常涉及以下步骤: - 创建SpringJdbcTemplate实例,注入DataSource。 - 调用对应的方法,如`update()`执行更新操作,`queryForObject()`或`query()`执行查询操作,传入SQL...
总的来说,Spring JdbcTemplate是Spring框架中处理数据库操作的重要工具,它通过简化JDBC API,提升了开发效率和代码质量。在实际项目中,结合Spring的其他组件,可以构建出稳定、高效的数据访问层。这个实例工程为...
Druid数据库连接池的SpringJDBCTemplate所需的jar包,Druid数据库连接池的SpringJDBCTemplate所需的jar包,Druid数据库连接池的SpringJDBCTemplate所需的jar包,Druid数据库连接池的SpringJDBCTemplate所需的jar包,...
总之,Spring JDBCTemplate结合连接池提供了一个高效且易于使用的数据库访问层,它降低了数据库操作的复杂性,同时也提升了系统的性能。正确配置和使用这些库,可以极大地优化我们的数据库应用程序。
Spring的JdbcTemplate是Spring框架中用于简化数据库操作的工具类,它是基于JDBC但又抽象出了一层,避免了直接与数据库驱动API交互,从而提高了代码的可读性和可维护性。本文将深入探讨Spring JdbcTemplate的常用方法...
`BaseDaoImpl`则会实现这些接口方法,内部调用JdbcTemplate的相关API来完成实际的数据库操作。 **3. log4J配置文件:** `log4j.properties`是日志配置文件,用于设置应用程序的日志记录行为。在Spring JdbcTemplate...
在本文中,我们将讨论如何使用 Spring JdbcTemplate 调用 Oracle 存储过程来实现 CRUD(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储过程,然后编写 Java 代码使用 Spring JdbcTemplate 调用...
Spring JDBC Template是Spring提供的一个简化数据库操作的工具,它封装了JDBC的繁琐部分,让开发者可以更专注于业务逻辑。 在这个“简易登录系统”中,Struts2主要承担用户界面和控制器之间的交互。用户在登录页面...
如果数据库操作失败,JdbcTemplate会抛出异常,如`DataAccessException`,使得我们可以快速定位并处理问题。 总结来说,Spring JdbcTemplate通过提供一套简单易用的API,极大地简化了数据库操作,同时保证了代码的...
Spring JdbcTemplate是Spring框架中用于简化数据库操作的一个重要组件,它是Spring对JDBC的轻量级封装,旨在提供一种结构良好、易于使用的SQL执行机制,同时保持了JDBC的灵活性。在本实例中,我们将深入探讨Spring ...
模仿spring jdbcTemplate的粗略实现,只有很小的参考价值,如果是java初学者可以使用这个封装好的工具进行数据库操作,只需要在db.properties里配置好driver,url等信息
Spring JdbcTemplate是Spring框架中的一个核心组件,主要用来简化数据库操作。它提供了一种模板方法设计模式,将SQL语句的执行与结果处理进行了抽象,使得开发者可以更加专注于业务逻辑,而无需关心底层数据访问的...
### Spring JdbcTemplate API:数据库操作的模板模式 #### 概述 在Spring框架中,`JdbcTemplate`是一个用于简化JDBC编程的工具类,它采用了模板模式来分离数据库访问中的不变和可变部分,提供了一种更加健壮且易于...
JdbcTemplate是Spring提供的一种数据库操作工具,它简化了数据库访问,使开发者能够编写出更健壮、更易于维护的代码,避免了手动处理JDBC连接、预编译SQL语句等繁琐任务。 首先,我们来理解一下JdbcTemplate的基本...
JdbcTemplate是Spring提供的一个用于简化数据库操作的API,它是Spring对JDBC(Java Database Connectivity)的轻量级封装。通过使用JdbcTemplate,开发者可以避免编写大量的样板代码,如打开和关闭连接、处理结果集...
Spring JDBCTemplate是Spring框架中的一个核心组件,它提供了一种简化数据库操作的抽象层,使得开发者可以更加方便、高效地处理数据库事务。本篇将深入探讨Spring JDBCTemplate的使用及其源码解析,帮助你理解其背后...
总之,`Spring JdbcTemplate.batchUpdate`是处理批量数据库操作的强大工具,它可以提高效率,减少与数据库的交互次数。然而,正确地使用它需要对事务管理、异常处理和性能优化有深入的理解。通过合理的配置和良好的...
dbtest 是一个 JdbcTemplate 对象,用于执行数据库操作。dataSource 是一个 BasicDataSource 对象,用于提供数据库连接。 数据库连接配置 在 dataSource 中,我们定义了四个属性:driverClassName、url、username ...
SSH笔记-Spring JdbcTemplate是关于如何在Spring框架中利用JdbcTemplate进行数据库操作的教程。Spring是一个广泛应用的Java企业级应用框架,它提供了多种数据访问工具,而JdbcTemplate就是其中之一,用于简化JDBC...