一.介绍
Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。它JDBC是面向关系型数据库的。
简单地说,就是用于执行SQL语句的一类Java API,通过JDBC使得我们可以直接使用Java编程来对关系数据库进行操作。通过封装,可以使开发人员使用纯Java API完成SQL的执行。
JDBC的CRUD就是对数据库的增删改查操作, JDBC主要用在JAVA程序和数据库打交道,最基础简单的事情就是对数据的增删改查操作。
二.知识点介绍
1、数据库连接
2、增加操作
3、修改操作
4、删除操作
5、查询操作
三.上课对应视频的说明文档
1、数据库连接
代码示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/* JDBC连接
* (1)导入驱动jar包,不同数据库有不同jar包
* (2)代码介入
* */
public class JdbcLj {
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection conn=null;//得到数据库连接对象
try {
Class.forName("org.gjt.mm.mysql.Driver"); // 加载驱动
System.out.println("加载驱动");
conn=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/ww", "root", "root");// 获取连接
System.out.println("获取连接");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2、增加操作
代码示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/* JDBC连接
* (1)导入驱动jar包,不同数据库有不同jar包
* (2)代码介入
* */
public class JdbcLj {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection conn=null;//得到数据库连接对象
try {
Class.forName("org.gjt.mm.mysql.Driver"); // 加载驱动
System.out.println("加载驱动");
conn=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/ww", "root", "root");// 获取连接
System.out.println("获取连接");
//表的操作,都是SQL
String sql="insert into students(name,xh,sex,age) values(?,?,?,?)";
PreparedStatement ps=conn.prepareStatement(sql);//加载SQL
ps.setString(1, "李四");
ps.setInt(2, 0001);
ps.setString(3, "女");
ps.setInt(4,19);
//PreparedStatement 加载SQL语句,可以操作有参的SQL
//Statement 操作无参
ps.executeUpdate();//执行查询语句并接收结果
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
3、修改操作
代码示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/* JDBC连接
* (1)导入驱动jar包,不同数据库有不同jar包
* (2)代码介入
* */
public class JdbcLj {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection conn=null;//得到数据库连接对象
try {
Class.forName("org.gjt.mm.mysql.Driver"); // 加载驱动
System.out.println("加载驱动");
conn=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/ww", "root", "root");// 获取连接
System.out.println("获取连接");
//表的操作,都是SQL
String sql="update students name=? where id=?";
PreparedStatement ps=conn.prepareStatement(sql);//加载SQL
ps.setString(1, "李四");
ps.setInt(2, 1);
//PreparedStatement 加载SQL语句,可以操作有参的SQL
//Statement 操作无参
ps.executeUpdate();//执行查询语句并接收结果
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
4、删除操作
代码示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/* JDBC连接
* (1)导入驱动jar包,不同数据库有不同jar包
* (2)代码介入
* */
public class JdbcLj {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection conn=null;//得到数据库连接对象
try {
Class.forName("org.gjt.mm.mysql.Driver"); // 加载驱动
System.out.println("加载驱动");
conn=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/ww", "root", "root");// 获取连接
System.out.println("获取连接");
//表的操作,都是SQL
String sql="delete from students where id=? ";
PreparedStatement ps=conn.prepareStatement(sql);//加载SQL
ps.setInt(1, 9);
//PreparedStatement 加载SQL语句,可以操作有参的SQL
//Statement 操作无参
ps.executeUpdate();//执行查询语句并接收结果
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
5、查询操作
代码示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/* JDBC连接
* (1)导入驱动jar包,不同数据库有不同jar包
* (2)代码介入
* */
public class JdbcLj {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Connection conn=null;//得到数据库连接对象
try {
Class.forName("org.gjt.mm.mysql.Driver"); // 加载驱动
System.out.println("加载驱动");
conn=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/ww", "root", "root");// 获取连接
System.out.println("获取连接");
//表的操作,都是SQL
String sql="select * from students where sex=? and age>?";
PreparedStatement ps=conn.prepareStatement(sql);//加载SQL
ps.setString(1, "男");
ps.setInt(2, 20);
//PreparedStatement 加载SQL语句,可以操作有参的SQL
//Statement 操作无参
ResultSet rs=ps.executeQuery();//执行查询语句并接收结果
while(rs.next()){
System.out.println(rs.getString("name")+" "+rs.getInt("age"));
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}