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;