JDBC(基础)

JDBC简介

概念:JDBC是 使用Java语言操作关系型数据库的一套API

JDBC快速入门

创建工程,导入驱动jar包

// 1.注册驱动
Class.forName("com.mysql.jdbc.Driver");

// 2.获取连接
Connection conn = Driver.Manager.getConnection(url, username,password);

//3.定义sql语句
String sql = "select ...";

//4.获取sql对象
Statement stmt = conn.createStatement();

//5.执行sql
stmt.executeUpdate(sql);

// 6.处理返回结果
//7.释放资源
stmt.close();
conn.close();

JDBC API详解

DriverManager(驱动管理类)

作用:1.注册驱动
2.获取数据库连接

1.注册驱动

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

2.获取数据库连接

static Connection  getConnection(String url, String user, String password)

//参数
1.url:连接路径
语法:jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1&参数键值对2...
实例: jdbc:mysql://127.0.0.1:3306/db01
细节:如果连接的是本机mysql服务器,并且mysql服务默认端口是3306,
则url可以简写为:jdbc:mysql:///数据库名称?参数键值对
配置 useSSL=false 参数,禁用安全连接方式,解决警告提升
2.user:用户名
3.password:密码

Connection(数据库连接对象)

作用:
1.获取执行sql的对象
2.管理事务

1.获取执行sql的对象
管理执行SQL对象

Statement createStatement()

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

PreparedStatement preparedStatement(sql)

执行存储过程的对象

CallableStatement prepareCall(sql)

2.事务管理
mysql事务管理
JDBC事务管理 : 该接口定义了3个对应的方法

开启事务: setAutoCommit(boolean autoCommit) 
true为自动提交事务 false为手动提交事务,即开启事务
提交事务: commit()
回滚事务: rollback()

Statement

作用:1.执行SQL语句

int executeUpdate(sql): 执行DML、DDL语句
返回值:(1)DML语句影响的行数(2)DDL语句执行后,执行成功也可能返回0
注意返回值可能是0 ,需做判断 count > 0,"成功","失败";

ResultSet executeQuery(sql): 执行DQL语句
返回值: ResultSet结果集对象

ResultSet(结果集对象)

作用:1.封装了DQL查询语句的结果

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

获取查询结果

boolean next(): (1)将光标从当前位置向前移动一行
				(2)判断当前行是否为有效行
返回值: true: 有效行,当前行有数据
		false: 无效行,当前行没有数据


xxx getXxx(参数): 获取数据
xxx: 数据类型 如 int getInt(参数) String getString(参数)
参数:int: 列的编号,从1开始
	string: 列的名称

使用步骤:
1.游标向下移动一行,并判断该行是否有数据: next()
2.获取数据: getXxx(参数)

// 循环判断游标是否是最后一行末尾
while(rs.next()){
	// 获取数据
	rs.getXxx(参数);
}

PreparedStatement

作用
1.预编译SQL语句并执行:预防SQL注入问题
SQL注入:是通过操作输入来修改事先定义好的SQL语句,用以达到执行代码对服务器进行攻击的方法

使用步骤
1.获取 PreparedStatement 对象

// SQL语句中的参数值,使用?占位符替代
String sql = "select * from user 
					where username = ? and password = ?";

//通过Connection对象获取,并传入对应的sql语句
PreparedStatement pstmt = conn.prepareStatement(sql);

2.设置参数值

PreparedStatement对象: setXxx(参数1,参数2): 给?赋值

Xxx: 数据类型; 如 setInt(参数1,参数2)
参数: 参数1? 的位置编号,从1开始
	参数2? 的值

3.执行SQL

executeUpdate()/executeQuery();// 不需要传递sql

Druid的使用

1.导入jar包
2.定义配置文件
3.加载配置文件
4.获取数据库连接池对象
5.获取连接


版权声明:本文为weixin_46341513原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。