07.20笔记
存储过程
无参
delimiter //
create procedure p1()
begin
select * from tablename;
end //- 有参
delimiter
create procedure p2(n int)
begin
select * from tablename where age > n;
end // while
delimiter createprocedurep3(nint,name1varchar(10))begindeclareiint;seti=1;whilei<=ndoinsertintostu(name,age)values(concat(name1,i),n);seti=i+1;endwhile;endmysql中调用
call p1();
call p2(50);
call p3(20, “jack”);在java中调用
public void add(String name, int age) throws Exception{
// 首先链接数据库
Connection conn = mysqlConnection();
// CallableStatement类用来执行mysql的存储过程
CallableStatement cs = conn.prepareCall(“{call p5(?, ?)}”);
cs.setString(1, name);
cs.setInt(2, age);
int res = cs.executeUpdate();
if (res > 0) {
System.out.println(“加入成功”);
} else {
System.out.println(“存储失败”);
}
}public void list() throws Exception{ // 首先链接数据库 Connection conn = mysqlConnection(); // CallableStatement类用来执行mysql的存储过程 CallableStatement cs = conn.prepareCall("{call p1()}"); ResultSet rs = cs.executeQuery(); while (rs.next()) { System.out.println(rs.getInt(1) + rs.getSting(2) + rs.getInt(3)); } }
事务(所有的操作要么同时成功,要么同时失败),事务的四大特征:
- 原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不可执行.
- 一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致.
- 隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的.
- 持久性(Durability):事务完成之后,它对于系统的影响是永久性的.搜索该修改即使出现系统故障也将一直保持.
事务的用法
conn.setAutoCommit(false); 首先关闭自动提交
if (返回 > 0 && 返回1 > 0) {
conn.commit();
} else {
conn.rollback();
}