JDBC中Statement,PreparedStatement,CallableStatement三个方法的实例

public void ListStudents() throws SQLException{
 int i, NoofColumns;
 String StNo, StFName, StLName;
 //初始化并加载JDBC-ODBC驱动程序
 Class.forName("jdbc.odbc.JdbcOdbcDriver");
 //创建连接对象
 Connection Ex1Con = DriverManager.getConnection("jdbc:odbc:StudentDB";uid="admin";pw="sa");
 //创建一个简单的Statement对象
 Statement Ex1Stmt = Ex1Con.createStatement();
 //创建SQL串,传送到DBMS并执行SQL语句
 ResultSet Ex1rs = Ex1Stmt.executeQuery("SELECT StudentID, FirstName, LastName FROM Students");
 //处理每一个数据行,直到不再有数据行
 System.out.println("Student Number   First Name   Last Name");
 while(Ex1rs.next()){
 //将列值保存到java变量中
 StNo = Ex1rs.getString(1);
 StFName = Ex1rs.getString(2);
 StLName = Ex1rs.getString(3);
 System.out.println(StNo, StFName, StLName);
 }
}
public void UpdateStudentName(String StFName, String StLName, String StNo) throws SQLException, ClassNotFoundException
{
 int RetValue;
 //初始化并加载JDBC-ODBC驱动程序
 Class.forName("jdbc.odbc.JdbcOdbcDriver");
 //创建连接对象
 Connection Ex1Con = DriverManager.getConnection("jdbc:odbc:StudentDB";uid="admin";pw="sa");
 //创建一个简单的Statement对象
 Statement Ex1Stmt = Ex1Con.createStatement();
 //创建SQL串,传送到DBMS并执行该SQL语句
 String SQLBuffer = "UPDATE Students SET FirstName = " +
 StFName + ",LastName = " + StLName +
 "WHERE StudentNumber = " + StNo;
 RetValue = Ex1Stmt.executeUpdate(SQLBuffer);
 System.out.println("Updated" + RetValue + "rows in the Database.");
}
//使用PreparedStatement改进实例
//Declare class variables
Connection Con;
PreparedStatement PrepStmt;
boolean Initialized = false;
public void InitConnection() throws SQLException, ClassNotFoundException{
 //Initialize and load the JDBC-ODBC driver.
 Class.forName("jdbc.odbc.JdbcOdbcDriver");
 //Make the connection object.
 Con = DriverManager.getConnection("jdbc:odbc:StudentDB";uid="admin";pw="sa");
 //Create a prepared Statement object.
 PrepStmt = Con.prepareStatement("SELECT ClassName, Location, DaysAndTimes FROM Classes WHERE ClassName = ?");
 Initialized = true;
}
public void ListOneClass(String ListClassName) throws SQLException, ClassNotFoundException{
 int i, NoOfColumns;
 String ClassName, ClassLocation, ClassSchedule;
 if(!Initialized){
 InitConnection();
 }

 //Set the SQL parameter to the one passed into this method
 PrepStmt.setString(1, ListClassName);
 ResultSet Ex1rs = PrepStmt.executeQuery();
 //Process each row until there are no more rows and display the results on the console.
 System.out.println("Class Location Schedule");
 while(Ex1rs.next()){
 ClassName = Ex1rs.getString(1);
 ClassLocation = Ex1rs.getString(2);
 ClassSchedule = Ex1rs.getString(3);
 System.out.println(ClassName,ClassLocation,ClassSchedule);
 }
}
//使用CallableStatement显示成绩
//预先定义好的存储过程的调用形式为:studentGrade = getStudentGrade(StudentID, ClassID)
public void DisplayGrade(String StudentID, String ClassID) throws SQLException
{
 int Grade;
 //Initialize and load the JDBC-ODBC dirver.
 Class.forName("jdbc.odbc.JdbcOdbcDriver");
 //Make the connection object;
 Connection Con = DriverManager.getConnection("jdbc:odbc:studentDB";uid="admin";pw="sa");
 //Create a Callable Statement object;
 CallableStatement CStmt = Con.prepareCall({? = call getStudentGrade[?,?]});

 //Now tie the placeholders with actual parameters.
 //Register the return value from the stored procedure
 //as an integer type so that the driver knows how to handle it.
 //Note the type is defined in the java.sql.Types.
 CStmt.registerOutParameter(1,java.sql.Types.INTEGER);

 //Set the In parameters (which are inherited from the PreparedStatement class)
 CStmt.setString(1,StudentID);
 CStmt.setString(2,ClassID);

 //Now we are ready to call the stored procedure

 int RetVal = CStmt.excuteUpdate();

 //Get the OUT Parameter from the registered parameter
 //Note that we get the result from the CallableStatement object
 Grade = CStmt.getInt(1);

 //And display the results on the console;
 System.out.println("The Grade is:" + Grade);
}

时间: 2024-11-01 10:09:24

JDBC中Statement,PreparedStatement,CallableStatement三个方法的实例的相关文章

Java的JDBC中Statement与CallableStatement对象实例_java

JDBC Statement对象实例以下是利用以下三种查询以及打开和关闭说明的例子: boolean execute(String SQL) : 返回一个布尔值true,如果ResultSet对象可以被检索,否则返回false.使用这个方法来执行SQL DDL语句,或当需要使用真正的动态SQL. int executeUpdate(String SQL) : 返回受影响的SQL语句执行的行数.使用此方法来执行,而希望得到一些受影响的行的SQL语句 - 例如,INSERT,UPDATE或DELET

详解Java的JDBC中Statement与PreparedStatement对象_java

一旦获得一个连接,我们可以与数据库进行交互.在JDBC Statement, CallableStatement 和 PreparedStatement 接口定义的方法和属性,使可以发送SQL或PL/SQL命令和从数据库接收数据. 它们还定义方法,帮助Java和数据库使用SQL数据类型之间转换数据的差异. 下表提供了每个接口的用途概要,了解决定使用哪个接口 Statement 对象: 创建Statement对象在可以使用Statement对象执行SQL语句,需要使用Connection对象的cr

excel表格中隔行选取的三种方法

  excel表格中隔行选取的三种方法          有一个excel表格,需要隔N行选取.可能是隔一行,也可能是隔2行.3行. 常见的隔行选取有两种方法: 一.按ctrl键不松用鼠标逐行选取.如果需要选取的行数多,会累死人的. 二.在辅助设置公式或输入字符 - 设置筛选模式 - 筛选 - 选取 - 取消筛选模式.如果是隔列选取,这种方法就不能用了. 除了以上两种外,本文小编新发现一种新的隔行选取方法,估计绝大部分同学都没见过. 步骤1:在H3中输入公式 =A3:F3,再选取H2:H3向下复

实现PPT中局部虚化效果的三种方法

实现PPT中局部虚化效果的三种方法   下面请看实现PPT中局部虚化效果的三种方法 方法一.图片复制两份,选择图片,在格式中选择虚化,具体方法如下图所示. 方法二.用美图秀秀打开图片,在美化里面选择"背景虚化",具体方法如下图所示. 方法三.理论上讲与上面两个是重叠的,但分开将更容易理解,具体操作方法见下图. 局部虚化效果如下图所示.

JavaScript中定义函数的三种方法

 这篇文章主要介绍了JavaScript中定义函数的三种方法,本文直接给出代码实现,同时给出了构造函数的相关知识,需要的朋友可以参考下     在JavaScript的世界里,定义函数的方法多种多样,这正是JavaScript灵活性的体现,但是正是这个原因让初学者摸不着头脑,尤其对于没有 语言基础的同学.正所谓条条大道通罗马,但是如果道路太多,会让行路者不知所措,因为不知道走那条路才是正途,呵呵,废话一大篇,闲言少叙,先看代码: 代码如下: /*第一种方法,使用function语句,格式如下*/

jdbc查询数据库的方法-jdbc中数据库查询我的那个方法更好?有更好的办法吗?求大神指点

问题描述 jdbc中数据库查询我的那个方法更好?有更好的办法吗?求大神指点 /* 查询数据库表t1中的数据/public void select() { //连接数据库 getDBCconnect(); try { //sql语句 String sql=""select * from t1 where id=1""; //创建要执行sql语句的对象 sta= con.createStatement(); //执行sql语句并将得到的结果放到结果集中 ResultSe

Android中使用定时器的三种方法_Android

本文实例为大家分享了Android中使用定时器的三种方法,供大家参考,具体内容如下 图示: 因为都比较简单,所以就直接贴代码(虑去再次点击停止的操作),有个全局的Handler负责接收消息更新UI 第一种方法:Thread.sleep();方法 Runnable runnable = new Runnable() { @Override public void run() { while (true) { mHandler.sendEmptyMessage(0); try { Thread.sl

C#在Winform中改变Textbox高度三种方法

原文 C#在Winform中改变Textbox高度三种方法 最近在做C# Winform项目,需要有一个能动态调整大小的Textbox,并且要是单行的.试了几次,单行模式的Textbox不能直接改高度.于是搜索了一下,整理出几个改变高度的方法. 1.将Textbox改为多行模式,设置MutliLine属性为True,然后屏蔽Enter键. private void txtTest_KeyDown (object sender, KeyEventArgs e) { if ((int)e.KeyCo

Word文档在方框中打勾的三种方法

文档在方框中打勾的三种方法-word文档中方框内打勾"> 方法一 点击"插入→符号→其他符号",打开"符号"窗口,在"子集"处选中"数学运算符",然后选中"√",点击"插入"按钮即可.再选中"√",在"开始"菜单中"字体"中点击"带圈字符○字"工具,打开带圈字符窗口,选择"□&quo