JDBC快速入门

JDBC概念

·使用java语言操作关系型数据库的一套API

·Java DataBase Connectivity  Java数据库连接

同一套Java代码,操作不同的关系型数据库

  • JDBC的第一个简单例子 
//注册驱动
 Class.forName("com.mysql.jdbc.Driver");
//获取连接
 String url = "jdbc:mysql://127.0.0.1:3306/db1";

 String username = "root";
 String password = "root";
 Connection conn= DriverManager.getConnection(url,username,password);
 //定义SQL语句
String sql=" UPDATE account set money = 2000 WHERE id =1";
//获取执行SQL的对象 Statement
 Statement stmt = conn.createStatement();
 //执行SQL
 int  count = stmt.executeUpdate(sql);//受影响的行
 //处理结果
 System.out.println(count);
 //释放资源
 stmt.close();
 conn.close();

JDBC API详解

DriverManager

1.注册驱动

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

2.获取连接

DriverManager.getConnection(url,username,password);

参数

URL连接路径:

语法:jdbc:mysql://IP地址:端口号/数据库名称?参数键值对1&参数键值对2...

·如果连接的是本机MySQL服务器并且服务默认端口号是3306,则可以简写成jdbc:mysql:///数据库名称?参数键值对1&参数键值对2...

String url = "jdbc:mysql://127.0.0.1:3306/db1";

Connection

1.获取执行SQL的对象

·普通执行SQL对象

Statement  createStatement();

·预编译SQL的执行SQL对象:防止SQL注入  

PrepareStatement prepareStatement(sql);

Statement stmt = conn.createStatement();

2.事务管理

Connection接口定义了3个对应的方法

开启事务:setAutoCommit(false);

提交事务:commit();

回滚事务:rollback();

Java中使用异常处理机制,在catch中进行事务的回滚  快捷键:ctrl+alt+t

try {

    //开启事务

    conn.setAutoCommit(false);

    int  count1 = stmt.executeUpdate(sql1);//受影响的行



    //处理结果

    System.out.println(count1);



    int  count2 = stmt.executeUpdate(sql2);//受影响的行



    //处理结果

    System.out.println(count2);

    //提交事务

    conn.commit();

} catch (Exception e) {

    //回滚事务

    conn.rollback();

    e.printStackTrace();

}

//释放资源

stmt.close();

conn.close();

Statement

执行SQL语句

1.int  executeUpdate(sql):执行DML,DDL语句

返回值:(1)DML查询语句返回影响的行

(2)DDL语句执行成功后,执行成功也有可能返回0,如删除语句

 int  count = stmt.executeUpdate(sql);

2.ResultSet executeQuery(sql):执行DQL语句

返回值:ResultSet结果集对象


ResultSet

封装了DQL查询语句的结果

ResultSet   stmt.executeQuery(sql);执行DQL语句,返回ResultSet对象

使用步骤:

  1. 光标向下移到一行,并判断该行是否有数据:next()
  2. 获取数据:getXxx(参数)

        ResultSet rs = stmt.executeQuery(sql);

       //处理数据,遍历rs中的所有数据

        //光标向下移到一行,判断当前行是否有数据

        while(rs.next()){

            //获取数据 getXxx()

           int id =rs.getInt(1);

           String name = rs.getString(2);

           double money = rs.getDouble(3);

            System.out.println(id);

            System.out.println(name);

            System.out.println(money);

            System.out.println("--------------");

        }

        rs.close();

        conn.close();

        stmt.close();

    }

}

PreparedStatement

预编译SQL语句并执行;预防SQL注入问题(将敏感字符进行转义)

使用步骤:

①获取对象

SQL语句中的参数值,使用?占位符替代

②设置参数值

③执行SQL

String sql = "select * from user where username = ? and passward = ?";

//获取pstmt对象

    PreparedStatement pstm = conn.prepareStatement(sql);

    //设置?值

    pstm.setString(1,name);

    pstm.setString(2,pwd);

   //执行SQL

   ResultSet rs = pstm.executeQuery();

数据库连接池

一个容器(集合),存放数据库连接的容器

数据库连接池实现

标准接口:DataSource

Connection  getConnection()

常见的数据库连接池:

 DBCP

C3P0

Druid

Druid使用步骤:

//1.导入jar包
//2.定义配置文件
//3.加载配置文件
Properties prop = new Properties();
prop.load(new FileInputStream("jdbc-demo/src/druid.properties"));
//4.获取连接池对象

DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
//5.获取数据库连接
Connection connection =dataSource.getConnection();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值