JDBC基本知识

JDBC对数据库操作的六个基本步骤:
    //1.注册数据库驱动
            
    //2.获取数据库连接

//3.获取传输器对象

//4.利用传输器传输SQL到数据库执行,获取结果集对象
        
    //5.遍历结果集,获取结果数据

//6.关闭资源(这里低层是将连接还回数据源中)

Statement和PreparedStatement都可以作为执行sql语句的传输器。它们存在父子关系;PreparedStatement是Statement 父级。
在使用Statement传输器时容易被用户输入sql关键字后导致后台sql被破坏,即sql注入攻击。安全性并不高。

PreparedStatement优点:
            (1)可以防止sql注入攻击, 采用预编译机制, 先将sql语句的主干发送数据库, 数据库编译后就确定了sql语句的语意, 如果后面参数中再包含sql关键字或者是特殊字符, 也只会当作普通的字符来处理!!!
            (2)通过方法来设置参数, 省去了拼接sql语句的麻烦.
            (3)能够尽最大可能来提高效率. PreparedStatement发送的sql语句编译后就被数据库缓存下来了, 再次执行时, 如果和缓存中的匹配就会使用缓存中的语句, 不再编译, 直接执行. statement发送的sql语句是先拼接好再发送给数据库, 由于参数不同整条sql语句也就不同, 所以每次都需要编译.

Statement对数据库的增删查改:

增加数据:

 1 public static void add(Connection conn,Statement stat,ResultSet rs){
 2         try {
 3             //注册mysql驱动
 4             Class.forName("com.mysql.jdbc.Driver");
 5             //建立连接
 6             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb1","root","admin");
 7             //创建传输器
 8             stat = conn.createStatement();
 9             //操作数据
10             int rows = stat.executeUpdate("insert into account values(null,‘张三‘,88888888)");
11             System.out.println("添加了"+rows+"条");
12         } catch (Exception e) {
13             e.printStackTrace();
14         }finally{
15             JDBCutils.closeResou(conn, stat,rs);
16         }
17     }

查看数据:

 1 public static void check(Connection conn,Statement stat,ResultSet rs){
 2
 3         try {
 4             //注册mysql驱动
 5             Class.forName("com.mysql.jdbc.Driver");
 6             //建立连接
 7             conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb1","root","admin");
 8             //创建传输器
 9             stat = conn.createStatement();
10             //操作数据
11             rs = stat.executeQuery("select name 名字 from account where money = 500;");
12             while(rs.next()){
13                 System.out.println(rs.getString("名字"));
14             }
15
16         } catch (SQLException e) {
17             e.printStackTrace();
18         }finally{
19             JDBCutils.closeResou(conn, stat, rs);
20         }
21
22     }

PreparedStatement对数据的增删查改:

增加数据:

public static void add(Connection conn,PreparedStatement ps){
        //注册驱动
        try {
            Connection conn = null;
            PreparedStatement ps = null;
            ResultSet rs = null;

            Class.forName("com.mysql.jdbc.Driver");

            conn = DriverManager.getConnection("jdbc:mysql:///mydb1","root","admin");

            String sql = "insert into account values(null,?,?) ";

            ps = conn.prepareStatement(sql);

            ps.setString(1, "李达康");

            ps.setDouble(2, 1000);

            int rows = ps.executeUpdate();

            System.out.println("添加了:"+rows);

        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException();
        }finally{
            JDBCutils.closeResou(conn, ps, null);
        }
    }

删除数据:

public static void del(Connection conn,PreparedStatement ps){

        try {
            Connection conn = null;

            PreparedStatement ps = null;

            ResultSet rs = null;

            Class.forName("com.mysql.jdbc.Driver");

            conn = DriverManager.getConnection("jdbc:mysql:///mydb1","root","admin");

            String sql="delete from account where id=?";

            ps = conn.prepareStatement(sql);

            ps.setInt(1, 10);

            int rows = ps.executeUpdate();

            System.out.println("删除了"+rows);

        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            JDBCutils.closeResou(conn, ps, null);
        }

    }

查数据:

public static void check(Connection conn,PreparedStatement ps,ResultSet rs){
        try {
            Connection conn = null;

            PreparedStatement ps = null;

            ResultSet rs = null;

            Class.forName("com.mysql.jdbc.Driver");

            conn = DriverManager.getConnection("jdbc:mysql:///mydb1","root","admin");

            String sql="select id from account where name=?";

            ps = conn.prepareStatement(sql);

            ps.setString(1,"童旭平");

            rs = ps.executeQuery();

            while(rs.next()){

                System.out.println(rs.getInt("id"));

            }

        } catch (Exception e) {
            e.printStackTrace();

        }finally{
            JDBCutils.closeResou(conn, ps, rs);
        }
    }
    
时间: 2024-11-05 22:18:25

JDBC基本知识的相关文章

JDBC 基础知识总结

1.  何谓JDBC  --- Java Database Connectivity. 由Sun 公司提供的访问数据库的一组java类和接口,用来对数据库进行链接.发送SQL语句.处理返回结果,为开发人员提供了统一的访问数据库入口API,使得开发人员可以不用绑定到特定数据库访问API. 2. 应用程序,JDBC API,JDBC 驱动程序,数据库之间的层次关系如下图: 3. 4.  JDBC 有四种驱动: 4.1  JDBC-ODBC 桥链接:   把对JDBC接口的访问翻译成对应的ODBC的访

jdbc基础知识-关于RowMapper,ResultSet

泛型类public class Generic<T> { public void methodOne(T) { } public void methodTwo(List<?>) { }}声明的泛型类代表在新建的时候不知道要传入什么样的数据类型,因此使用T占位符来声明,在使用泛型类的时候要声明新建的对象的数据类型.可以传进去任何数据类型.在方法中作参数的时候代表对象在调用该方法的时候必须使用与对象相同的数据类型来当做参数传入.当方法参数为集合的时候只能使用?问号的形式来传入.publ

Java JDBC 基础知识

一.JDBC常用接口.类介绍 JDBC提供对独立于数据库统一的API,用以执行SQL命令.API常用的类.接口如下: DriverManager 管理JDBC驱动的服务类,主要通过它获取Connection数据库链接,常用方法如下: public static synchronized Connection getConnection(String url, String user, String password) throws Exception; 该方法获得url对应的数据库的连接. Co

JDBC——入门知识【转】

1. 什么是JDBC:Java数据库连接性(JavaDatabase Connectivity) API,允许用户从Java应用程序中访问任何表格化数据源. 2. JDBC除了提供到更宽范围的SQL数据库的连接外,也允许用户访问其他的表格数据源,如:电子表格. 3. JDBC定义了一个底层的API,用来支持独立于任何特定SQL实现的基本SQL功能.这意味着重要的是执行原SQL语句,然后检索它们的结果. 4. JDBC2.0 API包括两个包:java.sql和jvax.sql. 5. JDBC3

Java数据库连接——JDBC基础知识(操作数据库:增删改查)

一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库.比如建立数据库连接.执行SQL语句进行数据的存取操作. JDBC代表Java数据库连接. JDBC库中所包含的API任务通常与数据库使用: 连接到数据库 创

JDBC基础知识

原文地址:http://blog.51cto.com/13987153/2336433

利用JDBC连接Oracle数据库(转)

http://blog.csdn.net/wahaha1_/article/details/8512438 JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员

通过JDBC连接Mysql之基础篇

1 JDBC基础知识 Q1 什么是JDBC技术 Java Database Connectivity :Java访问数据库的解决方案 Q2 JDBC如何实现访问数据库 JDBC定义了一套标准通用接口,由数据库厂商来实现这些接口连接数据库 Q3 JDBC有哪些标准通用接口 DriverManager 驱动管理 Connection/DatabaseMetaData 连接接口 Statement/PreparedStatement/CallableStatement 语句对象接口 ResultSet

JDBC连接MySQL数据库及演示样例

JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,能够为多种关系数据库提供统一訪问,它由一组用Java语言编写的类和接口组成.JDBC为数据库开发者提供了一个标准的API,据此能够构建更高级的工具和接口,使数据库开发者能够用纯 Java API 编写数据库应用程序,而且可跨平台执行,而且不受数据库供应商的限制.