作业 6-6
来源:6-6 自由编程
jia_蛙
2020-01-08 16:33:59
package com.zhou.jdbc.demo2;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.junit.Test;
import com.zhou.jdbc.utils.JDBCUtils;
public class JDBCDemo3 {
@Test
/**
*通过prepareStatement预编译对数据进行增删改查
*/
public void demo() {
//连接对象
Connection conn = null;
//执行SQL对象
PreparedStatement pstmt = null;
//结果集对象
ResultSet rs = null;
//执行完SQL影响的行数
int num = 0;
try {
//获取连接
conn = JDBCUtils.getConnection();
//编写SQL
//1.将表格中的三条记录添加到数据库
String sql1 = "INSERT INTO course(name,category,desp,createTime) VALUES(?,?,?,?),(?,?,?,?),(?,?,?,?)";
//1.2.预编译/预处理SQL
pstmt = conn.prepareStatement(sql1);
//1.3.设置具体的参数值
pstmt.setString(1, "JAVA零基础");
pstmt.setString(2, "JAVA");
pstmt.setString(3, "JAVA基础语法");
//Date类是java.sql.Date
//System.currentTimeMillis()获取当前的系统时间
pstmt.setDate(4, new Date(System.currentTimeMillis()));
pstmt.setString(5, "JAVA Web");
pstmt.setString(6, "JAVA");
pstmt.setString(7, "JSP 和 Servlet");
pstmt.setDate(8, new Date(System.currentTimeMillis()));
pstmt.setString(9, "前端小白");
pstmt.setString(10, "前端");
pstmt.setString(11, "HTML/CSS/JS");
pstmt.setDate(12, new Date(System.currentTimeMillis()));
num = pstmt.executeUpdate();
if(num>0) {
System.out.println("修改成功");
}
//2.显示所有的数据
String sql2 = "SELECT * FROM course";
//2.2对SQL进行预编译
pstmt = conn.prepareStatement(sql2);
//2.3 因为查询无需占位符所以不用设置值,直接执行SQL
rs = pstmt.executeQuery();
while(rs.next()) {
System.out.println(rs.getInt("id")+" " + rs.getString("name")+" "+
rs.getString("category")+" " + rs.getString("desp") +" "+
rs.getDate("createTime"));
}
//3.查询课程名称为Java零基础的数据并显示
String sql3 = "SELECT * FROM course WHERE name=?";
//3.2对SQL进行预编译
pstmt = conn.prepareStatement(sql3);
//3.3设置具体的参数值
pstmt.setString(1, "JAVA零基础");
//3.4 执行sql
rs = pstmt.executeQuery();
//ps:确定只有一个值可以用if
if(rs.next()) {
System.out.println(rs.getInt("id")+" " + rs.getString("name")+" "+
rs.getString("category")+" " + rs.getString("desp") +" "+
rs.getDate("createTime"));
}
//4.将Java零基础的课程描述改为Java语法
String sql4 = "UPDATE course SET desp=? WHERE name=?";
//4.2 对SQL进行预编译
pstmt = conn.prepareStatement(sql4);
//4.3 设置占位符中具体的参数值
pstmt.setString(1, "JAVA语法");
pstmt.setString(2, "JAVA零基础");
//4.4 执行sql
num = pstmt.executeUpdate();
if(num>0) {
System.out.println("修改成功!");
}
//5.删除JAVA WEB这门课程
String sql5 = "DELETE FROM course WHERE name=?";
//5.2 对SQL进行预编译
pstmt = conn.prepareStatement(sql5);
//5.3 设置占位符中具体的参数值
pstmt.setString(1, "JAVA Web");
//5.4执行sql
num = pstmt.executeUpdate();
if(num>0) {
System.out.println("删除成功!");
}
//6.按创建时间倒序排序显示所有数据
String sql6 = "SELECT * FROM course ORDER BY ? DESC";
//6.2 对SQL进行预编译
pstmt = conn.prepareStatement(sql6);
//6.3设置具体的参数值
pstmt.setString(1,"createTime");
//6.4执行sql
rs = pstmt.executeQuery();
//6.5 判断取值
while(rs.next()) {
System.out.println(rs.getInt("id")+" " + rs.getString("name")+" "+
rs.getString("category")+" " + rs.getString("desp") +" "+
rs.getDate("createTime"));
}
}catch(Exception e) {
e.printStackTrace();
}finally {
//释放资源
JDBCUtils.release(rs, pstmt, conn);
}
}
}麻烦老师看一下我的作业哪里需要修改的,还有就是我有1个问题: 1.作业中我们设置Date时间类型的时候,我们使用的的是java.sql.Date ,请问老师这个和 java.util.Date有什么区别呀? 2.
1回答
同学你好,1、运行贴出代码,完成了编程练习的内容,很棒。
2、java.util.Date与java.sql.Date:
1)、 java.util.Date 是 java.sql.Date 的父类;
2)、java.util.Date是常用的表示时间的类;java.sql.Date是读写数据库用的时间类,它只包含日期而没有时间部分。
3)、这两个类的toString方法不同,java.util.Date把时间转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 输出,而 java.sql.Date 则输出 yyyy-mm-dd 的日期形式。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题