一个简单的JDBC解析
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
第一个JDBC程序步骤
1.加载驱动
//如果使用的mysql驱动版本为5,那么使用加载驱动为com.mysql.jdbc.Driver
//如果使用的mysql驱动版本为6包括以上,那么使用加载驱动为com.mysql.cj.jdbc.Driver
Class.forName("com.mysql.cj.jdbc.Driver");//固定写法
2.连接数据库
//jdbc:mysql://地址:端口号/数据库?设置中文字符集为true&设置编码为utf8" 假如你用的mysql驱动包是8.x版本 我们需要加入一段内容
//假如你用的mysql驱动包是8.x版本 我们需要加入一段内容jdbc:mysql://地址:端口号/数据库?serverTimezone=utc
//serverTimezone:utc 表示我们使用世界标准日期(以美国时间为准)
String url = "jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8";
//mysql用户名
String username = "root";
//mysql密码
String password = "123456";
3.连接判断
//connection代表的是数据库
//connection.commit(); 事务提交
//connection.rollback(); 事务回滚
//connection.getAutoCommit(); 事务自动提交
Connection connection = DriverManager.getConnection(url, username, password);
4.执行sql的对象
//Statement为执行sql的对象
Statement statement = connection.createStatement();
5.执行sql语句
//SQL查询语句
String sql = "SELECT * FROM `user`";
//ResultSet是返回的结果集
//statement.executeUpdate(); 更新,插入,删除都用这个
//statement.execute(); 所以SQL语句都可以用这个,有判断会降低速度(不推荐)
//statement.executeQuery(); 这个为sql查询的语句
ResultSet resultSet = statement.executeQuery(sql);
//resultSet.beforeFirst();移动到最后面
//resultSet.afterLast();移动到最前面
//resultSet.next(); 移动到下一个数据
//判断是否有下一个数据
while (resultSet.next()){
System.out.println(resultSet.getInt("id"));
System.out.println(resultSet.getObject("name"));
System.out.println(resultSet.getObject("pwd"));
}
6.释放连接
//由于连接很耗费资源,所以需要在结束后释放连接
resultSet.close();
statement.close();
connection.close();
sql删除示例
String sql = "DELETE FROM `user` WHERE id=3";
st.executeUpdate(sql);
sql插入示例
String sql = "INSERT INTO `user`(id,`name`,pwd) VALUES(3,'小蓝',123)";
st.executeUpdate(sql);
sql更新示例
String sql = "UPDATE `user` SET id=4,`name`='小红' WHERE id=1";
st.executeUpdate(sql);
判断是否执行sql语句成功
int i = st.executeUpdate(sql);//插入,更新,删除 受影响的行数
if (i>0){
System.out.println("执行成功");
}else {
System.out.println("执行失败");
}
第一个完整的JDBC查询程序
JDBC步骤分为,加载驱动,连接数据库,判断连接是否成功,执行sql的对象,执行sql语句,返回结果集,释放连接。以下为完整的jdbc查询连接。
package com.hdt.mysql;
import java.sql.*;
public class JdbcDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2.连接数据库
String url = "jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8";
String username = "root";
String password = "123456";
//3.连接成功 Connection代表数据库
Connection connection = DriverManager.getConnection(url, username, password);
//4.执行sql的对象 Statement为执行sql的对象
Statement statement = connection.createStatement();
//5.执行sql语句
String sql = "SELECT * FROM `user`";
//ResultSet是返回的结果集
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()){
System.out.println(resultSet.getInt("id"));
System.out.println(resultSet.getObject("name"));
System.out.println(resultSet.getObject("pwd"));
}
//6.释放连接
resultSet.close();
statement.close();
connection.close();
}
}