JDBC简单入门_JDBC小例子

JDBC是什么

JDBC就是相当于一个数据库的管家,不管是何种数据库,MySQLOracle
等数据库,都可以通过JDBC来统一对各种不同的数据库进行操作。这就相当方
便了,这时,你就不必为每个数据库程序写一个专门的程序进行连接、操作等,
这都可以通过JDBC来完成。也是体现了java ”一次编写到处运行“的特性。

在程序中连接上数据库

我的笔记本使用的是MySQL的数据库,就使用MySQL来说明。
首先,要连上数据库,你在电脑上应该已经安装好了MySQL,点击这里下载进行安装即可。这里就不赘述了。

首先,要在程序中连接数据库对其进行操作,我们还需要下载驱动Connector/J 5.1.40,现在的版本是5.1.40,。我们在程序中要使用这个驱动进行数据库的连接。把下载的压缩文件解压放到当前目录,使用IDE(这里使用的是Eclipse)来新建一个项目,在新建一个类MySQLDemo,建好之后,再引入刚刚解压的文件里的jar包。建好的工程目录如下:
工程目录

其中`Referenced Libraries里面的就是引入的`JDBC`驱动

贴的代码如下
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class MySQLDemo {

    // JDBC 驱动名及数据库 URL
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
    static final String DB_URL = "jdbc:mysql://localhost:3306/school";


    // 数据库的用户名与密码,需要根据自己的设置
    static final String USER = "root";
    static final String PASS = "toor";

    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        try{
            // 注册 JDBC 驱动
            //把Driver类装载进jvm
            Class.forName("com.mysql.jdbc.Driver");

            // 打开链接
            System.out.println("连接数据库...");
            conn = (Connection) DriverManager.getConnection(DB_URL,USER,PASS);

            // 执行查询
            System.out.println(" 实例化Statement对...");
            stmt = (Statement) conn.createStatement();
            String sql;
            sql = "SELECT id, name, math, english, chinese, phone FROM score";
            ResultSet rs = stmt.executeQuery(sql);

            while(rs.next()){
                // 通过字段检索
                int id  = rs.getInt("id");
                String name = rs.getString("name");
                int math = rs.getInt("math");
                int chinese = rs.getInt("chinese");
                int english = rs.getInt("english");
                String phone =rs.getString("phone");
                // 输出数据
                System.out.print("ID: " + id);
                System.out.print(", 名字: " + name);
                System.out.print(", 数学: " + math);
                System.out.print(", 语文: " + chinese);
                System.out.print(",英语: " + english);
                System.out.print(", 手机号码:" + phone);
                System.out.print("\n");
            }
            String inert = "insert into score (name, math, chinese, english,phone) values(\"jom\", 100, 90, 78, \"1238649798\")";
            int i = stmt.executeUpdate(inert);
            // 完成后关闭
            rs.close();
            stmt.close();
            conn.close();
        }catch(SQLException se){
            // 处理 JDBC 错误
            se.printStackTrace();
        }catch(Exception e){
            // 处理 Class.forName 错误
            e.printStackTrace();
        }finally{
            // 关闭资源
            try{
                if(stmt!=null) stmt.close();
            }catch(SQLException se2){
            }// 什么都不做
            try{
                if(conn!=null) conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
        }
        System.out.println("Goodbye!");
    }
}

首先,定义了两个静态常量来保存数据库的DB_URL和数据库驱动字符串JDBC_Driver
JDBCURL格式如下:

jdbc:mysql://[host]
[:port]/[database]
[?propertyName1][=propertyValue1]
[&propertyName2][=propertyValue2]…

如果使用 MySQL数据库,前面都写jdbc:mysql://这一句,是不变的,后面再接要连接的主机名,如果是在自己机子上连接,写localhost即可,后面在写一个:,在写端口号,一般都是3306,然后写一个/,在写数据库的名称。这里我使用的数据库名称是school。如果你对数据库还不太懂,没有一些基本概念,那么你可以看看我前面写的数据库的文章:传送门
对于数据库的URL,这个是固定的,可以就那么写。上面的语句都是有注释的,就不多说。

消除警告

在上面的代码运行之后,可以可以正确得出结果,但是会发现有一条长长的红色的字体,看图:
Warning
清晰的看到一条红色看不到头的警告,警告大致意思就是没有服务器验证就连接SSL,你这样,服务器不推荐你这么干。那么,知道了意思,我们如何消除呢?这就要看JDBCURL格式了,这个格式,我们还没说完,在前面所讲解的基础上,再加一个?,再跟上一些属性,也就完整了。由URL格式可以看出属性是”属性名=属性值”的键值对。这些属性不是我们自定义的,具体可以查看这个教程。这里我们要消除警告只要在DB_URL变量值后面加个字符串

?useUnicode=true&characterEncoding=utf-8&useSSL=false

即可。
NoWarning,在运行,就没有警告了。
改过之后的变量:
!NoWarning](https://img-blog.csdn.net/20161202124615605)

以上就是JDBC的简单说明,关于具体用到的类,以后在慢慢说明。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章