Spring Jdbc Template CRUD
执行insert update delete操作
template.execute("updatet_user set sex='女'"); 用execute执行不可以有?的形式
jdbctemplate.update("INSERT INTOt_user VALUES(NULL,?,?,?)", "wbc", 27, "女");
用update来执行可以用?来代替要输入的值,在sql语句后面添加就可以了,要和数据库中的类型相对应,
执行select,重点会以下两种方法, 类似于dbutil中的方法
User user = jdbctemplate.queryForObject("SELECT* FROM t_user where id=1",newBeanPropertyRowMapper<User>(User.class));
用BeanPropertyRowMapper来完成bean的封装,用queryForObject方法,可以封装一个数据对象
List<User> user = jdbctemplate.query("SELECT * FROM t_user ",
new BeanPropertyRowMapper<User>(User.class));
用query可以查询出一个list列表,像dbuitl中BeanlistHedler(); queryForObject可以查询出一个对象,像dbuitl中BeanHedler()
Spring 事务管理
事务管理(ACID)
原子性:想象成原子的特性不可分割
一致性:事务要么一起成功,要那么一起失败
隔离性:事务一个在执行的时候,将其他的事务隔离开来
序列化:将数据序列化到磁盘上面去
不考虑事务会发生以下的事情.
脏读:一方读到另一方未提交的的数据
不可重复读:一方读到另一方已经提交的数据导致,两次数据不一样(update)
虚读:一方读到另一方已经提交的数据导致,两次数据不一样(insert)
设置隔离级别来解决上述问题
Oracle: read_commit
Mpsql: readtable_read
Hibernate:readtable_read