老师,我的代码有什么错吗?

来源:6-6 自由编程

qq_就是这样_1

2020-10-06 14:27:30

package com.imooc.jdbc.exam;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Time;

import org.junit.Test;

import com.imooc.jdbc.utils.JDBCUtils;

public class JDBCCourse {
	@Test
	//按创建时间倒序排序显示所有数据
	public void demo6() {
		Connection conn=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		try {
			conn=JDBCUtils.getConnection();
			String sql="select * from course order by createTime";
			pstmt=conn.prepareStatement(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");
				Time createTime=rs.getTime("createTime");
				System.out.println(id+" "+name+" "+category+" "+desp+" "+createTime);
			}
			
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			JDBCUtils.release(pstmt, conn);
		}
	}
	@Test
	//删除Java Web这门课程
	public void demo5() {
		Connection conn=null;
		PreparedStatement pstmt=null;
		try {
			conn=JDBCUtils.getConnection();
			String sql="delete from course where name='JAVA Web'";
			pstmt=conn.prepareStatement(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
	//将Java零基础的课程描述改为Java语法
	public void demo4() {
		Connection conn=null;
		PreparedStatement pstmt=null;
		try {
			conn=JDBCUtils.getConnection();
			String sql="update course set name='JAVA语法' where name='JAVA零基础'";
			pstmt=conn.prepareStatement(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
	//查询课程名称为Java零基础的数据并显示
	public void demo3() {
		Connection conn=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		try {
			conn=JDBCUtils.getConnection();
			String sql="select * from course where name='JAVA零基础'";
			pstmt=conn.prepareStatement(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");
				Time createTime=rs.getTime("createTime");
				System.out.println(id+" "+name+" "+category+" "+desp+" "+createTime);
			}
			
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			JDBCUtils.release(rs, pstmt, conn);;
		}
	}

	@Test
	//显示所有数据
	public void demo2() {
		Connection conn=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		try {
			conn=JDBCUtils.getConnection();
			String sql="select * from course";
			pstmt=conn.prepareStatement(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");
				Time createTime=rs.getTime("createTime");
				System.out.println(id+" "+name+" "+category+" "+desp+" "+createTime);
			}
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			JDBCUtils.release(rs, pstmt, conn);
		}
	}
	@Test
	//表格中的三条数据添加到数据库
	public void demo1() {
		Connection conn=null;
		PreparedStatement pstmt=null;
		ResultSet rs=null;
		try {
			conn=JDBCUtils.getConnection();
			String sql="insert into course values(null,?,?,?,?),(null,?,?,?,?),(null,?,?,?,?)";
			pstmt=conn.prepareStatement(sql);
			pstmt.setString(1,"JAVA零基础");
			pstmt.setString(2,"JAVA");
			pstmt.setString(3,"JAVA基础语法");
			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()));
			int num=pstmt.executeUpdate();
			if(num>0) {
				System.out.println("添加成功");
			}else {
				System.out.println("添加失败");
			}
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			JDBCUtils.release(rs, pstmt, conn);
			
			
		}
	}
}
package com.imooc.jdbc.utils;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
 * JDBC的工具类
 * @author Administrator
 *
 */
public class JDBCUtils {
	private static final String driverClass;
	private static final String url;
	private static final String username;
	private static final String password;
	static {
		//加载文件属性并解析
		Properties props=new Properties();
		//如何获得属性文件的输入流
		//通常情况下使用类的加载器的方式进行截取
		InputStream is=JDBCUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
		try {
			props.load(is);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		driverClass=props.getProperty("driverClass");
		url=props.getProperty("url");
		username=props.getProperty("username");
		password=props.getProperty("password");
	}
	
	/**
	 * 注册驱动的方法
	 * @throws ClassNotFoundException 
	 */
	public static void loadDriver() throws ClassNotFoundException {
		Class.forName(driverClass);
	}
	/**
	 * 获得连接的方法
	 * @throws SQLException 
	 */
	public static Connection getConnection() throws Exception {
		loadDriver();
		Connection conn=DriverManager.getConnection(url,username,password);
		return conn;
		
	}
	/**
	 * 资源释放
	 */
	public static void release(Statement stmt,Connection conn) {
		if(stmt!=null) {
			try {
				stmt.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		stmt=null;
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		conn=null;
	}
	public static void release(ResultSet rs,Statement stmt,Connection conn) {
		if(stmt!=null) {
			try {
				stmt.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		stmt=null;
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		conn=null;
		if(rs!=null) {
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		rs=null;
	}
}
create table course(
	id int unsigned auto_increment key,
    name varchar(20) not null,
    category varchar(20) not null,
    desp varchar(30) not null,
    createTime datetime not null
);


写回答

2回答

好帮手慕小班

2020-10-09

同学你好,1、同学可以将new java.sql.Timestamp(new java.util.Date().getTime())理解为一种通用的形式。

    2、显示出来的时间也是一样,同学是说同时存入的数据,时间是一样的吗,如果是,同学存入数据时,获取到的系统时间是一样的没有问题。

如果同学想表达的不是这个意思,还麻烦同学具体描述一下。

祝学习愉快~

0

好帮手慕珊

2020-10-07

同学,你好!代码整体完成得很不错,只是时间显示的时候没有日期。

http://img.mukewang.com/climg/5f7d8f02095a603704670111.jpg

修改建议:获取时间的时候使用getString()方法就可以了。

http://img.mukewang.com/climg/5f7d8fc20917fb4e08890120.jpg

另外,如果不想让时分秒都是0,也可以在插入数据时使用如下方法:

pstmt.setTimestamp(4, new java.sql.Timestamp(new java.util.Date().getTime()));

用于替换setDate(),修改后代码如下所示:

http://img.mukewang.com/climg/5f7d9052093a668708750064.jpg

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

0
hq_就是这样_1
h 老师,pstmt.setTimestamp(4, new java.sql.Timestamp(new java.util.Date().getTime()));是通用的吗?显示出来的时间也是一样,没问题吗?
h020-10-08
共1条回复

0 学习 · 8016 问题

查看课程