龙哥网

龙哥网

java使用存储过程的两种方式(java 存储过程)
2022-03-01

数据库直接创建使用存储过程

  • 创建存储过程
DELIMITER $
CREATE PROCEDURE 名称()
BEGIN

逻辑语句(可以一条或多条)

END $

示例:

DELIMITER $
CREATE PROCEDURE setUsername()
BEGIN

update myqxin_user set username = '魅言倾馨' where id = 1;

END $
  • 使用存储过程
call setUsername()		// setUsername就是上面创建的名称

java实现调用存储过程(JDBC方式)

public class StoredProcedureUtil { 

    private String url = "jdbc:mysql://test-fast-mysql.myqxin.com:3306/fast_isip_admin?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai";

    private String username = "用户名";

    private String password = "密码";

    public Connection getConnection(){ 
        // 数据库连接
        Connection conn = null;
        try { 
            // 加载数据库驱动,注册到驱动管理器
            Class.forName("com.mysql.jdbc.Driver");
            // 创建Connection链接
            conn = DriverManager.getConnection(url,username,password);
        } catch (ClassNotFoundException e) { 
            e.printStackTrace();
        } catch (SQLException e){ 
            e.printStackTrace();
        }
        return conn;
    }

    public void implementStorage(String Storagename){ 
        String result = "{call "+ Storagename.concat("()}");
        Connection conn = getConnection();
        try { 
            CallableStatement cs = conn.prepareCall(result);
            cs.execute();
        } catch (SQLException throwables) { 
            throwables.printStackTrace();
        }
    }
}

java实现调用存储过程(Mybatis方式)

这是Mapper.xml文件的使用方式

 <!-- 删除-无参 -->
 <delete id="cleanStored" statementType="CALLABLE">
        {call bcjs_clean}
 </delete>
 <!-- 计算-有参 -->
  <select id="implementStorage" statementType="CALLABLE" parameterType="com.meditrusthealth.fast.isip.web.request.actuary.ActuaryVersionReq">
        {call bcjs_cal(#{projectId},#{userId},#{versionId})}
  </select>

以上就是代码,调用implementStorage方法,传入过程名称就行可以了

免责声明
本站部分资源来源于互联网 如有侵权 请联系站长删除
龙哥网是优质的互联网科技创业资源_行业项目分享_网络知识引流变现方法的平台为广大网友提供学习互联网相关知识_内容变现的方法。