zoukankan      html  css  js  c++  java
  • JDBC连接数据库的过程

    以连接MySQL为例:

    (1)加载MySQL数据库连接的驱动程序。到MySQL官网下载该驱动程序jar包,然后把包复制到WEB-INF/lib目录下,则JDBC会调用Class.forName()方法,将制定的类加载到JVM中:

    Class.forName("com.mysql.jdbc.Driver");

    (2)设置访问数据库的用户名、密码及连接URL。基本格式是:JDBC协议+数据库的IP地址+数据库端口号+数据库名:

    String user = "root";
    String pwd = "111";
    String url = "jdbc:mysql://localhost:3306/db_database07";

    (3)通过JDBC API的DriverManager的getConnection()的方法创建与数据库之间的连接,该方法需要上步中定义的三个参数:

    Connection conn = DriverManager.getConnection(url, user, pwd);

    (4)建立连接后,使用该连接对象conn创建用户操作SQL语句的Statement对象。创建Statement对象用createStatement()方法;或者用Connection对象创建PrepareStatement对象来执行SQL语句,使用的是prepareStatement()方法:

    Statement st = conn.createStatement();
    //或者用prepareStatement对象
    PreparedStatement pst = conn.prepareStatement("select * from tb_user");

    (5)调用Statement对象的execute()方法,编译执行sql语句:

    String sql = "update from tb_user set age=30 where userId=1";
    st.execute(sql);

    (6)关闭数据库连接。数据库用完后要及时关闭与数据库之间的连接,释放系统资源。

    conn.close();

    具体实例:

    public static Connection getMySQLCon(){
        Connection con = null;
        try{
           Class.forName("com.mysql.jdbc.Driver");
    String user = "root";
    String pwd = "111";
    String url = "jdbc:mysql://localhost:3306/db_databanse07";
    con = DriverManageer.getConnection(url, user, pwd);
       } catch(Exception e){
    e.printStackTrace();
    }
    return con;
    }

    JDBC核心API:

        JDBC核心API主要包括5个接口:代表数据库连接的Connection接口、驱动程序管理类DriverManager、执行SQL语句的Statement接口、预编译SQL语句的PreparedStatement接口,预编译SQL语句的PreparedStatement接口、结果集ResultSet接口。

    PreparedStatement VS Statement

        在程序中,最好使用PreparedStatement对象,因为它使程序具有良好的可维护性和可读性;PreparedStatement对象预编译SQL语句可以提高程序的性能,而Statement对象的SQL语句每次执行都需要编译,可以提高程序的安全性。

    PreparedStatement中SQL语句的预编译是怎么执行的?

        PreparedStatement在执行第一次编译后,将SQL语句存放在数据库中,类似于key-value对应的方式存储,当下一次将同样的SQL语句发送到数据库时,如果数据库查找到有相应的key存在,则直接调用编译过的SQL,避免了重复编译语句的过程,从而提高数据库性能。 

  • 相关阅读:
    (转)学习笔记viewController(欢迎指错)
    配置Xcode版本控制SVN详细步骤内含解决Xcode/Mac OS10.8无法配置SVN的解决方法(转)
    iPhone 3G/3GS(有锁)基带与导航功能
    [转]Iphone 3G/3Gs Home键失灵的根本原因和解决方法
    NSDate的常用用法(转)
    短信操作(转)
    如何在Symbian SDK下使用GCCE4(转)
    nS60_sdk_v1_2的VC6问题(转)
    如何获取应用程序图标(转)
    如何实现圆角的UITextView iphone短信发送(非系统界面)
  • 原文地址:https://www.cnblogs.com/little-YTMM/p/4481486.html
Copyright © 2011-2022 走看看