JDBC入门程序
前面我们已经熟悉了一些SQL语句,今天我们来了解一下JDBC
什么是jdbc?
JDBC:(Java Data Base Connectivity)Java数据库连接
JDBC是一种用于执行SQL语句的Java API,它是SUN公司为了简化、统一对数据库的操作而定义的一套Java操作数据库的规范。JDBC可以为多种关系数据库提供统一访问。
JDBC编程步骤
1.装载驱动
jdbc可以装载多种数据库的多种驱动程序,我使用的是Mysql。大致步骤如下:
a.从官网下载MySQL驱动程序:https://dev.mysql.com/downloads/file/?id=480091
b.将驱动解压导入Java工程——工程名-右键—Build Path—找到解压后的jar包
c.使用Class.forName("com.mysql.jdbc.Driver");装载驱动
2.获取连接对象
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb1", "root", "px970609");
a、 user表示数据库用户;
b、 password表示数据库密码;
c、url用于表示数据库位置,其格式为:
主协议 子协议 主机 端口 数据库名
jdbc : mysql ://localhost:3306/liao
当主机是localhost, 端口是3306时,url可简写为:jdbc:mysql:///liao,此外url后面可以带其它参数;
3.通过连接对象获取操作sql语句的Statement对象
Statement st = con.createStatement();
4.操作sql语句
a.创建sql语句
b.使用Statement对象的方法执行sql语句
c.如果是select语句,需要遍历结果集,利用的是ResultSet.next方法
5.释放资源
需要将上面获取的顺序反向关闭三个资源
这部分代码最好放在finally块内执行,保证准确执行。
示例代码如下:
package database;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mysql.jdbc.Driver;
public class Test {
public static void main(String[] args) {
Connection con=null;
Statement st=null;
ResultSet rs=null;
//注册驱动
try {
//DriverManager.registerDriver(new Driver());
//使用反射加载驱动
Class.forName("com.mysql.jdbc.Driver");
//获取连接对象
con =DriverManager.getConnection("jdbc:mysql:///mydb1?useSSL=FALSE&serverTimezone=UTC", "root", "px970609");
//通过连接对象获取操作spl语句Statement
st=con.createStatement();
//操作sql语句
String s="select * from emp";
rs= st.executeQuery(s);
//遍历结果
while(rs.next()){
int empno=rs.getInt(1);
String ename=rs.getString(2);
String job=rs.getString(3);
int mgr=rs.getInt(4);
Date hiredate = rs.getDate(5);
Double sal=rs.getDouble(6);
Double comm=rs.getDouble(7);
int deptno=rs.getInt(8);
System.out.println(empno+" "+ename+" "+job+" "+mgr+" "+hiredate+" "+sal+" "+comm+" "+deptno);
}
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally{
//释放资源
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}