java调用mysql的存储过程
1、新建一个swt-java项目,项目的名称为javasql。
2、把mysql的java驱动加载到项目中。mysql-connector-java-5.1.22-bin.jar
3、在项目中新建一个shell窗口。
4、添加java代码,链接mysql数据库:
try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8;","root","123456");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
5、在窗体中增入table组件,用来显示存储过程的数据。
6、我在mysql中test数据库定义了一个“cunchugc”过程,返回两条数据:
CREATE DEFINER=`root`@`localhost` PROCEDURE `cunchugc`()
BEGIN
SELECT '张三','男','25','c1','12345678' UNION
SELECT '李四','男','38','a1','36998521';
END$$
7、怎么调用存储过程呢,把过程返回的数据显示到表格中,下图是运行结果。
try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8;","root","123456");
Statement st=conn.createStatement();
ResultSet re=st.executeQuery("call cunchugc()"); //存储过程
while (re.next()){
TableItem ti=new TableItem(table,SWT.NONE);
ti.setText(0, re.getString(1));
ti.setText(1, re.getString(2));
ti.setText(2, re.getString(3));
ti.setText(3, re.getString(4));
ti.setText(4, re.getString(5));
}
re.close();
st.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}