`org.springframework.jdbc.datasource.DataSourceTransactionManager` 是 Spring JDBC 模块中的一个类

本文介绍了SSM框架中DataSourceTransactionManager的使用,并详细讲解了在XML配置文件中如何处理SQL特殊字符如&、<、>、"、'、<=、>=和<>的问题。此外,还提到了Mybatis返回Map的情况,适用于简化报表数据处理,避免创建额外的实体类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

org.springframework.jdbc.datasource.DataSourceTransactionManager 是 Spring JDBC 模块中的一个类,它实现了 PlatformTransactionManager 接口,负责管理数据库事务。这个类允许你在 Spring 应用程序中以声明式方式管理 JdbcTemplate 或者任何其他依赖于 JDBC 的操作的事务。

在Spring中,你可以通过配置来使用这个交易管理器,如下所示:

@Autowired
private DataSource dataSource; // 假设已经有一个DataSource bean

@Bean
public PlatformTransactionManager transactionManager() {
   
   
    return new DataSourceTransactionManager(dataSource);
}

一旦配置好,你就可以在你的服务类中通过 @Transactional 注解来标记那些应该自动进行事务管理的方法:

@Service
@Transactional
public class MyService {
   
   

    @Autowired
    private JdbcTemplate jdbcTemplate;

    public void someJdbcOperation() {
   
   
        // 这里的一系列数据库操作会放在一个事务中
        jdbcTemplate.update(...);
    }
}

someJdbcOperation()方法执行时,如果发生异常,整个事务会被回滚;如果一切正常,事务会在方法结束时提交。

xml中sql替换字符
& &
< <
> >
" "
’ ’
<= <= <![CDATA[<= ]]>
>= >= <![CDATA[>= ]]>
<> != <![CDATA[ <> ]]>
Mybatis返回Map
一般用于报表,不想新建一个实体类,就用map包装返回值。

package com.ssm.chapter13.main;
import java.util.ArrayList;
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.ssm.chapter13.pojo.Role;
import com.ssm.chapter13.service.RoleListService;
public class Chapter13Main {
   
   
	public static void main(String [] args) {
   
   
		ApplicationContext ctx = new ClassPathXmlApplicationContext ("spring-cfg.xml");
		RoleListService roleListService = ctx.getBean(RoleListService. class);
		List<Role> roleList = new ArrayList<Role>();
        for (int i=1; i<=2; i++) {
   
   
            Role role = new Role();
            role.setRoleName("role_name_" + i);
            role.setNote("note_" + i);
            roleList.add(role);
        }
        int count = roleListService.insertRoleList(roleList);
	   System.out.println(count);
	}
}
package com.ssm.chapter13.mapper;

import com.ssm.chapter13.pojo.Role;
import org.springframework.stereotype.Repository;

@Repository
public interface RoleMapper {
   
   
	public int insertRole(Role role);
}
package com.ssm.chapter13.pojo;

public class Role {
   
   
	private Long id;
	private String roleName;
	private String note;
	
	public Long getId() {
   
   
		return id;
	}
	public void setId(Long id) {
   
   
		this.id = id;
	}
	public String getRoleName() {
   
   
		return roleName;
	}
	public void setRoleName(String roleName) {
   
   
		this.roleName = roleName;
	
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bol5261

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值