JDBC就是相当于一个数据库的管家,不管是何种数据库,MySQL、Oracle 等数据库,都可以通过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。 JDBC的URL格式如下:
jdbc:mysql://[host] [:port]/[database] [?propertyName1][=propertyValue1] [&propertyName2][=propertyValue2]…
如果使用 MySQL数据库,前面都写jdbc:mysql://这一句,是不变的,后面再接要连接的主机名,如果是在自己机子上连接,写localhost即可,后面在写一个:,在写端口号,一般都是3306,然后写一个/,在写数据库的名称。这里我使用的数据库名称是school。如果你对数据库还不太懂,没有一些基本概念,那么你可以看看我前面写的数据库的文章:传送门。 对于数据库的URL,这个是固定的,可以就那么写。上面的语句都是有注释的,就不多说。
在上面的代码运行之后,可以可以正确得出结果,但是会发现有一条长长的红色的字体,看图: 清晰的看到一条红色看不到头的警告,警告大致意思就是没有服务器验证就连接SSL,你这样,服务器不推荐你这么干。那么,知道了意思,我们如何消除呢?这就要看JDBC的URL格式了,这个格式,我们还没说完,在前面所讲解的基础上,再加一个?,再跟上一些属性,也就完整了。由URL格式可以看出属性是”属性名=属性值”的键值对。这些属性不是我们自定义的,具体可以查看这个教程。这里我们要消除警告只要在DB_URL变量值后面加个字符串
?useUnicode=true&characterEncoding=utf-8&useSSL=false
即可。 ,在运行,就没有警告了。 改过之后的变量: !NoWarning](https://img-blog.csdn.net/20161202124615605)
以上就是JDBC的简单说明,关于具体用到的类,以后在慢慢说明。