您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > MySql_数据库用java程序创建表以及存储过程
MySql数据库用java程序创建表以及存储过程1.同一般的数据库操作基本一样。2.Statement.executeUpdate(Stringsql);这个方法可以用来执行DDL语句,以及执行更新操作。3.需要注意CallableStatement接口的用法。用于执行SQL存储过程的接口。JDBCAPI提供了一个存储过程SQL转义语法,该语法允许对所有RDBMS使用标准方式调用存储过程。此转义语法有一个包含结果参数的形式和一个不包含结果参数的形式。如果使用结果参数,则必须将其注册为OUT型参数。其他参数可用于输入、输出或同时用于二者。参数是根据编号按顺序引用的,第一个参数的编号是1。{?=callprocedure-name[arg1,arg2,...]}{callprocedure-name[arg1,arg2,...]}IN参数值是使用从PreparedStatement中继承的set方法设置的。在执行存储过程之前,必须注册所有OUT参数的类型;它们的值是在执行后通过此类提供的get方法检索的。4.需要注意存储过程调用的方法。5.registerOutParameter的使用方法。voidregisterOutParameter(intparameterIndex,intsqlType)throwsSQLException按顺序位置parameterIndex将OUT参数注册为JDBC类型sqlType。所有OUT参数都必须在执行存储过程前注册。由sqlType指定的OUT参数的JDBC类型确定必须用于get方法来读取该参数值的Java类型。如果预期返回给此输出参数的JDBC类型是取决于此特定数据库的,则sqlType应该是java.sql.Types.OTHER。方法getObject(int)检索该值。参数:parameterIndex-第一个参数是1,第二个参数是2,依此类推。sqlType-java.sql.Types定义的JDBC类型代码。如果参数是JDBC类型NUMERIC或DECIMAL,则应使用接受标度值的那种。下面是一个具体的程序实例:/**Tochangethistemplate,chooseTools|Templates*andopenthetemplateintheeditor.*/packagegui.database;importjava.sql.*;importjava.util.logging.Level;importjava.util.logging.Logger;/****@authorzhfdai*/publicclassDBManager{publicstaticvoidmain(String[]args){finalStringDATABASE_NAME=jdbc:mysql://localhost:3306/test;finalStringUSER_NAME=root;finalStringPASSWORD=zhfdai;Connectionconnection;//为数据库建立的连接Statementstatement;//将执行的SQL语句CallableStatementcallable;//将执行的SQL存储过程try{Class.forName(org.gjt.mm.mysql.Driver);connection=DriverManager.getConnection(DATABASE_NAME,USER_NAME,PASSWORD);statement=connection.createStatement();/*创建时,先检查该数据库中该项是否已经存在。若存在,就删除。*/StringcheckTable=DROPTABLEIFEXISTStest.teacher;;statement.executeUpdate(checkTable);StringcreateTable=Createtabletest.teacher(namevarchar(20)notnullprimarykey,ageintnotnull);;statement.executeUpdate(createTable);StringcheckProcedure1=DROPPROCEDUREIFEXISTStest.queryall;statement.executeUpdate(checkProcedure1);StringcreateProcedure1=CREATEPROCEDUREtest.queryall()BEGINSELECT*FROMtest.teacher;END;statement.executeUpdate(createProcedure1);StringcheckProcedure2=DROPPROCEDUREIFEXISTStest.queryCount;statement.executeUpdate(checkProcedure2);StringcreateProcedure2=CREATEPROCEDUREtest.queryCount(OUTparamINT)BEGINSELECTCOUNT(*)INTOparamFROMtest.teacher;END;statement.executeUpdate(createProcedure2);Stringquery=queryall;callable=connection.prepareCall({call+query+});ResultSetrs=callable.executeQuery();System.out.println(Column:+rs.getMetaData().getColumnCount());System.out.println(Table:+rs.getMetaData().getTableName(1));StringqueryCount=queryCount(?);callable=connection.prepareCall({call+queryCount+});callable.registerOutParameter(1,Types.INTEGER);//设定参数的数据类型。callable.executeQuery();//获取参数所得值。introwCount=callable.getInt(1);System.out.println(Thenumberofrowsis+rowCount);}catch(SQLExceptionex){Logger.getLogger(DBManager.class.getName()).log(Level.SEVERE,null,ex);}catch(ClassNotFoundExceptionex){Logger.getLogger(DBManager.class.getName()).log(Level.SEVERE,null,ex);}}}
本文标题:MySql_数据库用java程序创建表以及存储过程
链接地址:https://www.777doc.com/doc-2889270 .html