`

java调用mysql的存储过程

 
阅读更多

java调用方法

private void createOrUpdateDBStore(String storeName,String tableSQLs,boolean newStore, String dbType) throws java.sql.SQLException
  {
    if(null == storeName || storeName.length()<=0)
    {
      throw new SQLException("数据库名为空");
    }
    if(null == tableSQLs || tableSQLs.length()<=0)
    {
      throw new SQLException("建表脚本为空");
    }
    SessionFactory.dispose();
    Session session = SessionFactory.getSession();
    try
    {
      java.sql.Connection conn = session.getConnection("WBO_Server_DB_System");
      java.sql.Statement ps = conn.createStatement();

      if(newStore)
      {
        String createStoreSQL = this.toCrateStoreSQL(storeName,dbType);
        ToolLog.getLog().debug(createStoreSQL);
        ps.execute(createStoreSQL);
      }

      StringBuffer sqlSB = new StringBuffer();
      sqlSB.append("USE " + storeName + "\r\n");
      ToolLog.getLog().debug(sqlSB.toString());
      ps.execute(sqlSB.toString());

      String[] lines = this.toSQLLines(tableSQLs);
      sqlSB = new StringBuffer();
      for(int i=0;i<lines.length;i++)
      {
        String s = lines[i];
        if("GO".equalsIgnoreCase(s))
        {
          String sql = sqlSB.toString();

          ToolLog.getLog().debug(sql);
          ps.execute(sql);

          sqlSB = new StringBuffer();
        }
        else 
        {
          sqlSB.append(s);
          sqlSB.append("\r\n");
        }
      }
    }
    finally
    {
      SessionFactory.close(session);
    }
  }

 sql脚本

drop procedure if exists sp_update_table_field;
GO
create procedure sp_update_table_field()
begin
if not exists(select 1 from information_schema.columns where table_name='WB_Sys_Role' and column_name='Is_Export') then  
    ALTER TABLE WB_Sys_Role ADD Is_Export TINYINT NOT  NULL default '0';
end if;
end 
GO
call sp_update_table_field();
GO
drop procedure if exists sp_update_table_field;
GO

 这样是可以执行的;

但是在mysql的客户端是不会执行的,客户端执行的sql语句是:

drop procedure if exists sp_update_table_field;
delimiter //
create procedure sp_update_table_field()
begin
if not exists(select 1 from information_schema.columns where table_name='WB_Sys_Role' and column_name='Is_Export') then  
    ALTER TABLE WB_Sys_Role ADD Is_Export TINYINT NOT  NULL default '0';  
end if;
end 
//
delimiter ;
call sp_update_table_field();
drop procedure if exists sp_update_table_field;
 delimiter 分节符命令,是不被java解析的!!!
0
0
分享到:
评论

相关推荐

    Java调用Mysql存储过程

    总之,Java调用MySQL存储过程是一个涉及JDBC、CallableStatement和数据库交互的过程。理解这些步骤并正确地应用它们,可以有效地利用存储过程提高应用程序的性能和效率。记得在实际开发中,根据实际情况调整代码,...

    Java实现调用MySQL存储过程详解

    总的来说,Java通过JDBC调用MySQL存储过程涉及到连接数据库、创建`CallableStatement`、执行存储过程和处理结果。这使得开发者能够在Java应用中灵活地利用数据库提供的强大功能,实现更高效的数据处理。

    Java调用数据库存储过程[mysql测试通过]

    以下是一个简单的Java调用MySQL存储过程的示例: ```java import java.sql.*; public class TestJavaProcedure { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydb"; ...

    Java调用MySQL存储过程并获得返回值的方法

    总之,Java调用MySQL存储过程并获取返回值涉及到数据库连接、创建`CallableStatement`对象、设置参数、执行存储过程、处理结果集、关闭资源以及异常处理等多个环节。理解并熟练掌握这些步骤对于进行数据库驱动的Java...

    Java调用存储过程--传入集合参数

    ### Java调用存储过程——传入集合参数:深入解析与实践 #### 核心知识点概览 在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将...

    java操作mysql存储过程的例子.doc

    总结,Java操作MySQL存储过程的关键在于使用`CallableStatement`,它允许我们调用数据库中的存储过程并传递参数。在执行前,需要确保正确建立了数据库连接,并且已经创建了所需的存储过程。在处理完存储过程后,别忘...

    java调用存储过程(含out参数)

    在Java编程中,调用数据库的存储过程是常见的任务,特别是在处理复杂的业务逻辑或需要高效数据操作时。本文将详细讲解如何在Java中调用含有`OUT`参数的存储过程,帮助开发者解决这类问题。 首先,理解存储过程的...

    java 调用存储过程

    值得注意的是,上述代码中的文件名列表(如Project1.cfg、Unit1.dcu等)与Java调用存储过程无关,它们看起来像是Delphi或FreePascal项目的文件,这些文件通常用于描述项目配置、单元信息、表单布局等,而不是与Java...

    MyBatis调用MYSQL存储过程

    MyBatis调用MYSQL存储过程 返回多行 引用的包: asm-3.1.jar cglib-2.2.jar commons-logging-1.1.1.jar log4j-1.2.13.jar mybatis-3.0.4.jar mysql-connector-java-5.1.13.jar slf4j-api-1.5.8.jar slf4j-log4j12-...

    java调用mysql存储过程实例分析

    在Java编程中,调用MySQL存储过程是一种常见的数据操作任务,尤其...以上就是通过Java调用MySQL存储过程的基本方法和实例分析,希望对理解和实践这一技术有所帮助。在实际开发中,可以根据具体需求调整和扩展这些代码。

    如何在java中调用mysql的存储过程的事例

    这就是在Java中调用MySQL存储过程的基本步骤。在实际开发中,你可能需要根据具体的需求进行调整,如处理多结果集、异常处理等。理解这个过程可以帮助你更有效地利用存储过程提升数据库操作的效率和安全性。

    JAVA通过MyBatis调用MySql存储过程和函数doc文档合集整理.zip

    这个文档合集应该详细讲解了这些步骤和最佳实践,帮助开发者熟练掌握在Java中利用MyBatis调用MySQL存储过程和函数的技巧,从而更高效地进行数据库操作。通过深入学习和实践,开发者可以更好地理解这两者之间的交互,...

    spring mvc + mybatis 调用mysql 存储过程

    以上就是使用Spring MVC和MyBatis调用MySQL存储过程的完整步骤。需要注意的是,对于复杂的存储过程,可能需要处理输入和输出参数,以及可能的异常情况。此外,还要考虑事务管理和性能优化等问题。通过这种方式,你...

    mybatis调用mysql存储过程

    通过以上步骤,你已经掌握了如何在MyBatis中调用MySQL存储过程的基本方法。在实际开发中,这将极大地提升你的数据库操作效率,使你能够更好地管理和处理复杂的业务逻辑。在后续的实践中,你可以尝试结合具体业务场景...

    MySQL存储过程完整版使用代码示例

    资源包中囊括了MySQL数据库中的存储过程的...该资源下所有内容都是本人的日常软件开发经验总结,对于初学者使用MySQL存储过程的程序员具有重要参考价值,问大家要10分是不过分的,用过就知道了,欢迎大家下载参考及使用

    mysql调用存储过程

    总之,通过JDBC调用MySQL存储过程使得Java应用程序能够灵活地与数据库交互,执行复杂的业务逻辑,同时保持代码的简洁性和可读性。这在大型系统中尤其重要,因为它允许数据库管理员在不改变应用程序代码的情况下优化...

    Java程序调用存储过程

    Java程序调用存储过程是数据库操作中的常见任务,特别是在处理大量数据或需要高效执行复杂业务逻辑时。存储过程是预编译的SQL语句集合,它们可以提高性能、减少网络流量,并提供更好的安全性。在Java应用程序中调用...

    struts+spring_ibaits+调用Mysql存储过程实现增删改查

    在本项目中,"struts+spring_ibaits+调用Mysql存储过程实现增删改查",意味着开发者利用这三个框架来处理数据库中的增、删、改、查(CRUD)操作,并通过调用MySQL的存储过程来实现这些功能。存储过程是预编译的SQL...

Global site tag (gtag.js) - Google Analytics