Java全栈学习笔记34

发布于:2025-09-12 ⋅ 阅读:(15) ⋅ 点赞:(0)

# JDBC

java database connection  Java 数据库连接技术

## JDBC 驱动程序

如果需要通过jdbc技术连接关系型数据库,就需要为jdbc提供一个该数据库的驱动。

驱动程序由对应的数据库厂商提供。

mysql提供了针对于各种语言的驱动程序。去官网下载和java相关的驱动即可

## JDBC连接的步骤

1. 导入mysql的驱动.jar  

2. 注册驱动,在jdbc4.0 之后变为可选,因为下载的驱动中包含了对驱动类的配置

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

3. 获取连接

   DriverManager 类 管理驱动,并可以通过方法从驱动中获取连接

   getConnection()

     jdbcUrl:数据库的路径

     user:用户名

     password :密码

   String jdbcUrl = "jdbc:mysql://localhost:3306/empdb?useSSL=true&serverTimezone=Asia/Shanghai&charset=UTF-8";

   String username = "root";

   String password = "admin"

   Connection conn = DriverManager.getConnection(jdbcUrl,username,password)

4. 执行sql语句

   String sql = "select * from emp";

   Statement st = conn.createStatement();

5. 获取结果集

   java

   ResultSet rs = st.executeQuery(sql);

   while(rs.next()) {

    System.out.println(rs.getString("ename"));

   }

6. 关闭结果集

  rs.close()

7. 关闭语句

  st.close()

8. 关闭连接

   conn.close()

## Statement

执行sql语句

  String sql = "select * from emp";

  Statement st = conn.createStatement();

  ResultSet rs = st.executeQuery(sql);

  只执行sql.不做sql处理。很容易造成sql注入攻击。所以一般使用PreparedStatement

## PreparedStatement

sql的预编译。查看sql是否合理。后续通过该对象的方法进行参数设置。

需要使用`?`这种占位符的方式,表明参数的位置。和类型无关

设置参数时的参数位置从左往右,从1开始依次增加

String sql = "select * from emp where job = ?";

PreparedStatement pst = conn.prepareStatement(sql);

pst.setString(位置,值)

setString 设置字符串参数

setInt()

setDouble

...

getMoreResults(); 执行存储过程时,获取多个结果集

## CallableStatment

执行的存储过程

获取多个结果集

getMoreResults()  获取多个结果集。

if(pst.getMoreResults()) {

​    rs = pst.getResultSet();

​    while(rs.next()) {

​    System.**out**.println(rs.getString(2));

​  }

}    

## ResultSet

getMetaData() 返回对象 ResultSetMetaData 包含表的中信息

  getColumnCount() 返回结果集中列的数量

  getColumnName(int) 返回指定索引列的名称。索引从1开始,这个名称是真实名称

  getColumnLabel(int) 返回指定索引的结果集中的列名。(如果是别名,则列别名)

getInt/getString()....系列方法

  通过列索引获取和指定列的值

  通过列名称获取指定列的值

## java 项目的分类

java项目---- 打包 jar包

网站项目---- war包


网站公告

今日签到

点亮在社区的每一天
去签到