javaweb学习25:JDBC复习
-
JDBC:
-
-
需要jar包的支持:
-
Java.sql
-
javax.sql
-
mysql-connector-java:连接驱动,必须要导
-
-
-
实验环境搭建:
-
导入数据库依赖:
<!--mysql的驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency> -
IDEA中连接数据库:
-
JDBC固定步骤:
-
加载驱动
-
连接数据库
-
向数据库发送SQL的对象Statement
-
编写SQL:根据业务编写不同的SQL
-
执行SQL
-
关闭连接/流
-
-
-
代码案例:JDBC基本代码Statement
/**
普通SQL执行对象:Statement
*/
public class TestJdbc {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//配置信息
//useUnicode=true&characterEncoding=UTF-8 : 解决中文乱码
String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=UTF-8";
String username="demo";
String password="demo";
//1,加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2,连接数据库 : 代表数据库
Connection conn = DriverManager.getConnection(url, username, password);
//3,向数据库发送SQL的对象Statement : CRUD
//PreparedStatement安全的,
Statement state = conn.createStatement();
//4,编写SQL
String sql="SELECT * FROM users";
//5,执行查询SQL:返回一个ResultSet:结果集
//增删改都是用state.exeucteUpdate()
ResultSet resultSet = state.executeQuery(sql);
while (resultSet.next()){
System.out.println("id="+resultSet.getInt("id"));
System.out.println("name="+resultSet.getString("name"));
System.out.println("password="+resultSet.getString("password"));
System.out.println("email="+resultSet.getString("email"));
System.out.println("birthday="+resultSet.getObject("birthday"));
}
//6,关闭连接:释放资源(一定要做)先开后关
resultSet.close();
state.close();
conn.close();
}
}
-
代码案例:预编译对象:PreparedStatement
/**
* 预编译对象:PreparedStatement
*/
public class TestJjdbc2 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//配置信息
String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
String username="root";
String password="root";
//1,加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2,建立连接:
Connection conn = DriverManager.getConnection(url, username, password);
//3,编写SQL
String sql="insert into users (id, name, password, email, birthday)value (?,?,?,?,?)";
//4,预编译SQL
PreparedStatement pre=conn.prepareStatement(sql);
//5,赋值:
pre.setInt(1,4);//给第一个占位符?的值赋值为1
pre.setString(2,"demo04");//给第二个占位符?的值赋值为demo04
pre.setString(3,"111111");//给第三个占位符?的值赋值为111111
pre.setString(4,"demo04@qq.com");//给第四个占位符?的值赋值为demo04@qq.com
pre.setDate(5,new java.sql.Date(new Date().getTime()));//给第五个占位符?的值赋值
//6,执行SQL
int i= pre.executeUpdate();
if(i>0){
System.out.println("插入成功");
}
//6,关闭连接
pre.close();
conn.close();
}
}
分类:
06-Java Web
, JDBC
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律