22---数据库编程04(JDBC操作步骤)

本文详细介绍了如何使用Java连接数据库的过程,包括加载数据库驱动、建立连接、执行操作及关闭连接等步骤。特别强调了驱动的重要性及其注册机制。
 

因为不同的数据库实现的方式不同所以我们得需要数据库开发商提供的数据库的驱动;
然后连接数据库;
然后进行数据库的操作;
因为数据库的资源有限,所以一定要关闭数据库连接。
下载驱动jar包,放到D:盘,并将该目录加载到classpath中;
通过Class.forName(包.类名称)加载驱动---反射机制;

java连接数据库时为什么要加载数据库驱动?
 其实数据库驱动和别的驱动性质一样,数据库这个产品不是用java实现的,但是如果想
 被java所使用则必须让java能用,这是驱动就产生了,驱动就是启动一个过渡的作用;
 所以java想去连接数据库就必须加装该数据库的驱动--Class.forName(...);
 又因为数据库种类繁多不断更新,所以这样java只需提供个接口即可,不同的数据库生产商
 按照该结构的要求去实现、创建数据库驱动就行了;
 所以java就提供了一个DriverManager类来充当与驱动链接的接口;

数据库驱动又是怎么跟DriverManager这个类联系到的呢?
 Class.forName(包.类名称)利用反射机制创建了一个Class对象,而该驱动程序有个静态代码块
 这样加载驱动时,jvm就在内存中为该静态代码块开辟了空间,而该静态代码块中有个
   public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    // ~ Static fields/initializers
    // --------------------------------------------- //
    // Register ourselves with the DriverManager
    //   
    static {
       try {
                 java.sql.DriverManager.registerDriver(new Driver());
             } catch (SQLException E) {
                 throw new RuntimeException("Can't register driver!");
             }
     }
   // ~ Constructors
    // -----------------------------------------------------------   
   /** *//**//**
     * Construct a new driver and register it with DriverManager
     *
     * @throws SQLException
     *             if a database error occurs.
     */
    public Driver() throws SQLException {
        // Required for Class.forName().newInstance()   
    }
   } 这样该驱动就注册到了DriverManager这个类上了;
   
  
java连接数据库就是为了取得与数据库的连接:
 DriverManager提供了一个方法可以得到与数据库的连接;


MySQL数据库的连接地址格式:
jdbc:mysql://ip地址:端口号/数据库名称

 

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
public class Demo{
 //定义数据库的驱动程序
 //下面的包.类名称要根据驱动jar中Driver.class来定,不同点jar不一样
 public static final String DBDRIVER="org.gjt.mm.mysql.Driver";
 //定义数据库的连接地址:
 public static final String DBURL="jdbc:mysql://localhost:3306/lid";
 //定义数据库的用户名
 public static final String DBUSER="root";
 //定义数据库的密码
 public static final String DBPASSWORD="123";
 public static void main(String args[]){
  Connection conn=null;
  try{
   //加载数据库驱动
   Class.forName(DBDRIVER);//创建一个该驱动类的Class对象;
   }
  catch(ClassNotFoundException e){
   e.printStackTrace();
   }
  try{
   conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
   }
  catch(SQLException e){
   e.printStackTrace();
   }
  System.out.println(conn);//如果可以打印说明连接成功
  try{
   conn.close();
   }
  catch(SQLException e){
   e.printStackTrace();
   }
   
  }
 }


 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bzuld

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值