黑马程序员JDBC学习笔记

目录

  • 一、JDBC快速入门
  • 二、JDBC-API
    • 1、DriverManager
      • (1)、注册驱动
      • (2)、获取连接
    • 2、Connection
      • (1)、获取执行sql的对象
      • (2)、事务管理
    • 3、Statement:执行SQL语句
      • (1)、执行DML和DDL语句
      • (2)、执行DQL语句
    • 4、ResultSet
    • 5、PreparedStatement
  • 三、数据库连接池
    • 1、数据库连接池简介
    • 2、数据库连接池实现
    • 3、Druid数据库连接池
      • (1)、使用步骤
        • A、在src目录下配置druid.properties文件,配置内容如下
        • B、Java代码
  • 四、添加数据代码(删除和修改与之类似)

一、JDBC快速入门

package com.feng.jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;public class JdbcDemo {public static void main(String[] args) throws Exception {//1.注册驱动(jdk1.8之后此步骤可以跳过)Class.forName("com.mysql.jdbc.Driver");//2.获取数据库连接String url = "jdbc:mysql://127.0.0.1:3306/learn_jdbc";String user = "root";String password = "******";Connection conn = DriverManager.getConnection(url, user, password);//3.定义Sql语句String sql = "UPDATE user set age=27 WHERE id=1;";//4.获取执行SQL的对象statementStatement stmt = conn.createStatement();//5.执行sqlint count = stmt.executeUpdate(sql);//6.处理结果System.out.println(count);//7.释放资源stmt.close();conn.close();}
}

二、JDBC-API

1、DriverManager

(1)、注册驱动

在这里插入图片描述

(2)、获取连接

在这里插入图片描述

2、Connection

(1)、获取执行sql的对象

在这里插入图片描述

(2)、事务管理

在这里插入图片描述

package com.feng.jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;public class JdbcDemo {public static void main(String[] args) throws Exception {//1.获取数据库连接String url = "jdbc:mysql://127.0.0.1:3306/learn_jdbc";String user = "root";String password = "*******";Connection conn = DriverManager.getConnection(url, user, password);//2.定义Sql语句String sql1 = "UPDATE user set age=27 WHERE id=1;";String sql2 = "UPDATE user set age=27 WHERE id=2;";//3.获取执行SQL的对象statementStatement stmt = conn.createStatement();try {//开启事务conn.setAutoCommit(false);//4.执行sqlint count1 = stmt.executeUpdate(sql1);System.out.println(count1);//设置异常int i = 3/0;int count2 = stmt.executeUpdate(sql2);//5.处理结果System.out.println(count2);//提交事务conn.commit();} catch (Exception e) {//回滚事务conn.rollback();e.printStackTrace();}//7.释放资源stmt.close();conn.close();}
}
//使用事务管理出现异常时会回滚到之前的状态。

3、Statement:执行SQL语句

在这里插入图片描述

(1)、执行DML和DDL语句

package com.feng.jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;public class JdbcDemo2 {public static void main(String[] args) throws Exception {//1.获取数据库连接String url = "jdbc:mysql://127.0.0.1:3306/learn_jdbc";String user = "root";String password = "100228";Connection conn = DriverManager.getConnection(url, user, password);//2.定义Sql语句:以DML语句为例String sql = "INSERT INTO `user`(name,age) value('赵六','52');";//3.获取执行SQL的对象statementStatement stmt = conn.createStatement();//4.执行sql语句int count = stmt.executeUpdate(sql);//根据执行结果判断是否操作成功if (count>=1){System.out.println("添加成功");}else {System.out.println("添加失败");}//7.释放资源stmt.close();conn.close();}
}

(2)、执行DQL语句

4、ResultSet

在这里插入图片描述
在这里插入图片描述
代码示例

package com.feng.jdbc;import javax.sound.midi.Soundbank;
import java.sql.*;public class JdbcDemo2 {public static void main(String[] args) throws Exception {//1.获取数据库连接String url = "jdbc:mysql://127.0.0.1:3306/learn_jdbc";String user = "root";String password = "100228";Connection conn = DriverManager.getConnection(url, user, password);//2.定义Sql语句String sql = "SELECT * from user;";//3.获取执行SQL的对象statementStatement stmt = conn.createStatement();//4.执行sql语句,获的res对象ResultSet res = stmt.executeQuery(sql);//5.处理结果,遍历res中的所有数据//5.1光标下移一行,并判断当前行是否有效while (res.next()){//5.2获取数据int id = res.getInt(1);String name = res.getString(2);int age = res.getInt(3);System.out.println(id);System.out.println(name);System.out.println(age);System.out.println("***************");}//6.释放资源res.close();stmt.close();conn.close();}
}

结果
在这里插入图片描述

5、PreparedStatement

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、数据库连接池

1、数据库连接池简介

在这里插入图片描述

2、数据库连接池实现

在这里插入图片描述

3、Druid数据库连接池

(1)、使用步骤

在这里插入图片描述

A、在src目录下配置druid.properties文件,配置内容如下
# 数据库驱动
driverClassName=com.mysql.cj.jdbc.Driver
# 数据库连接
url=jdbc:mysql:///learn_jdbc?useSSL=false&useServerPrepStmts=true
# 数据库用户名
username=root
# 数据库密码
password=*******
#初始化连接数量
initialSize=5
#最大连接数
maxActive=10
#获取连接最大等待时间
maxWait=3000
B、Java代码
package DruidDemo;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.util.Properties;public class Demo1 {public static void main(String[] args) throws Exception {//1.导入jar包// 2.定义配置文件// 3.加载配置文件Properties prop = new Properties();prop.load(new FileInputStream("jdbc-demo\\src\\druid.properties"));//4.获取连接池对象DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);//5.获取数据库连接ConnectionConnection conn = dataSource.getConnection();System.out.println(conn);}
}

结果如下
在这里插入图片描述

四、添加数据代码(删除和修改与之类似)

//加载配置文件Properties pro = new Properties();pro.load(new FileInputStream("C:\\Users\\fw\\Desktop\\jdbc\\jdbc-demo\\src\\druid.properties"));//创建连接池对象DataSource dataSource = DruidDataSourceFactory.createDataSource(pro);//获取连接Connection conn = dataSource.getConnection();//定义sql语句String sql = "INSERT INTO tb_brand(brand_name,company_name,ordered,description,status) VALUES(?,?,?,?,?);";//获取pstmt对象PreparedStatement pstmt = conn.prepareStatement(sql);//传入参数String brandName = "oppo";String companyName = "oppo有限公司";int order = 20;String description = "充电5分钟,通话两小时";int status = 1;pstmt.setString(1, brandName);pstmt.setString(2, companyName);pstmt.setInt(3, order);pstmt.setString(4, description);pstmt.setInt(5, status);//执行sqlint count = pstmt.executeUpdate();System.out.println(count>0);//关闭资源pstmt.close();conn.close();


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部