zoukankan      html  css  js  c++  java
  • JSP Web开发入门系列(一)JDBC基础

               我从.net转到java平台多少有些不同,仅以这个开发入门系列是个人自学的记录。第一篇主要是利用jdbc连接数据库和执行sql查询语句。 

              开发环境:winXPsp3+JDK1.6+MyEclipse7.5+MySql5.1.

             具体的jdk环境配置就不写了,至于JDBC for MySQL的配置也是非常简单的。只要将Mysql的JDBC驱动程序下载解压,再在MyEclipse工程中添加mysql-connector-java-5.1.13-bin.jar。如下图:

        

          在搭建好环境后,我们来了解下JDBC,它是一种基于java的数据库访问接口,提供了查询,更新数据库的方法。JDBC的实现依赖于数据库厂商提供符合JDBC规范的驱动程序。有许多持久化的框架是基于JDBC的,如著名的Hibernate。“裸用”JDBC只是为了熟悉一下java体系,理解一下技术原理。

           其实操作数据库都是四个步骤:

           1.读入数据库驱动。当然在windows的时候这一步是不用做的。但是我们使用的JDBC是需要通过代码来读入数据库驱动:

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

         2.建立数据库连接。要在代码中提供包括:数据库服务器名(IP地址,域名或者机器名),端口(可以默认),数据库名,用户名,密码这五类信息,才成功连接数据库。

    //mysql_jdbc 驱动默认不支持多结果集,需要添加allowMultiQueries=true;
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/viki?characterEncoding=UTF8&allowMultiQueries=true","root","9527");

         在我的代码中数据库名是:viki,用户名是:root,密码是:9527. 至于allowMultiQueries这行字符将在下面讲到。

        3.创建或者获得数据操作对象。在获得该对象后,我们就可以对数据库进行查询,修改和执行存储过程。

    //创建statement对象
    Statement stat =conn.createStatement();

    4.显式关闭数据连接,关闭数据库。

    //显式关闭数据连接
    stat.close();
    conn.close();

         在网上经常有帖子询问:为什么不能在java中执行多条sql语句?这个问题需要回到第二步,只要在连接mysql数据库的字符串上allowMultiQueries=ture就能够轻松将其地解决。(另外一种方法是使用statement的addbatch方法来实现。)

          下面贴出基于JDBC,使用多条sql语句来操作数据库,实现数据库查询的完整实例代码。

          

    代码
    package JDBCTest;

    import java.sql.*;

    publicclass ResultFromExcute {

    /**
    *
    @param args
    */
    publicstaticvoid main(String[] args) throws Exception {
    // TODO Auto-generated method stub
    Class.forName("com.mysql.jdbc.Driver");
    //mysql_jdbc 驱动默认不支持多结果集,需要添加allowMultiQueries=true;
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/viki?characterEncoding=UTF8&allowMultiQueries=true","root","9527");
    Statement stat
    =conn.createStatement();

    //执行两句sql语句
    String selectData ="SELECT * FROM test;"+"SELECT * FROM pet";
    if(stat.execute(selectData))
    {
    ResultSet result
    =null;
    do
    {
    //依次获得执行两条select语句的resultset
    result = stat.getResultSet();

    while(result.next())
    {
    //System.out.println(result.getString(2)+" ");
    System.out.println(result.getString("name"));
    ………………
    }
    }
    while(stat.getMoreResults());

    }

    }

    }
  • 相关阅读:
    System.Xml.XmlException: There is no Unicode byte order mark. Cannot switch to Unicode.
    ClientSide Cookie Management optanoncategoryC0004
    How is OAuth 2 different from OAuth 1?
    Why OAuth 1.0a?
    Converting PKCS#12 certificate into PEM using OpenSSL
    OneTrust Cookie AutoBlocking™
    Ruby on rails开发从头来(windows)(二十二)测试Controller
    Ruby on rails开发从头来(windows)(十九)测试开始
    Ruby on rails开发从头来(windows)(十五)添加用户
    Ruby on rails开发从头来(windows)(十六)登录
  • 原文地址:https://www.cnblogs.com/ventlam/p/1837856.html
Copyright © 2011-2022 走看看