目录
1.直接代码演示: 显示五步驱动的代码+ 展示增删改查的操作
2.statement存在sql注入安全问题和刚才代码中的PreparedStatement
一、JDBC简单介绍
1. 定义:JDBC是由一组用Java语言编写的类和接口组成,用于实现Java应用程序与关系型数据库之间的连接和通信。
2. 功能:JDBC提供了一套标准的接口,使得开发者可以使用Java语言来访问关系型数据库,而不必关心不同数据库之间的差异。通过JDBC,Java程序可以执行SQL查询、更新数据库中的数据、检索结果,并执行其他数据库管理操作。

二、JDBC连接数据库.
1.先准备好 数据库的 jar 包
jar 包:数据库的jar包,各个数据库厂商编写的连接自己数据库的代码。
在idea中新建一个目录lib ,把jar 包放入lib 中,然后右键 Add as Library(添加为库)


1.直接代码演示: 显示五步驱动的代码+ 展示增删改查的操作
package jdtest;
import com.mysql.jdbc.Driver;
import org.junit.Test;
import java.sql.*;
/**
* @className: jdtest.JDBCTexst
* @author: Zyl
* @date: 2024/
* @Version: 1.0
* @description:
*/
public class JDBCTexst {
public static void main(String[] args) throws Exception {
//1 增加数据 调用的方法
// insert(4,"哈哈哈", 18, "翻斗花园");
//2 删除数据 调用的方法
// int d = delete(4);
// System.out.println(d);
// if(d==1){
// System.out.println("删除成功");
// }else{
// System.out.println("删除失败");
// }
//3. 修改数据 调用的方法
// int update = update("xixi", 25, "aaa", 1);
// System.out.println(update);
// if(update==1){
// System.out.println("xiugai成功");
// }else{
// System.out.println("xiugai失败");
// }
//4. 查询数据 调用的方法
select();
}
// 注意注意 ----------使用的是PreparedStatement insert into 1
/* @Test
public void test01()throws Exception{
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.建立连接
String url="jdbc:mysql://localhost:3306/jdbctest?characterEncoding=UTF-8&useSSL=false";
//jdbc:mysql(连接mysql数据库遵循的协议) localhost:表示本地数据库 3306:mysql的端口号 mp:数据库名
String username="root";//数据库账号
String password ="root";//数据库密码
Connection connection = DriverManager.getConnection(url, username, password);
//3.预处理指令 增删改
String sql="insert into student1 values(null,'李五',20,'武汉')";
//获取执行sql语句的对象
PreparedStatement ps= connection.prepareStatement(sql);
//4.执行
int i=ps.executeUpdate();
System.out.println(i);
//5.关闭资源
ps.close();
connection.close();
}
// 注意注意-------------------- 这个使用Statement insert into 2
@Test
public void test03()throws Exception{
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.建立连接
String url="jdbc:mysql://localhost:3306/aa?characterEncoding=UTF-8&useSSL=false";
String username="root";
String password ="root";
Connection connection = DriverManager.getConnection(url, username, password);
//3.预处理指令
String sql="insert into books values(666666,'CMP','数据库导论','付勇','清华大学出版社',29)";
Statement st= connection.createStatement();
//4.执行 增删改
int i=st.executeUpdate(sql);
//5.关闭资源
st.close();
connection.close();
}
*/
// 注意注意 ----------使用的是PreparedStatement select 3
@Test
public void test02() throws Exception{
Class.forName("com.mysql.jdbc.Driver");
//2.建立连接
String url="jdbc:mysql://localhost:3306/jdbctest?characterEncoding=UTF-8&useSSL=false";
String username="root";
String password ="root";
Connection connection = DriverManager.getConnection(url, username, password);
//3.预处理指令 查询的
String sql= "select * from student1"; //注意语句
PreparedStatement ps= connection.prepareStatement(sql);
//4.执行
// 注意语句,只有select 是 executeQuery
ResultSet resultSet = ps.executeQuery();
//把查询的结果封装到ResultSet类中
//遍历展示next():判断下一条是否为空,如果非空指针移到下一行
while (resultSet.next()){
int id=resultSet.getInt("id");
String name =resultSet.getString("name");
int age = resultSet.getInt("age");
String address = resultSet.getString("address");
System.out.println(id+"---"+name+"---"+age+"---"+address);
}
// System.out.println(resultSet);
//5.关闭资源
resultSet.close();
ps.close();
connection.close();
}
//增加的方法------------------------------------ 4
/* public static void insert(int id ,String name,int age, String address)throws Exception {
//1.加载驱动
//Class.forName("com.mysql.jdbc.Driver");
//2.建立连接
String url = "jdbc:mysql://localhost:3306/jdbctest?characterEncoding=UTF-8&useSSL=false";
String username = "root";
String password = "root";
Connection connection = DriverManag

最低0.47元/天 解锁文章
1403

被折叠的 条评论
为什么被折叠?



