1.jdbc
1)概念:
JDBC:Java连接数据库 ,使用Java语言规范 操作数据库.
2)jdbc的入门七大步骤_设计的API解释说明:
1)导入数据库包 mysql-connector-java-8.0.23.jar mysql8的jar包
有了包了,里面的核心类就加载进来了
2)注册驱动
本身注册驱动:DriverManger里面
public static void registerDriver(Driver driver) 注册驱动的方法
推荐:
加载类--->执行原码的静态代码块注册驱动
Class.forName("com.mysql.cj.jdbc.Driver") ;---->获取com.mysql.cj.jdbc.Driver的类字节码文件对象
向下兼容性
原码的内容
class com.mysql.cj.jdbc.Driver implements java.sql.Drvier{
//静态代码块---本身就使用了DriverManger里面的注册驱动方法
static {
try {
java.sql.DriverManager.registerDriver(new Driver()); //本身就在注册驱动,不需要在单独写了
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
}
3)获取连接对象
驱动管理程序的类DriverManager:
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/javaee_2110?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true", /
//当前支持的字符集格式 服务器时区 开启公钥
"root",
"123456");)
java.sql.DriverManager:用于管理一组JDBC驱动程序的基本服务
获取数据库的连接对象
public static Connection getConnection(String url, String user, String password)
参数1:统一资源定位符号
url组成
协议 :jdbc的协议 格式 ---> jdbc: (java连接数据库)
数据库: mysql /oracle /指定的数据库 (安装特定数据库的服务器软件)
域名:端口号
本地 localhost:本机/或者直接写127.0.0.1:本地回环地址
远程连接
远程服务器的ip地址或者域名
mysql端口号:3306
资源地址(数据库地址): 数据库名称
参数2:本地mysql的用户名 root
参数3:用户密码
返回值类型:java.sql.Connection接口:与特定数据库的连接会话
4)准备sql
String sql = "insert into student values(9,'德邦',18,'男','艾欧尼亚',60,70)"; 静态sql (硬编码)
5)通过连接对象创建执行对象
java.sql.Connection:与特定数据库的连接会话
Statement createStatement():创建执行对象,它可以将静态sql语句发送到数据库中
6)执行sql语句
java.sql.Statement接口
通用的方法
int executeUpdate(String sql):将sql语句发送的数据库中执行 (更新操作)
针对DDL:表的修改、创建、删除、查询。。。
针对DML语句:insert into,update ,delete,
ResultSet executeQuery(String sql):将select语句发送到到数据中进行执行(通用查询操作)
java.sql.ResultSet接口:
数据库结果集的数据表,通常通过执行查询数据库的语句生成。
3)案例:
实现步骤
* 1)导包--->jar包 mysql驱动jar包
* 2)注册驱动
* 3)获取数据库的连接对象
* 4)准备好sql语句
* 5)通过连接对象创建执行对象Statement createStatement不安全
prepareStatement 安全推荐使用
* 6)执行sql语句
* 7)释放资源
*/
public class JdbcDemo {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1)导包--->jar包 mysql驱动jar包
//2)注册驱动
Class.forName("com.mysql.cj.jdbc.Driver"); //mysql8的驱动的实现类的路径带cj这个包
//3)获取数据库的连接对象
//驱动管理程序的类DriverManager:
//public static Connection getConnection(String url, // url:连接数据库的地址:
//String user, 数据库的用户名
// String password) 密码 throws SQLException
Connection conn = DriverManager.getConnection(
//url:数据库后面? 一堆参数 mysql5.7以后
"jdbc:mysql://localhost:3306/javaee_2110?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true", //
"root",
"123456");
// 4)准备好sql语句
String sql = "insert into student values(9,'德邦',18,'男','艾欧尼亚',60,70)";
//5)通过连接对象创建执行对象Statement
//Statement createStatement()
Statement stmt = conn.createStatement();
//6)执行sql语句:通用方法:增删改
//int executeUpdate(String sql)
int count = stmt.executeUpdate(sql);
System.out.println("影响了"
+ count + "行");
//7)释放资源
stmt.close();//执行对象
conn.close(); //连接对象
}
}
1)PreparedStatement执行对象:
PreparedStatement执行对象:
* Connection接口:
* PreparedStatement prepareStatement(String sql):获取预编译对象,
同时将参数化的sql发送给数据库
* 通过预编译的sql语句对象,它的内存中就可以对参数?(占位符)进行赋值
3)PreparedStatement和Statement区别: