作业 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回答

好帮手慕小班

2020-01-08

同学你好,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 的日期形式。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0
hia_蛙
h 谢谢老师!
h020-01-09
共1条回复

0 学习 · 8016 问题

查看课程

相似问题