使用JDBC对MySQL数据库进行增、删、改、查等操作

来源:互联网 发布:仙女下凡无人知 编辑:程序博客网 时间:2024/05/16 08:35

在使用JDBC连接数据库前我们导入数据库驱动包,可按如下步骤进行。
复制驱动程序文件“mysql-connector-java-5.1.39-bin.jar”,在项目上单击鼠标右键并在弹出菜单中选择“粘贴”选项,就把驱动程序复制到这个项目中。这里写图片描述
在这个jar文件上单击鼠标右键,在弹出的菜单中依次选择“Build Path”、“Add to Build Path”项,将这个jar文件加入到Build Path中。至此准备工作已做好。这里写图片描述

接下来就是连接数据库了。。。

1.加载JDBC驱动程序;
由于驱动只需加载一次,通常加载驱动放在静态初始化代码块中执行,如(static {加载驱动的代码})。

String d="com.mysql.jdbc.Driver";//将驱动名用字符串d来表示Class.forName(d);

在加载驱动时应注意驱动名是否正确,如果驱动名不存在会抛出ClassNotFoundException异常。如下图所示
注:自从JDK6之后,JDBC升级到4.0,其中一个特性是自动加载java.sql.Driver,不需要再手动调用class.forName来加载驱动。但建议对其加载驱动要了解。

2.建立数据库连接;
在加载完驱动后就可以调用java.sql.DriverManager类中的getConnection方法来建立连接数据库。

String url="jdbc:mysql://localhost:3306/for0308";//指定数据库的连接字符串String user="root";//数据库用户名String password="root";//用户名密码Connection conn=null;conn=DriverManager.getConnection(url,user,password);

getConnection有很多重载方法,可以去查看相关API帮助文档。
在这里可能会抛出异常java.sql.SQLException异常。这是用户名密码错误时抛出的异常
对于url和user发生的异常就不一一展示,读者可以自行尝试。

3.获得Statement对象,执行SQL语句;
成功建立数据库连接后,通过连接对象提供的createStatement方法创建Statement对象来将SQL语句发送到数据库。

Statement stat=conn.createStatement();

我们可以使用Statement对象来调用execute,executeQuery,executeUpdate方法对数据库进行操作。接下来就一一介绍这几个方法。
(1).execute返回boolean,有结果为true,适合执行DDL(数据定义语言)语句;
如:创建一个数据库

String sql="create table tb_test(id int,name varchar(4))";stat.execute(sql);//返回truefalse

(2)executeUpdate返回int型数据,数据库受影响行数,可用它来插入,修改和删除数据。
如:向数据库中插入数据;

String sql="insert into tb_test(id,name) values(1001,'张张'),(1002,'莉莉'),(1003,'旺旺')";stat.executeUpdate(sql);

(3).executeQuery可用来查询数据库并返回一个查询结果集ResultSet,通过遍历这个结果集可以获得select语句的查询结果。
如:

String sql="select * from tb_test";ResultSet rs=stat.executeQuery(sql);while(rs.next()){System.out.println(rs.getInt("id")+"/t"+rs.getString("name")+"/t");}

4.关闭数据库连接;
使用close方法关闭数据库连接,释放资源,应当注意关闭的顺序。

stat.close();conn.close();

最后是一个简单的程序供参考。。。

package javaJDBC;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class TestJDBC { //加载驱动    static {     String d="com.mysql.jdbc.Driver";//将驱动名用字符串d来表示     try {        Class.forName(d);    } catch (ClassNotFoundException e) {                e.printStackTrace();    } }    public static void main(String[] args) throws SQLException {        //建立数据库连接        String url="jdbc:mysql://localhost:3306/for0308";//指定数据库的连接字符串        String user="root";//数据库用户名        String password="root";//用户名密码        Connection conn=null;        try {            conn=DriverManager.getConnection(url,user,password);        } catch (SQLException e) {            e.printStackTrace();        }        //获得Statement对象,执行SQL语句        Statement stat=conn.createStatement();        //创建一个数据库tb_test                String sql="create table tb_test(id int,name varchar(4))";                stat.execute(sql);//返回true或false                //向数据库中插入数据                String sql1="insert into tb_test(id,name) values(1001,'张张'),(1002,'莉莉'),(1003,'旺旺')";                stat.executeUpdate(sql1);        //查询数据库        String sql2="select * from tb_test";        ResultSet rs=stat.executeQuery(sql2);        System.out.println("id"+"\t"+"name"+"\t");        while(rs.next()){               System.out.println(rs.getInt("id")+"\t"+rs.getString("name")+"\t");        }        //关闭数据库        stat.close();        conn.close();    }}
阅读全文
0 0