JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。
代码:
工具类:
package cn.kgc.lx;
import java.sql.*;
public class JDBCUtils {
/*
创建工具类 工具中的方法都是静态方法 方便直接通过类名调用
* 定义:获得Connection对象 并返回
* 定义一个静态方法 :释放资源
*/
//1 定义四个静态成员变量 用于连接数据库的相关信息
private static String driver="com.mysql.jdbc.Driver";
private static String url="jdbc:mysql://127.0.0.1:3306/a003";
private static String user="root";
private static String password="hao123456";
//静态代码块 优先执行 只执行一次
// 注册驱动
static {
try{
Class.forName(driver);
}catch (ClassNotFoundException e){
e.printStackTrace();
}
}
//Connection 与特定数据库的连接(会话)。 执行SQL语句并在连接的上下文中返回结果。
public static Connection getConnection(){
Connection conn = null;
try{
conn = DriverManager.getConnection(url,user,password);
}catch (Exception e){
// 如果数据库连接失败 那么程序没有必要继续了
// 需要把编译异常改为运行异常
throw new RuntimeException("获取数据库失败");
}
return conn;
}
//定义一个静态方法 释放资源
public static void close(ResultSet rs, Statement stat,Connection conn){
if (rs!=null){
try {
rs.close();
}catch (SQLException e){
e.printStackTrace();
}
}
if (stat!=null){
try {
stat.close();
}catch (SQLException e){
e.printStackTrace();
}
}
if (conn!=null){
try {
conn.close();
}catch (SQLException e){
e.printStackTrace();
}
}
}
}
操作类:
package cn.kgc.lx;
import org.junit.Test;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
public class Demo01JDBC {
Connection conn = JDBCUtils.getConnection();
@Test
public void testlnsrt(){
Statement stat =null;
try{
stat = conn.createStatement();
int row = stat.executeUpdate("INSERT INTO products (pid,pname,price,flag,category_cid) VALUES (10,'奥特曼',5000,0,002);");
System.out.println(row+"数据添加成功");
}catch (SQLException e){
e.printStackTrace();
}finally {
JDBCUtils.close(null,stat,conn);
}
}
}