老师帮忙瞅一哈,谢谢!
package com.imooc.jdbc.exercise;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.junit.Test;
import com.imooc.jdbc.utils.JDBCUtils;
/**
* PreparedStatement的使用
*
* @author 86573
*
*/
public class JDBCExercise4 {
@Test
/**
* 1、首先将表格中的三条数据添加到数据库
*/
public void demo1() {
Connection conn = null;
PreparedStatement pstmt = null;
String[][] str = { { "Java零基础", "Java", "Java基础语法" }, { "Java Web", "Java", "JSP和Servlet" },
{ "前端小白", "前端", "HTML/CSS/JS" } };
for (int i = 0; i < str.length; i++) {
try {
// 获得连接:
conn = JDBCUtils.getConnection();
// 编写SQL:
String sql = "insert into course values (null,?,?,?,now())";
// 预处理SQL:
pstmt = conn.prepareStatement(sql);
// 设置具体参数的值:
pstmt.setString(1, str[i][0]);
pstmt.setString(2, str[i][1]);
pstmt.setString(3, str[i][2]);
// 执行SQL:
int num = pstmt.executeUpdate();
if (num > 0) {
System.out.println("保存成功!" + (i + 1));
} else {
System.out.println("保存失败!" + (i + 1));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 释放资源
JDBCUtils.release(pstmt, conn);
}
}
}
@Test
/**
* 2、显示所有数据
*/
public void demo2() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// 获得连接:
conn = JDBCUtils.getConnection();
// 编写SQL:
String sql = "select * from course;";
// 预处理SQL:
pstmt = conn.prepareStatement(sql);
// 设置参数:
// 执行SQL:
rs = pstmt.executeQuery();
// 判断结果集
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String category = rs.getString("category");
String desp = rs.getString("desp");
String createTime = rs.getTime("createTime").toString();
System.out.println(id + " " + name + " " + category + " " + desp + " " + createTime);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtils.release(rs, pstmt, conn);
}
}
@Test
/**
* 3、查询课程名称为Java零基础的数据并显示
*/
public void demo3() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// 获得连接:
conn = JDBCUtils.getConnection();
// 编写SQL:
String sql = "select * from course where name = ?;";
// 预处理SQL:
pstmt = conn.prepareStatement(sql);
// 设置参数:
pstmt.setString(1, "Java零基础");
// 执行SQL:
rs = pstmt.executeQuery();
// 判断结果集
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String category = rs.getString("category");
String desp = rs.getString("desp");
String createTime = rs.getTime("createTime").toString();
System.out.println(id + " " + name + " " + category + " " + desp + " " + createTime);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtils.release(rs, pstmt, conn);
}
}
@Test
/**
* 4、将Java零基础的课程描述改为Java语法
*/
public void demo4() {
Connection conn = null;
PreparedStatement pstmt = null;
try {
// 获得连接:
conn = JDBCUtils.getConnection();
// 编写SQL:
String sql = "update course set desp = ? where name = ?";
// 预编译SQL:
pstmt = conn.prepareStatement(sql);
// 设置参数:
pstmt.setString(1, "Java语法");
pstmt.setString(2, "Java零基础");
// 执行SQL:
int num = pstmt.executeUpdate();
if (num > 0) {
System.out.println("更新成功!");
} else {
System.out.println("更新失败!");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtils.release(pstmt, conn);
}
}
@Test
/**
* 5、删除Java Web这门课程
*/
public void demo5() {
Connection conn = null;
PreparedStatement pstmt = null;
try {
// 获得连接:
conn = JDBCUtils.getConnection();
// 编写SQL:
String sql = "delete from course where name = ?";
// 预编译SQL:
pstmt = conn.prepareStatement(sql);
// 设置参数:
pstmt.setString(1, "Java Web");
// 执行SQL:
int num = pstmt.executeUpdate();
if (num > 0) {
System.out.println("删除成功!");
} else {
System.out.println("删除失败!");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtils.release(pstmt, conn);
}
}
@Test
/**
* 6、按创建时间倒序排序显示所有数据
*/
public void demo6() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// 获得连接:
conn = JDBCUtils.getConnection();
// 编写SQL:
String sql = "select * from course order by createTime desc;";
// 预处理SQL:
pstmt = conn.prepareStatement(sql);
// 设置参数:
// 执行SQL:
rs = pstmt.executeQuery();
// 判断结果集
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String category = rs.getString("category");
String desp = rs.getString("desp");
String createTime = rs.getTime("createTime").toString();
System.out.println(id + " " + name + " " + category + " " + desp + " " + createTime);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtils.release(rs, pstmt, conn);
}
}
}
正在回答
同学完成的不错,给同学一个小的建议,在插入时,连接可以放在for循环的外面,这样就不需要重复获取和释放链接了

祝学习愉快~
- 参与学习 人
- 提交作业 357 份
- 解答问题 8016 个
本阶段将带你学习MySQL数据库,JDBC接口,MyBatis框架等,带你掌握的数据的存放和管理。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星