概述
JDBC编程六部曲
一.步骤
1.注册驱动
2.获取数据库连接
3.获取数据库操作对象
4.执行sql语句(以DQL为例,DML没有第五步)
5.处理查询结果集
6.关闭资源
二.具体
1.注册驱动
import java.sql.Driver;
import java.sql.DriverManager;
public class JDBCTest1 {
public static void main(String[] args) {
try {
//1.注册驱动
//1.1获取驱动对象
Driver driver = new com.mysql.jdbc.Driver();
//1.2注册驱动
DriverManager.registerDriver(driver);
}catch(Exception e) {
e.printStackTrace();
}
}
}
2.获取数据库连接
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.Connection;
public class JDBCTest02 {
public static void main(String[] args) {
try {
//1.注册驱动
//1.1获取驱动对象
Driver driver =new com.mysql.jdbc.Driver();
//1.2注册驱动
DriverManager.registerDriver(driver);
//2.获取数据库的连接
String url="jdbc:mysql://127.0.0.1:3306/bjpowernode"; //一种写法
//一定要写对 ,否则就报“找不到适合的驱动”的错误
//3306是端口号,不一定全为3306(这个是安装MySQL时候你选的)
String user="root";
String password="123456";
Connection conn=DriverManager.getConnection(url,user,password);
System.out.println(conn);
}catch(Exception e) {
e.printStackTrace();
}
}
}
注:bjpowernode是动力节点写的一个数据库的名字
运行结果类似于这个:com.mysql.jdbc.JDBC4Connection@300ffa5d
这步要注意
1.url写对
2.getConnection这个方法(以下摘自jdk 1.6)
getConnection
public static Connection getConnection(String url, String user, String password) throws SQLException试图建立到给定数据库 URL 的连接。
DriverManager
试图从已注册的 JDBC 驱动程序集中选择一个适当的驱动程序。
参数:
url
-jdbc:subprotocol:subname
形式的数据库 url
user
- 数据库用户,连接是为该用户建立的
password
- 用户的密码返回:
到 URL 的连接
抛出:
SQLException
- 如果发生数据库访问错误
3.获取数据库操作对象
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.Statement;
public class JDBCTest03 {
public static void main(String[] args) {
try {
//1.注册驱动
//1.1获取驱动对象
Driver driver=new com.mysql.jdbc.Driver();
DriverManager.registerDriver(driver);
//2.获取数据库连接
String url="jdbc:mysql://localhost:3306/bjpowernode"; //又一种写法
String user="root";
String password="123456";
Connection conn=DriverManager.getConnection(url,user,password);
//3.数据库操作对象
Statement stmt=conn.createStatement();
System.out.println(stmt);
}catch(Exception e) {
e.printStackTrace();
}
}
}
运行结果类似:com.mysql.jdbc.StatementImpl@300ffa5d
4.执行sql语句(以DQL为例,DML没有第五步)
5.处理查询结果集
6.关闭资源
ps:这几步一起写出来(最终版)
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JDBCTest04 {
public static void main(String[] args) {
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try {
//1.注册驱动
Driver driver=new com.mysql.jdbc.Driver();
DriverManager.registerDriver(driver);
//2.获取数据库链接
String url="jdbc:mysql://localhost:3306/bjpowernode";
String user="root";
String password="123456";
conn=DriverManager.getConnection(url,user,password);
//3.获取数据库操作对象
stmt=conn.createStatement();
//4.执行sql语句 :DQL-->查询出员工薪水等级:显示员工名称,员工薪水,薪水等级
String sql="select e.ename,e.sal,s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal";
rs=stmt.executeQuery(sql);
System.out.println(rs);
/*
+--------+---------+-------+
| ename | sal | grade |
+--------+---------+-------+
| SMITH | 800.00 | 1 |
| ALLEN | 1600.00 | 3 |
| WARD | 1250.00 | 2 |
| JONES | 2975.00 | 4 |
| MARTIN | 1250.00 | 2 |
| BLAKE | 2850.00 | 4 |
| CLARK | 2450.00 | 4 |
| SCOTT | 3000.00 | 4 |
| KING | 5000.00 | 5 |
| TURNER | 1500.00 | 3 |
| ADAMS | 1100.00 | 1 |
| JAMES | 950.00 | 1 |
| FORD | 3000.00 | 4 |
| MILLER | 1300.00 | 2 |
+--------+---------+-------+
*/
//5.处理查询结果集
while(rs.next()) {
String ename=rs.getString("ename");
double sal=rs.getDouble("sal");
int grade=rs.getInt("grade");
System.out.println(ename+" "+sal+" "+grade);
}
}catch(Exception e) {
e.printStackTrace();
}finally{
//6.关闭资源
if(rs!=null) {
try{
rs.close();
}catch(Exception e) {
e.printStackTrace();
}
}
if(stmt!=null) {
try{
stmt.close();
}catch(Exception e) {
e.printStackTrace();
}
}
if(conn!=null) {
try{
conn.close();
}catch(Exception e) {
e.printStackTrace();
}
}
};
}
}
第四步就是写一个sql语句再用executeQuery(sql)方法运行一下
第五步处理查询结果集用到一个next();
next
boolean next() throws SQLException
将光标从当前位置向前移一行。ResultSet
光标最初位于第一行之前;第一次调用 next
方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。
第六步在finally里关闭资源
1.这里就有一个初始化的问题,
如果按第一到三步在try里初始化,
那么finally里面没有conn stmt rs就不能用close方法
所以要在try外面初始化,如上图最终版
2.逆序关闭(rs-->stmt-->conn)
最后
以上就是火星上御姐为你收集整理的学习笔记:JDBC编程六部曲(以mysql为例)的全部内容,希望文章能够帮你解决学习笔记:JDBC编程六部曲(以mysql为例)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复