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