Procedure sql server 2012 + java

Pessoal, estou querendo estruturar um INSERT usando JAVA da mesma forma que está estruturado o INSERT em VB .NET. Segue como está o código em VB .NET:


Const _spName = "dbo.MEJT_SP_CAD_PRODUTOS"

Public Function IncluirProduto(produto As MEJTProdutoEnt) As Integer

      Dim _nomeServidor As String = String.Empty
      Dim param(6) As SqlParameter
      Try
         param(0) = New SqlParameter("@MODO", "INSERIR")
         param(1) = New SqlParameter("@Nome_Produto", produto.Nome)
         param(2) = New SqlParameter("@Fornecedor", produto.Fornecedor)
         param(3) = New SqlParameter("@Codigo_Barras", produto.CodBarras)
         param(4) = New SqlParameter("@Marca", produto.Marca)
         param(5) = New SqlParameter("@Preco_Compra", produto.PrecoCompra)
         param(6) = New SqlParameter("@Categoria", produto.Categoria)

         produto.ID_Produto = Convert.ToInt32(MyBase.ExecuteScalar(_spName, param))

         Return produto.ID_Produto
      Catch ex As Exception

         Throw New Exception(ex.Message)
      End Try
   End Function

Pesquisei um pouco como posso usar essa mesma estrutura em JAVA e vi que usam CallableStatement, mas de uma forma diferente. Gostaria de saber se da para usar essa estrutura. Poderiam indicar o que posso pesquisar para tentar montar dessa forma.

Agradeço a colaboração.

Bem,
Fiz alguns testes e acabei fazendo da seguinte forma:

public void create(Produto produto){ try { CallableStatement cs = this.conexao.prepareCall("{call dbo.MEJT_SP_CAD_PRODUTOS(?, ?, ?, ?, ?, ?, ?, ?) }"); cs.setString("MODO", "INSERIR"); cs.setString("NOME_PRODUTO", produto.getNome()); cs.setString("FORNECEDOR", produto.getForncedor().getNome()); cs.setString("MARCA", produto.getMarca().getNome()); cs.setString("COD_BARRAS", produto.getCod_Barras()); cs.setFloat("VL_COMPRA", produto.getVl_Compra()); cs.setFloat("VL_VENDA", produto.getVl_Venda()); cs.setString("CATEGORIA", produto.getCategoria().getNome());
     cs.executeUpdate();

} catch (Exception e) {
    System.out.println("Erro : "+ e.getMessage());          
    e.printStackTrace();        
}       

}

A Procedure no SQL Server 2012 está da seguinte forma:

ALTER Procedure [dbo].[MEJT_SP_CAD_PRODUTOS] @MODO VARCHAR(50) = null, @NOME_PRODUTO VARCHAR(50) = null, @FORNECEDOR VARCHAR(50) = null, @MARCA VARCHAR(50) = null, @COD_BARRAS VARCHAR(50) = null, @VL_COMPRA FLOAT = NULL, @VL_VENDA FLOAT = NULL, @CATEGORIA VARCHAR(50) = null, @ID_PRODUTO INT = NULL As Begin
If @MODO = 'INSERIR' Begin

	INSERT INTO dbo.MEJT_TBL_PRODUTOS (NOME, FORNECEDOR, MARCA, COD_BARRAS, VL_COMPRA, VL_VENDA, CATEGORIA)
	VALUES (@NOME_PRODUTO, @FORNECEDOR, @MARCA, @COD_BARRAS, @VL_COMPRA, @VL_VENDA, @CATEGORIA)
	Select @@Identity

End 

Se alguém tiver uma dica de como se pode melhorar, agradeceria a colaboração.