JDBC编程步骤与执行SQL语句的方式

本文详细介绍了JDBC编程的六个步骤,包括加载数据库驱动、获取连接、创建Statement对象等,并讨论了执行SQL语句的不同方法,如execute()、executeUpdate()和executeQuery()。此外,还强调了PreparedStatement的优势,如预编译、性能提升和防止SQL注入。
摘要由CSDN通过智能技术生成

(1)JDBC编程步骤:
第一步:加载数据库驱动。通常使用Class类的forName()静态方法来加载驱动:
//加载驱动
Class.forNamed(DriverClass);
其中DriverClass就是数据库驱动类所对应的字符串。例如,加载MySQL的驱动代码如下
//加载MySQL驱动
Class.forName(“com.mysql.jdbc.Driver”);

第二步:通过DriverManager获取数据库连接,DriverManager提供了如下方法:
//获取数据库连接
DriverManager.getConnection(String url,String user,String pass);

第三步:通过Connection对象创建Statement对象。Connection创建Statement的方法有三个:
**createStatement() 创建基本的Statement对象
**prepareStatement(String sql) 根据传入的sql语句创建预编译的Statement对象
**prepareCall(String sql) 根据传入的sql语句创建CallableStatement对象

使用Statement执行SQL语句。所有的Statement都有以下三个方法来执行SQL语句:
****excute() : 可以执行任何SQL语句,但是比较麻烦
****excuteUpdate() 主要用于执行DDL和DML语句,执行DML语句返回受SQL语句影响的行数,执行DDL语句返回0
****excuteQuary() 只能执行查询语句,执行后返回代表查询结果的ResultSet对象。

第五步:操作结果集
如果执行的SQL语句是查询语句,则执行结果将返回一个ResultSet对象,该对象里保存跑SQL语句的查询结果。程序可以通过操作该ResultSet对象来取出查询结果。ResultSet对象提供了如下两类方法:
**next() previous() first() last() beforeFirst() afterLast() absolute() 等移动记录指针的方法
**getXxx()方法获取记录指针指向行 特定列的值,该方法既可以使用列索引作为参数,也可以使用列名作为参数。使用列索引做参数的性能更好,使用列名的可读性更好。

第六步:回收数据库资源,包括关闭ResuleSet,Statement和Connection等资源。

简单的JDBC编程程序;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ConnectionMysql {
   
     public static void main(String[]  args)
     throws Exception
     {

                //使用DriverManager获取数据库连接,其中返回的connection就代表Java金额数据库的连接
                Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "root");
                //使用Connection来创建一个Statement对象
                Statement  stmt =conn.createStatement();
                //执行SQL语句

                ResultSet  rs=stmt.executeQuery("select  s. *,teacher_name"+"from  student_table  s,teacher_table t"
                +"where t.teacher_id=s.java_teacher");
                {
//ResultSet有一系列的getXxx()方法,用于获取记录指针指向特定行、列的值,不断的用next()方法将指针移动到下一行,如果移动之后记录指针依然
//指向有效行,则next()方法返回true
                     while(rs.next()){
                          System.out.println(rs.getInt(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t"+rs.getString(4));
                     }
                }


     }
}

//本程序可以使用自动关闭资源的try语句来关闭各种数据库资源,Java7改写了Connection Statement ResultSet等接口,他们都继承了AutoCloseable接口,因此他们都有可以用try语句来关闭。

————————————————————————————————————————
执行SQL语句的方式:JDBC不仅可以实现查询,也可以实现DDL、DML等语句。
(1)实例:下面程序使用excuteUpdate()方法(没有使用excuteLargeUpdate(),因为目前MySQL驱动还不支持),来创建数据表,该实例并没有把数据库连接信息写在程序里,而是使用一个mysql.ini文件(properties文件)来保存数据库连接信息,这是比较成熟的做法–当需要将应用程序从开发环境移到生产环境时,无需修改源代码,只需要修改mysql.ini文件即可。

import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.Properties;
public class ExecuteDDL {
   
     String driver;
     String url;
     String user;
     String  pass;


     public void initParam(String  paramFile)
                throws Exception
     {
           //使用Propertics类来加载属性文件
           Properties  pro=new  Properties();
           pro.load(new FileInputStream(paramFile));

           driver=pro.getProperty(driver);
           url=pro.getProperty(url);
           user=pro.getProperty(user);
           pass=pro.getProperty(pass);

     }

     public void createTable(String  sql) 
     throws Exception{
           
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值