jdbc连接数据库,并查询,调用存储方法

package SQL;


import java.awt.event.ActionEvent;
import java.sql.CallableStatement;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
import java.util.Date;
import java.util.Scanner;


import javax.swing.JButton;
import javax.swing.JFrame;


public class SQL_STU {
static String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 加载JDBC驱动
// 连接服务器和数据库ServletUser
static String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=STU"; 
static String userName = "151"; // 默认用户名
static String userPwd = "17"; // 密码


public void connSQL(){//判断是否与数据库连接
Connection conn = null;
try {
Class.forName(driverName);
conn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("Connection Successful!"); // 如果连接成功
} catch (Exception e) {
e.printStackTrace();
}finally{
//进行资源的释放
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public void showSP(){//将SP表全部记录输出
Connection conn = null;
try{//查询语句
Class.forName(driverName);
conn = DriverManager.getConnection(dbURL, userName, userPwd);
String query="SELECT * FROM SP";// 创造SQL语句
Statement stmt1 =conn.createStatement();// 执行SQL语句
ResultSet rs=stmt1.executeQuery(query);
System.out.println("SNO PNO BALANCE" );


while(rs.next()){
System.out.println(rs.getString("SNO")+rs.getString("PNO")+rs.getInt("BALANCE") );
}
System.out.println("查询数据成功");
rs.close();
stmt1.close();
conn.close();
}catch(Exception e){


e.printStackTrace();
}

}


public void showSPJ(){//将SPJ表全部记录输出
Connection conn = null;
try{//查询语句
Class.forName(driverName);
conn = DriverManager.getConnection(dbURL, userName, userPwd);
String query="SELECT * FROM SPJ";// 创造SQL语句
Statement stmt1 =conn.createStatement();// 执行SQL语句
ResultSet rs=stmt1.executeQuery(query);
System.out.println("SNO PNO JNO  QTY" );


while(rs.next()){
System.out.println(rs.getString("SNO")+rs.getString("PNO")+""+rs.getString("JNO")+" "+rs.getInt("QTY") );
}
System.out.println("查询数据成功");
rs.close();
stmt1.close();
conn.close();
}catch(Exception e){


e.printStackTrace();
}

}



public void showOrders(){//将Orders表的全部记录输出
Connection conn = null;
try{//查询语句
Class.forName(driverName);
conn = DriverManager.getConnection(dbURL, userName, userPwd);
String query="SELECT * FROM Orders";// 创造SQL语句
Statement stmt1 =conn.createStatement();// 执行SQL语句
ResultSet rs=stmt1.executeQuery(query);
System.out.println("ONE SNO PNO JNO         OTIME        QUANTITY" );


while(rs.next()){
System.out.println(rs.getString("ONE")+rs.getString("SNO")+rs.getString("PNO")+""+rs.getString("JNO")
+"     "+ rs.getDate("OTIME") +"       "+ rs.getInt("QUANTITY") );
}
System.out.println("查询数据成功");
rs.close();
stmt1.close();
conn.close();
}catch(Exception e){


e.printStackTrace();
}
}
public void PTransfer() throws SQLException{//调用存储过程 PTransfer,给Orders表输入数据
Connection conn = null;
        CallableStatement callStmt = null; 
      try {  
  Class.forName(driverName);
conn = DriverManager.getConnection(dbURL, userName, userPwd);


          // 存储过程 PTransfer 其实是向数据库插入一条数据  
          callStmt = conn.prepareCall("{call PTransfer(?,?,?,?,?)}");  
          // 参数index从1开始,依次 1,2,3...  
Scanner in = new Scanner(System.in);
System.out.println("请输入ONE");
String testONE = in.next();
callStmt.setString(1, testONE);

System.out.println("请输入SN0");
String testSNO = in.next();
callStmt.setString(2, testSNO);

System.out.println("请输入PN0");
String testPNO = in.next();
callStmt.setString(3, testPNO);

System.out.println("请输入JN0");
String testJNO = in.next();
callStmt.setString(4, testJNO);

System.out.println("请输入QUANTITY");
   int testQTY = in.nextInt();
callStmt.setInt(5, testQTY);
          


          callStmt.execute();  
          System.out.println("-------  Test End.");  
      } catch (Exception e) {  
          e.printStackTrace(System.out);  
      } finally {  
if (callStmt != null) {  
              callStmt.close();  
          }  
          if (conn != null) {  
              conn.close();  
          }  
      } 

}



public static void main(String[] args) throws SQLException {
SQL_STU sql = new SQL_STU();
sql.connSQL();
// sql.showOrders();
sql.showSP();
//创建gui 有5个文本框输入数据 三个文本框输出sp spj orders表 并有两个按钮 一个确定一个退出



}





}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBC是Java数据库连接的缩写,它是一组用于操作数据库的Java API。JDBC提供了一种标准的方式来连接和操作各种关系型数据库,包括Oracle、MySQL、SQL Server等。 JDBC可以通过调用存储过程来执行数据库操作,存储过程是一组预先编译好的SQL语句,可以在需要的时候被调用。在JDBC中,可以通过以下步骤来调用存储过程: 1. 创建CallableStatement对象,该对象用于调用存储过程。 2. 设置存储过程的参数,包括输入参数、输出参数和返回值。 3. 执行存储过程,并获取输出参数和返回值。 下面是一个调用存储过程的示例代码: ``` String sql = "{call my_proc(?, ?, ?)}"; CallableStatement stmt = conn.prepareCall(sql); stmt.setInt(1, 100); stmt.setString(2, "John"); stmt.registerOutParameter(3, Types.INTEGER); stmt.execute(); int result = stmt.getInt(3); ``` 除了调用存储过程,JDBC还可以处理数据库事务。事务是一组相关的数据库操作,要么全部执行成功,要么全部回滚到之前的状态。在JDBC中,可以通过以下步骤来处理数据库事务: 1. 关闭自动提交模式,这样每个SQL语句就不会自动提交到数据库。 2. 开始事务,即调用Connection对象的beginTransction()方法。 3. 执行一组SQL语句。 4. 如果所有的SQL语句都执行成功,就调用Connection对象的commit()方法提交事务。 5. 如果任何一个SQL语句执行失败,就调用Connection对象的rollback()方法回滚事务。 下面是一个处理数据库事务的示例代码: ``` try { conn.setAutoCommit(false); stmt1.executeUpdate(); stmt2.executeUpdate(); conn.commit(); } catch (SQLException e) { conn.rollback(); } finally { conn.setAutoCommit(true); } ``` 在这个示例中,stmt1和stmt2是两个SQL语句,如果它们都执行成功,就提交事务。如果任何一个SQL语句执行失败,就回滚事务。最后,要记得将自动提交模式重新设置为true。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值