1.加载驱动
在连接数据库之前,需要加载数据库的驱动到JVM(Java虚拟机),这需要通过java.lang.Class类的静态方法forName(String className)实现.
例如:
//加载Oracle的驱动
try{
Class.forName("oracle.jdbc.OracleDriver");
}catch(ClassNotFoundException e){
System.out.println("找不到程序驱动类,加载驱动失败!");
e.printStackTrace();
}
加载成功后,会将驱动类的实例注册到DriverManager类中。
2.提供JDBC连接的URL
jdbc:oracle:thin:@192.168.31.50:1521:orcl
3.创建数据库的连接
想连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。
使用DriverManager的getConnection(url,uname,upass)传入数据库的路径,用户名,密码获得一个连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.31.50:8080:orcl","uname","upass");
4.创建一个Statement
要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3种类型:
1).执行静态语句,通常通过Statement实例实现。
Statement st = conn.createStatement();
2).执行动态语句,通常通过PreparedStatement实现。
PreparedStatement ps = conn.prepareStatement(sql);
3).执行数据库存储过程.通常通过CallableStatement实现
CallableStatement cs = conn.prepareCall("{CALL demoSp(?,?)}");
5.执行sql语句
ResultSet executeQuery(sql) 适用于遍历多个结果,插入集合,返回一个结果集,可以用.next对该对象进行遍历,使用getString(“字段名”)获取字段值
int executeUpdate(sql) 适用于Update,insert或delete语句以及sqlDDL语句,例如建表和删表等等,返回被改变的条数
6.关闭JDBC对象
关闭顺序要和声明顺序相反
1).关闭记录集
2).关闭声明
3).关闭连接对象
if(rs != null){
rs.close();
}
package util;
import java.sql.*;
public class DBUtil {
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/shop?UseSSl=true&characterEncoding=utf-8";
private static String user = "root";
private static String password = "";
static {
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection get_con() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
public static void getcloseCon(ResultSet resultSet, PreparedStatement preparedStatement,Connection connection) throws SQLException {
if(resultSet != null){
resultSet.close();
}
if(preparedStatement != null){
preparedStatement.close();
}
if(connection != null){
connection.close();
}
}
}