>데이터 베이스 >MySQL 튜토리얼 >一个静态查询MySQL的例子&eclipse安装支持MySQL的JDBC驱动

一个静态查询MySQL的例子&eclipse安装支持MySQL的JDBC驱动

WBOY
WBOY원래의
2016-06-07 15:33:241358검색

JDBC:Java database connectivity,就是java如何连接数据库的。 一个静态查询的例子 import java.sql.*; public class test { static String driver = "com.mysql.jdbc.Driver" ; static String url = "jdbc:mysql://10.108.27.48/thunder" ; static String

JDBC:Java database connectivity,就是java如何连接数据库的。

一个静态查询的例子

<code><span>import</span> java.sql.*;

<span>public</span> <span><span>class</span> <span>test</span>
{</span>
    <span>static</span> String driver = <span>"com.mysql.jdbc.Driver"</span>;
    <span>static</span> String url = <span>"jdbc:mysql://10.108.27.48/thunder"</span>;
    <span>static</span> String username = <span>"thor"</span>;
    <span>static</span> String password = <span>"password"</span>;
    <span>static</span> String sql = <span>"SELECT * FROM user"</span>;
    PreparedStatement
    <span>public</span> <span>static</span> <span>void</span> <span>main</span>(String[] args)
    {
        Connection conn = <span>null</span>;
        Statement stmt = <span>null</span>;
        ResultSet rs = <span>null</span>;
        <span>try</span>
        {
            Class.forName(driver);
            System.out.println(<span>"驱动程序加载成功."</span>);
            conn = DriverManager.getConnection(url, username, password);
            System.out.println(<span>"数据库连接成功."</span>);
            stmt = conn.createStatement();
            System.out.println(<span>"语句建立成功."</span>);
            rs = stmt.executeQuery(sql);
            System.out.println(<span>"获取结果成功."</span>);
            <span>while</span> (rs.next())
            {
                String name = rs.getString(<span>"username"</span>);
                System.out.println(name);
            }
        } <span>catch</span> (Exception e)
        {
            e.printStackTrace();
        } <span>finally</span>
        {
            <span>try</span>
            {
                <span>if</span> (rs != <span>null</span>)
                    rs.close();
                <span>if</span> (stmt != <span>null</span>)
                    stmt.close();
                <span>if</span> (conn != <span>null</span>)
                    conn.close();
            } <span>catch</span> (Exception e)
            {
                e.printStackTrace();
            }
        }
    }
}
</code>

eclipse安装支持MySQL的JDBC驱动

下载MySQL支持JDBC的驱动程序,网址为http://dev.mysql.com/downloads/connector/j/。
打开下载得到的压缩包(mysql-connector-java-5.1.34.zip),将其中的Java包(mysql-connector-java-5.1.34-bin.jar),复制到某个目录下,以备加载驱动程序时使用。
将下载得到的MySQL驱动程序包(mysql-connector-java-5.1.34-bin.jar)添加到工程的Build path中。菜单Project->Properties,然后选择Java Build Path选项->Libraries选项卡,选中J2EE 1.3 Libraries,然后点击右方Add External JARs按钮。

乱七八糟

分三部分:不含参数的静态查询、含有参数的静态查询、获取元数据。
主要涉及四个类(或接口):DriverManager、Connection、Statement、ResultSet。
另外,PreparedStatement是Statement的派生类,SQLException是异常类。

描述
DriverManager 负责加载各种不同驱动程序,并根据不同的请求,向调用者返回相应的数据库连接。
Connection(接口) 数据库连接,负责与数据库进行通信,SQL执行以及事务处理都是在某个特定Connection环境下进行的。可以产生用以执行SQL的Statement对象。
Statement(接口) 用来执行不含参数的静态SQL查询和更新,并返回执行结果。
ResultSet(接口) 用来获得SQL查询结果。
PreparedStatement(接口) 用来执行包含参数的动态SQL查询和更新。
SQLException 代表在数据库连接的建立、关闭或SQL语句的执行过程中发生了异常。

类/接口的常用方法
一、DriverManager
public static Connection getConnection(String url, String user, String password);
public static Connection getConnection(String url);
建立JDBC驱动程序到指定数据库URL的连接。
MySQL的JDBC URL格式:
jdbc:mysql//[hostname][:port]/[dbname][?param1=value1][&param2=value2]….
示例:jdbc:mysql://localhost:3306/sample_db?user=root&password=your_password
常见参数:

参数 意义
user 用户名
password 密码
autoReconnect 联机失败,是否重新联机(true/false)
maxReconnect 尝试重新联机次数
initialTimeout 尝试重新联机间隔
maxRows 传回最大行数
useUnicode 是否使用Unicode字体编码(true/false)
characterEncoding 何种编码(GB2312/UTF-8/…)
relaxAutocommit 是否自动提交(true/false)
capitalizeTypeNames 数据定义的名称以大写表示

public static Driver getDrivers(String url);
返回url所指定的数据库连接的驱动程序。

二、Connection
Statement createStatement();
创建一个Statement对象用来将SQL语句发送到数据库。
Statement createStatement(int resultSetType, int resultSetConcurrency);
参数resultSetType指定结果集类型,有三个取值:
ResultSet.TYPE_FORWARD_ONLY表示只可向前移动记录指针;
ResultSet.TYPE_SCROLL_INSENSITIVE表示可双向移动记录指针,但不及时更新,也就是如果数据库里的数据修改过,并不在ResultSet中反映出来;
ResultSet.TYPE_SCROLL_SENSITIVE表示可双向移动记录指针,并及时跟踪数据库的更新,以便更改ResultSet中的数据。
参数resultSetConcurrency指定结果集的并发模式,有两个取值:
ResultSet.CONCUR_READ_ONLY表示不能用结果集更新数据库中的表;
ResultSet.CONCUR_UPDATABLE表示能用结果集更新数据库中的表。
PreparedStatement prepareStatement(String sql);
创建一个PreparedStatement对象来将具有参数的动态SQL语句发送到数据库。
void close();
断开连接,释放此Connection对象的数据库和JDBC资源。
boolean isClosed();
判断是否已经关闭。

三、Statement
ResultSet executeQuery(String sql);
执行给定的SQL语句,并将结果封装在结果集对象ResultSet中返回。
int executeUpdate(String sql);
执行 给定的SQL语句,该语句可能是INSERT、UPDATE、DELETE,或是不反悔任何内容的SQL语句(如DDL语句)。该语句的返回值表示受影响的行数(即更新计数)。
boolean execute(String sql);
执行SQL语句并指示第一个结果的形式(在某些情况下,单个SQL语句可能返回多个结果集或更新计数)。
ResultSet getResultSet(); <br> int getUpdateCount(); <br> boolean getMoreResults(); <br> void close();

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.