MySQL PROC :
-----------------------------------------------------------------------------------------------------------------------
CREATE DEFINER=`root`@`%` PROCEDURE `proc_sequence`(OUT sequence varchar(25))
BEGIN
SELECT CONCAT(prefix, imsi, Date_format(yearmonthday,'%Y%m%d'), sufix) INTO sequence
FROM ra_sequence
WHERE seq_id=1 ;
UPDATE ra_sequence SET yearmonthday = current_date , sufix =sufix + 1
WHERE prefix='xg' AND imsi='00000000001' AND seq_id = 1 ;
END
-----------------------------------------------------------------------------------------------------------------------
JAVA CODE
==================================================================
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mysql.jdbc.CallableStatement;
public class ConnectionMySQL {
public static Connection getConnection() throws Exception {
String driver = "org.gjt.mm.mysql.Driver";
String url = "jdbc:mysql://127.0.0.1:3306/redantsDB?useUnicode=true&characterEncoding=UTF-8";
String username = "root";
String password = "123";
Class.forName(driver);
Connection conn = (Connection) DriverManager.getConnection(url,
username, password);
return conn;
}
public static void main(String[] args) {
Connection connection = null;
CallableStatement callableStatement = null;
try {
connection = getConnection();
String proc_name = "{CALL proc_sequence(?)}";
callableStatement = (CallableStatement) connection
.prepareCall(proc_name);
callableStatement.registerOutParameter(1, java.sql.Types.VARCHAR);
callableStatement.executeUpdate();
System.out.println(callableStatement.getString(1));
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (null != callableStatement) {
callableStatement.close();
}
if (null != connection) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
分享到:
相关推荐
例如,`CallableStatement cs = connection.prepareCall("{call some_proc(?, ?)}");`,然后设置输入和输出参数。 7. **事务处理**: JDBC提供了管理事务的能力。`connection.setAutoCommit(false)`可以禁用自动提交...
这通常涉及到在项目中添加对应数据库的JDBC驱动依赖,例如对于MySQL,我们需要添加mysql-connector-java库。 接下来,调用存储过程主要分为以下几个步骤: 1. **建立连接**:使用`DriverManager.getConnection()`...
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb", "username", "password"); ``` #### 步骤2:创建CallableStatement对象 接下来,创建`CallableStatement`对象,它是用于...
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); CallableStatement cstmt = conn.prepareCall("{ call get_employee_count(?)}"); cstmt....
CallableStatement cs = conn.prepareCall("{ call proc_insert_blob(?, ?) }"); cs.setString(1, "aaa.exe"); cs.setBlob(2, new FileInputStream("d:/aaa.exe")); // ... CallableStatement cs2 = conn....
需要注意的是,这里使用的`sun.jdbc.odbc.JdbcOdbcDriver`是一个针对ODBC桥接的驱动,现代应用中更推荐使用对应的JDBC驱动,如MySQL的`com.mysql.cj.jdbc.Driver`。 2. **创建连接**: ```java Connection con = ...
CallableStatement call = conn.prepareCall("{Call proc()}"); ResultSet rs = call.executeQuery(); rs.close(); session.close(); ``` 3. **使用`createSQLQuery`方法**:这是更灵活的方式,可以直接在`Session`...
JDBC是一种Java API,可以通过JDBC驱动与多种数据库管理系统(DBMS)进行通信,如MySQL、Oracle、SQL Server等。它提供了标准的方法来访问不同类型的数据库,使得Java程序能够使用SQL语句来查询和更新数据库中的数据...
字符串格式通常是"{call PROC_NAME(?, ?)}",问号是占位符,对应存储过程的输入/输出参数。 3. **设置参数**: 使用`CallableStatement`的`setXXX()`方法(这里的XXX是参数类型,如`setInt()`、`setString()`等)...
String url = "jdbc:mysql://localhost:3306/yourdb"; String username = "root"; String password = "password"; try (Connection conn = DriverManager.getConnection(url, username, password)) { // 创建...
callableStatement = connec.prepareCall("{call proc1(?) }"); callableStatement.setInt(1, inputParam); callableStatement.execute(); } catch (SQLException e) { e.printStackTrace(); } } ``` 这里,`...
5. **SecondEJB**:这可能是一个具体的EJB组件,可能是无状态会话Bean的实现,它的职责可能包括与`ProcCall`协作,执行数据库操作,尤其是调用存储过程。 为了理解并实现这个示例,你需要掌握以下技术点: - EJB3的...
1. **加载数据库驱动**:首先需要导入相应的JDBC驱动,例如对于MySQL,我们会引入`com.mysql.jdbc.Driver`,并使用`Class.forName()`方法加载驱动。 2. **建立连接**:使用`DriverManager.getConnection()`方法创建...
15. 调用存储过程:使用JDBC的CallableStatement,设置SQL语句(如{call proc_name()})并绑定参数。 16. S2SH(Struts2 + Spring + Hibernate)整合:结合Struts2的MVC、Spring的依赖注入和Hibernate的ORM。 17. ...