crud 之用存储过程写crud

打开SQLYogEnt 创建存储过程

修改:
DELIMITER $$
CREATE PROCEDURE updEmp(emp_eid INT,emp_ename VARCHAR(255),emp_enDate DATE,emp_sid INT, 
  emp_pid INT,emp_gid INT,emp_loginName VARCHAR(255),emp_loginPwd VARCHAR(255)
)
BEGIN 
UPDATE emp SET ename=emp_ename,enDate=emp_enDate,sid=emp_sid,pid=emp_pid,
gid=emp_gid,flag=0,loginName=emp_loginName,loginPwd=emp_loginPwd WHERE eid=emp_eid;
END $$
DELIMITER;
========================================
STATEMENT,PREPARED,CALLABLE 实际都是接口
STATEMENT 非预编译的 使用时需要 自己带单引号'${}'  不能用#{}
PREPARED 预编译  可以使用#{},${},(默认的)
 CALLABLE 一般用于存储过程的调用  因为可以处理inout
<update id="upd" parameterType="emp" statementType="CALLABLE">
 <!-- update emp set ename=#{ename},enDate=#{enDate},sid=#{school.sid},pid=#{position.pid},
 gid=#{gift.gid},flag=0,loginName=#{loginName},loginPwd=#{loginPwd} where eid=#{eid} -->
 {call updEmp(#{eid},#{ename},#{enDate},#{school.sid},#{position.pid},
   #{gift.gid},#{loginName},#{loginPwd})}
    </update>
    =========================================
    查询存储过程
    DELIMITER $$
    CREATE PROCEDURE slist()
    BEGIN
    SELECT * FROM school;
    END $$
DELIMITER;
-----------------------
<select id="sList" resultType="School">
<!--  select * from school -->
{call slist()}
</select>  ***如果这样会报错 connection is readonly; 所以事务添加一个
<tx:method name="s*" propagation="REQUIRED" rollback-for="java.lang.Exception" />
================================
删除:
DELIMITER $$
CREATE PROCEDURE delEmp(emp_eid INT)
BEGIN 
DELETE FROM emp WHERE eid=emp_eid;
END $$
DELIMITER;
----------------
{call delEmp(#{eid})}
=================================
添加:
DELIMITER $$
CREATE PROCEDURE addEmp(emp_ename VARCHAR(25),emp_enDate VARCHAR(25),emp_sid INT,
emp_pid INT,emp_gid INT,emp_loginName VARCHAR(25),emp_loginPwd VARCHAR(25))
BEGIN 
INSERT INTO emp VALUES(NULL,emp_ename,emp_enDate,emp_sid,emp_pid,emp_gid,
 0,emp_loginName,emp_loginPwd,0);
 END $$
 DELIMITER;
 --------------------------------------
 <insert id="add" parameterType="Emp">
 <!--  insert into emp values(null,#{ename},#{enDate},${sch.sid},#{pos.pid},#{gif.gid},
 0,#{loginName},#{loginPwd},0) -->
 {call addEmp(#{ename},#{enDate},#{sch.sid},#{pos.pid},#{gif.gid},#{loginName},#{loginPwd})}
 </insert>
 
 
 
 
 



















    
    
    
    
   
 
 
 











猜你喜欢

转载自blog.csdn.net/L__MY/article/details/88928376