目录
JDBC概述
定义
- JDBC(Java DataBase Connectivity)java数据库连接
- 是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它由一 组用Java语言编写的类和接口组成,提供了诸如查询,新增,修改,删除更新数据库中数据的 方法
- 有了JDBC规范(接口),不同的数据库开发商根据规范中的方法进行实现,开发人员面对的是 统一的接口.
注:Java定义者制定了JDBC规范 不同数据库开发商对接口进行实现 程序员学习使用标准规范
JDBC API
JDBC API: 供程序员调用的接口与类,集成在java.sql包中
- DriverManager类作用:管理各种不同的jDBC驱动
- Connection 接口 与特定数据库的连接
- Statement 接口 执行sql
- PreparedStatement接口 执行sql
- ResultSet接口 接收查询结果
实例
JDBC搭建
建立与数据库连接:
这需要使用DriverManager.getConnection()方法来创建一个Connection对象,它代 表一个物理连接的数据库.
形式:
Connection conn = DriverManager.getConnection(url,user,pass);
url:jdbc:mysql://ip:端口(3306)/数据库名?serverTimezone=Asia/Shanghai
user:用户名(root)
pass:密码
实例
/*
建立数据库
*/
String url = "jdbc:mysql://127.0.0.1:3306/schooldb?serverTimezone=Asia/Shanghai";//数据库地址
String user = "root";// 数据库用户名
String dbpwd = "root";// 数据库密码
try{
Connection connection = DriverManager.getConnection(url,user,dbpwd);
}catch (SQLException s){
System.out.println("数据库连接失败");
s.printStackTrace();
}
获得Satement执行sql语句
● Statement st = connection.createStatement();
Satement中的方法:
- Int executeUpdate(String sql)
- 用于执行ddl语句和dml(增,删,改)语句
- 返回 操作的行数 用于执行ddl语句返回0 用于执行dml语句返回操作的行数
实例
public class demo2 {
public static void main(String[] args) {
try {
demo2.add(110,"影","女", "1000000000");
demo2.delete(9);
demo2.update(9,111,"真", "女", "1020303030");
} catch (SQLException e) {
System.out.println("数据库连接失败");
}
}
//增
private static void add(int num,String name,String gender,String phone) throws SQLException {
Connection connection = JDBCUtil.getConnection();
Statement statement = connection.createStatement();
statement.executeUpdate("insert into student(num,name,gender,phone,regtime)value("+num+",'"+name+"','"+gender+"','"+phone+" ',now())");
statement.close();
connection.close();
}
//改
private static void update(int id,int num,String name,String gender,String phone) throws SQLException {
Connection connection = JDBCUtil.getConnection();
Statement statement = connection.createStatement();
statement.executeUpdate("update student set num="+num+",name='"+name+"',gender='"+gender+"',phone='"+phone+"' where id ="+id);
statement.close();
connection.close();
}
//删
private static void delete(int id) throws SQLException {
Connection connection = JDBCUtil.getConnection();
Statement statement = connection.createStatement();
statement.executeUpdate("delete from student where id ="+id);
}
}
ResultSet executeQuery(String sql);
用于执行查询语句 返回一个 ResultSet 集合
实例
ResultSet resultSet = ps.executeQuery();// executeQuery()执行后,讲数据封装到一个Resultset对象中
//将Resultset对象中的数据取出来,放到一·个student对象中,以便后续使用
Student student = new Student();
while (resultSet.next()){
student.setId(resultSet.getInt("id"));
student.setNum(resultSet.getInt("num"));
student.setName(resultSet.getString("name"));
student.setGender(resultSet.getString("gender"));
student.setBirthday(resultSet.getDate("birthday"));
student.setRegtime(resultSet.getTimestamp("regtime"));
}
resultSet.close();
ps.close();
connection.close();