JAVA 基础语法备忘录 - JDBC

 JDBC  就是连接 Java代码连接 关系型数据库(MySQL,Oracle...)


一、基本介绍

JDBC 不直接连接各个关系型数据库的驱动,而是通过操作JDBC API 操作JDBC DriverManager进行 CRUD 操作。各个数据库对应的驱动程序(jar包)也是相关第三方提供的用以连接操作数据库。主要学习 JDBC  的各个  API 即可 。


 JDBC 主要的工作就是 

  1. 与数据库建立连接
  2. 对数据库进行 CRUD
  3. 返回处理结果(ResultSet)

二、JDBC使用

具体应用的类和接口:  

  • DriverManager   管理jdbc驱动
  • Connection        管理Java与数据库的连接
  • Statement(PreparedStatement)          crud操作
  • CallableStatement         调用存储过程、函数
  • Result         结果集

1.具体步骤

  • 导入驱动包,加载具体驱动类   Class.forName("com.mysql.jdbc.Driver");
  • 建立与数据库的连接   使用连接字符串     jdbc:mysql://localhost:3306/数据库实例名
  • 发送SQL
  • 接受处理结果
  • 关闭连接

代码如下(示例):

import java.sql.*;
import java.sql.SQLException;

public class JDBCBaseTest {...}
    
    private static final String url="jdbc:mysql://localhost:3306/person";
    private static final String user="root";
    private static final String password="root";
    public static void update()     {
        Connection connect = null;
        Statement stmt =  null;
        //加载驱动类
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //通过 DriverManager  建立连接
            connect =  DriverManager.getConnection(url, user, password) ; 
            
            //发送SQL执行
            stmt = connect.createStatement();
            String addSql = "insert into user(name,pwd) values ('ds02','282')";
            boolean flag = stmt.execute(addSql);
        } catch ( Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            //关闭连接
            try {
                stmt.close();
                connect.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }  
        }
        
    }
    

    public static void main(String[] args) {
        // TODO Auto-generated method stub
    
        update() ;
    }
 

2.查询数据

代码如下(示例):

    public static int queryCheck(String name) {
        int flag=0;
        Map resultMap = new HashMap();
        Connection connect = null;
        Statement stmt = null;
        ResultSet rs = null;
        // 加载驱动类
        try {
            Class.forName("com.mysql.jdbc.Driver");
            // 通过 DriverManager  建立连接
            connect = DriverManager.getConnection(url, user, password);

            // 发送SQL执行
            stmt = connect.createStatement();
            String queryCheckSql = "select count(*) from user where name ='" + name + "'";
            System.out.println("queryCheckSql: " + queryCheckSql);
            rs = stmt.executeQuery(queryCheckSql);
            rs.next();
             flag= rs.getInt(1);
            System.out.println(name + " count :" + flag);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            // 关闭连接
            try {
                rs.close();
                stmt.close();
                connect.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return flag;

    }

该处使用 flag 返回值判断查询到几条数据。


其他知识(JSP展示查询到的所有结果)

这里参考其他人的博客。另外,如果在web项目中出现Java连接数据库 报错 空指针异常,很可能是因为依赖jar包只放在src的lib文件夹,没有放在webcontent文件的依赖lib文件夹中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值