Java操作数据库详解

目录

JDBC简介

JDBC(Java Data Base Connectivity)即java数据库连接,是Java核心类库的一部分,提供了操作多种关系数据库提供统一访问,是一种用于执行SQL语句的Java API。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

JDBC有两种,一种原sun公司提供的数据库连接;一种是由微软提供的JDBC数据库连接。JDBC访问不同的数据库使用的JDBC API都有所不同,虽然统称为JDBC。如:访问sql server数据库的JDBC,是不能访问oracle数据库的,同理也是也不访问MySQL、db2、Informix数据库等。只是访问方式不同,对数据库的操作依然是使用sql语句操作。

JDBC的使用

经常使用JDBC进行如下操作:
(1)与数据库建立连接。
(2) 向已连接的数据库发送SQL语句。
(3)处理SQL语句返回结果

数据库连接方式

和数据库连接的方式有两种,分别是:
(1)建立JDBC-ODBC桥接器
关于如何使用,JDBC-ODBC桥接器操作mysql,请看这篇博客:
http://blog.sina.com.cn/s/blog_81c33221010124v2.html

关于如何使用JDBC-ODBC桥接器操作sql server,请看这篇博客:
http://www.cnblogs.com/Howe-Young/p/4082205.html

(2)加载纯Java的数据库驱动程序
下面这要讲加载纯Java的数据库驱动程序,这种方法应用较广泛,但是需要下载相应的驱动程序包,因为不同的数据库的连接代码可能不同,连接不同的数据库,加载的驱动程序也可能不同。本文将以MySQL数据库为例来讲解连接数据库的过程。

案例程序

首先,下载驱动 mysql-connector-java-5.1.35-bin.jar

以下是一个查询的案例,程序注释很清楚。

package crawlerTest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/*   
 *  合肥工业大学 管理学院 qianyang 1563178220@qq.com
 */
public class MysqlConnectionTest {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Connection connection=null;           //数据库连接的获取
        Statement stmt=null;                    //创建Statement对象
        ResultSet rst=null;                 //创建数据库执行对象
        String driver="com.mysql.jdbc.Driver";   //数据库驱动
        String dbURL="jdbc:mysql://127.0.0.1:3306/test";  //操作的数据库地址,端口及库名
        String user = "root"; //数据库用户名
        String password = "112233"; //数据库密码
        Class.forName(driver);            //驱动注册
        try {
            connection = DriverManager.getConnection(dbURL,user,password);
        } catch (SQLException e) {
            e.printStackTrace();
        }     
        //连接数据库     
        stmt = connection.createStatement();
        String sql="select * from auto_forum_comments limit 1,100"; //需要查询的语句
        // Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
        rst=stmt.executeQuery(sql);
        while (rst.next()) {
            System.out.println(rst.getString(6));              //取第6列数据

        }
        rst.close();
        stmt.close();
        connection.close();
    }
}

Statement和PreparedStatement的区别

Statement和PreparedStatement都可以用于把sql语句从java程序中发送到指定数据库,并执行sql语句,但是他们也存在区别:
(1)直接使用Statement,驱动程序一般不会对sql语句作处理而直接交给数据库;使用PreparedStatement,形成预编译的过程,并且会对语句作字符集的转换中如此。
如此,有两个好处:对于多次重复执行的语句,使用preparedStatement效率会更高一点,并且在这种情况下也比较适合使用batch;另外,可以比较好地解决系统的本地化问题。

(2)PreparedStatement还能有效的防止危险字符的注入,也就是sql注入的问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值