1、jdbc概述
Java数据库连接,(Java Database Connectivity,简称JDBC)是
2、jdbc的好处
jdbc提供标准操作数据库的api,不管使用那些数据库,只要应用层使用jdbc标准的api,数据库 切换或者移植,针对上层基础代确没有影响,因此具有操作数据库代码的可移植性
3、如何使用jdbc
3.1、jdbc核心类
-
DriverManager:用于管理JDBC驱动的服务类
-
Connection:代表数据库连接对像,每一个Connection代表一个物理连接会话
-
Statement:用于执行SQL语句的工具接口
-
PreparedStatement:预编译的Statement对象
-
ResultSet:结果集对象
3.2、代码体验
public class Jdbc1 {
private static final String USERNAME="root";//数据库用户名
private static final String PASSWORD="123456";//数据库密码
//数据库驱动(mysql5之后要加cj)
private static final String DRIVER="com.mysql.cj.jdbc.Driver";
//数据库连接地址(针对mysq1地址写法: jdbc :mysql://主机ip:3306/数据库名)
private static final String URL="jdbc:mysql://localhost:3306/homework?characterEncoding=utf8&useSSL=false&serverTimezone=UTC";
static {
try {
//加载驱动(利用了反射机制),如果没有导入驱动jar包,则抛异常
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取连接
*/
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL,USERNAME,PASSWORD);
}
/**
* 关闭连接
*/
public static void close(Connection con,PreparedStatement pre,ResultSet res) {
try {
con.close();
pre.close();
res.close();
}catch (Exception e) {
e.printStackTrace();
}
}
/**
* 关闭连接
*/
public static void close(Connection con,PreparedStatement pre) {
try {
con.close();
pre.close();
}catch (Exception e) {
e.printStackTrace();
}
}
/*
*添加数据
*/
public void add(){
try {
//获取连接
Connection connection=getConnection();
//sql语句
String sql="insert into teacher_table values(?,?)";
//预编译
PreparedStatement preparedStatement=connection.prepareStatement(sql);
//设置参数
preparedStatement.setObject(1,4);
preparedStatement.setObject(2,"胡图图");
//执行sql
int lineNumber=preparedStatement.executeUpdate();
//判断是否插入成功
if (lineNumber>0){
System.out.println("添加成功");
}else {
System.out.println("添加失败");
}
//关闭连接
close(connection,preparedStatement);
} catch (