JDBC
JDBC本质
JDBC(java databases connectiviting)
JDBC定义了一套操作关系型数据库的公共接口,不同数据库厂家实现其接口,真正执行的是驱动jar包中的实现类
快速入门
1、导入驱动jar包
http://dev.mysql.com/downloads/connector/
教程:https://www.cnblogs.com/it-mh/p/11205866.html
2、注册驱动
3、获取数据库连接对象
4、定义sql语句
5、获取执行sql的statement对象
6、执行sql
7、处理结果
8、释放资源
代码实现:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Demo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// 注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 获取链接对象
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3","root","123");
// 定义sql
String sql = "update student set age =100 where name = 'king'";
// 获取执行sql的statement对象
Statement statement = connection.createStatement();
// 执行sql
int count = statement.executeUpdate(sql);
// 结果
System.out.println(count);
// 释放资源
statement.close();
connection.close();
}
}
JDBC-curd操作实例
statement.executeUpdate(sql)返回值是int,表示返回的影响行数一般执行DDL,DML语句。
stetement.executeQuery(sql)返回值是ResultSet是字段结果返回集合。
先看executeUpdate.
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) {
Connection conn = null;
Statement statement = null;
try {
// 注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 建立连接
conn = DriverManager.getConnection("jdbc:mysql://rm-wz9gfi4876z4y12036o.mysql.rds.aliyuncs.com/test", "root", "123");
// 创建sql
String addSql = "insert into student values(6,'a',12)";
String updateSql = "update student set age = 100 where id = 3";
String delSql = "delete from student where id = 4";
// 创建statement对象
statement = conn.createStatement();
// 执行sql
int addCount = statement.executeUpdate(addSql);
int updateCount = statement.executeUpdate(updateSql);
int delCount = statement.executeUpdate(delSql);
System.out.println("新增:" + addCount + "修改:" + updateCount + "删除:" + delCount);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
// 释放资源
if (null != statement) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (null != statement) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
ResultSet的使用:
import java.sql.*;
public class JDBCDemo {
public static void main(String[] args) {
Connection conn = null;
Statement statement = null;
try {
// 注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 建立连接
conn = DriverManager.getConnection("jdbc:mysql://rm-wz9gfi4876z4y12036o.mysql.rds.aliyuncs.com/test", "root", "123");
// 创建sql
statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery("select * from student");
// 获取返回集
while (resultSet.next()){
System.out.println(resultSet.getString("name"));
}
resultSet.close();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
// 释放资源
if (null != statement) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (null != statement) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}