博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring jdbc Template和Spring 事务管理
阅读量:7053 次
发布时间:2019-06-28

本文共 3012 字,大约阅读时间需要 10 分钟。

使用jdbcTemplate完成增删改查操作(重点)

package com.it.jdbctemplate;import java.util.List;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.BeanPropertyRowMapper;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.it.domain.User;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations="classpath:applicationContext.xml")public class JdbcTemplateTest3 {    @Autowired    private JdbcTemplate jdbcTemplate;    //修改    @Test    public void test1(){        jdbcTemplate.execute("update t_user set sex='男' where id=2");    }    //添加操作    @Test    public void test2(){        jdbcTemplate.execute("insert into t_user values(null,'赵六',20,'女')");    }        //删除操作    @Test    public void test3(){        jdbcTemplate.execute("delete from  t_user where id =5");    }    //测试返回简单数据类型    @Test    public void test4(){        String name = jdbcTemplate.queryForObject("select name from t_user where id=?", String.class,1);        System.out.println(name);    }    //测试返回简单数据类型    @Test    public void test5(){        Integer count = jdbcTemplate.queryForObject("select count(*) from t_user",Integer.class);        System.out.println(count);    }    //使用BeanPropertyRowMapper    @Test    public void test6(){//        User user = jdbcTemplate.queryForObject("select * from t_user where id=?",//                new BeanPropertyRowMapper
(User.class),2); List
user = jdbcTemplate.query("select * from t_user", new BeanPropertyRowMapper
(User.class)); System.out.println(user); } }

 

掌握数据库连接池的使用和配置(重点)

jdbc.driverClass=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql:///springtestjdbc.username=rootjdbc.password=123

  

3.掌握事务的传播行为(重点)

Spring事务管理机制

3.1PlatformTransactionManager(平台事务管理器)

3.2TransactionDefinition(事务的定义信息)

传播 :它解决的是两个被事务管理的方法互相调用问题。它与数据库没有关系,是程序内部维护的问题

propagation required(传播请求) :  默认值 两个操作处于同一个事务,如果之前没有事务,新建一个事务

propagation requires new (传播新请求) : 两个操作处于不同的事务

propagtion nested  : 它是一种嵌套事务,它是使用SavePoint来实现的。事务回滚时可以回滚到指定的 savepoint

注意:它只对DataSourceTransactionManager有作用

3.2TransactionStatus(事务状态信息)

  

4.了解基于xml配置声明式事务管理(了解)

 

5.掌握基于annotation声明式事务管理(重点)

@Transactional()    public void account(String outname, String inname, double money) {        //转出操作        accountDao.accountOut(outname, money);        System.out.println(10/0);//一定会出现异常        //转入操作        accountDao.accountIn(inname, money);            }

 

    

转载于:https://www.cnblogs.com/weihaiyang/p/7113546.html

你可能感兴趣的文章
Timer Swing
查看>>
Cassandra命令行CLI的基本使用
查看>>
JQuery获取浏览器窗口的可视区域高度和宽度,滚动条高度
查看>>
8、redis之事务1-redis命令
查看>>
http://www.111cn.net/jsp/Jsp-Servlet/45158.htm
查看>>
使用vlc播放器做rtsp流媒体服务器
查看>>
常用的easyui使用方法
查看>>
【C#基础】HTTP发送POST二进制数据
查看>>
rabbitmq redis
查看>>
【5集iCore3_ADP演示视频】5-3 iCore3应用开发平台摸校准
查看>>
Token原理以及应用
查看>>
iOS block分析
查看>>
神经网络的BP算法
查看>>
Java String常见问题
查看>>
x264代码剖析(十五):核心算法之宏块编码中的变换编码
查看>>
Android仿微信进度弹出框的实现方法
查看>>
Spring事务管理
查看>>
[转]所有人都在渲染程序员的中年危机,我们却在劝你重新学会学习
查看>>
oom killer
查看>>
10.Django ModelForm
查看>>