jdbc添加Datetime类型的数据
时间: 2024-05-13 22:13:34 浏览: 97
可以使用PreparedStatement来添加Datetime类型的数据。首先,创建一个PreparedStatement对象并使用setTimestamp()方法来设置时间戳值,然后执行该语句。例如:
```
String sql = "INSERT INTO my_table (id, name, create_time) VALUES (?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 1);
pstmt.setString(2, "test");
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
pstmt.setTimestamp(3, timestamp);
pstmt.executeUpdate();
```
这将向名为my_table的表中插入一条记录,包括id、name和create_time字段。create_time字段的值将设置为当前时间戳。
相关问题
CREATE TABLE advert ( id int(20) NOT NULL AUTO_INCREMENT COMMENT '主键', name varchar(100) COLLATE utf8mb4_bin NOT NULL COMMENT '广告名称', position_id int(20) NOT NULL COMMENT '广告位置ID', media_id int(20) NOT NULL COMMENT '广告图片ID', start_date datetime NOT NULL COMMENT '开始日期', end_date datetime NOT NULL COMMENT '结束日期', link varchar(500) COLLATE utf8mb4_bin NOT NULL COMMENT '广告链接', status int(1) unsigned zerofill NOT NULL COMMENT '状态,0:未启用,1:已启用,2:已结束', create_time datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间', update_time datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (id) USING BTREE, KEY FK_ad_position (position_id), KEY FK_ad_image (media_id), CONSTRAINT FK_ad_image FOREIGN KEY (media_id) REFERENCES media_file (id) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT FK_ad_position FOREIGN KEY (position_id) REFERENCES ad_position (id) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='广告表'; CREATE TABLE media_file ( id int(20) NOT NULL AUTO_INCREMENT COMMENT '主键', name varchar(30) COLLATE utf8mb4_bin NOT NULL COMMENT '媒体文件名称', type tinyint(1) NOT NULL COMMENT '媒体文件类型:0-图片,1-视频', url varchar(500) COLLATE utf8mb4_bin NOT NULL COMMENT '媒体文件URL地址', create_time datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间', update_time datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='广告媒体文件表'; CREATE TABLE ad_position ( id int(20) NOT NULL COMMENT '主键', name varchar(50) COLLATE utf8mb4_bin NOT NULL COMMENT '位置名称', description varchar(200) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '位置描述', width int(4) NOT NULL COMMENT '广告位置宽度', height int(4) NOT NULL COMMENT '广告位置高度', create_time datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间', update_time datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='广告位置表'; 这三张表在进行对广告添加和修改操作时,前端传值和存储数据,用springboot项目如何实现
首先需要在Spring Boot项目中设置数据库连接,可以使用Spring Boot自带的JDBC或者MyBatis框架。然后根据需求编写对应的Controller、Service、Dao层代码。以下是一个简单的示例:
1. Controller层代码:
```java
@RestController
@RequestMapping("/advert")
public class AdvertController {
@Autowired
private AdvertService advertService;
@PostMapping("/add")
public ResponseResult addAdvert(@RequestBody AdvertDto advertDto) {
advertService.addAdvert(advertDto);
return ResponseResult.success();
}
@PostMapping("/update")
public ResponseResult updateAdvert(@RequestBody AdvertDto advertDto) {
advertService.updateAdvert(advertDto);
return ResponseResult.success();
}
// 其他接口
}
```
2. Service层代码:
```java
@Service
public class AdvertServiceImpl implements AdvertService {
@Autowired
private AdvertDao advertDao;
@Override
public void addAdvert(AdvertDto advertDto) {
Advert advert = convertToAdvert(advertDto);
advertDao.addAdvert(advert);
}
@Override
public void updateAdvert(AdvertDto advertDto) {
Advert advert = convertToAdvert(advertDto);
advertDao.updateAdvert(advert);
}
// 其他方法
private Advert convertToAdvert(AdvertDto advertDto) {
// 将AdvertDto转换为Advert对象
}
}
```
3. Dao层代码:
```java
@Repository
public class AdvertDaoImpl implements AdvertDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void addAdvert(Advert advert) {
String sql = "INSERT INTO advert(name, position_id, media_id, start_date, end_date, link, status) VALUES(?,?,?,?,?,?,?)";
jdbcTemplate.update(sql, advert.getName(), advert.getPositionId(), advert.getMediaId(), advert.getStartDate(),
advert.getEndDate(), advert.getLink(), advert.getStatus());
}
@Override
public void updateAdvert(Advert advert) {
String sql = "UPDATE advert SET name=?, position_id=?, media_id=?, start_date=?, end_date=?, link=?, status=? WHERE id=?";
jdbcTemplate.update(sql, advert.getName(), advert.getPositionId(), advert.getMediaId(), advert.getStartDate(),
advert.getEndDate(), advert.getLink(), advert.getStatus(), advert.getId());
}
// 其他方法
}
```
其中,AdvertDto是一个数据传输对象,用于接收前端传来的数据。Advert是一个实体类,对应数据库表中的一条记录。以上示例仅供参考,具体实现需要根据实际情况进行调整。
jsp+jdbc+mysql实现留言板
以下是一个简单的JSP和MySQL数据库的留言板实现示例。
1. 创建一个数据库和表来存储留言信息
首先,我们需要创建一个MySQL数据库和一个表来存储留言信息。可以使用以下SQL语句来创建一个名为“message_board”的数据库和一个名为“messages”的表:
```
CREATE DATABASE message_board;
USE message_board;
CREATE TABLE messages (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
message TEXT NOT NULL,
created_at DATETIME NOT NULL,
PRIMARY KEY (id)
);
```
2. 创建一个JSP页面来显示留言板
接下来,我们将创建一个名为“index.jsp”的JSP页面,该页面将显示留言板。在此页面中,我们将使用JSTL标签库来从数据库中检索并显示留言。
```
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>留言板</title>
</head>
<body>
<h1>留言板</h1>
<form action="add_message.jsp" method="post">
<label for="name">姓名:</label>
<input type="text" name="name" required><br>
<label for="email">邮箱:</label>
<input type="email" name="email" required><br>
<label for="message">留言:</label>
<textarea name="message" required></textarea><br>
<input type="submit" value="提交留言">
</form>
<hr>
<c:forEach var="message" items="${messages}">
<h3>${message.name}</h3>
<p>时间:${message.created_at}</p>
<p>${message.message}</p>
<hr>
</c:forEach>
</body>
</html>
```
在此页面中,我们创建了一个表单,使用户可以输入姓名、电子邮件和留言,并将其提交到“add_message.jsp”页面。我们还使用了JSTL的“forEach”标签来循环遍历从数据库中检索到的留言,并将它们显示在页面上。
3. 创建一个JSP页面来添加新留言
接下来,我们将创建一个名为“add_message.jsp”的JSP页面,该页面将处理提交的表单并将新留言添加到数据库中。
```
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
<%
// 获取表单数据
String name = request.getParameter("name");
String email = request.getParameter("email");
String message = request.getParameter("message");
// 连接MySQL数据库
String url = "jdbc:mysql://localhost:3306/message_board";
String username = "root";
String password = "password";
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, username, password);
// 插入新留言
PreparedStatement stmt = conn.prepareStatement("INSERT INTO messages (name, email, message, created_at) VALUES (?, ?, ?, NOW())");
stmt.setString(1, name);
stmt.setString(2, email);
stmt.setString(3, message);
stmt.executeUpdate();
// 关闭连接
stmt.close();
conn.close();
// 重定向到留言板页面
response.sendRedirect("index.jsp");
%>
```
在此页面中,我们获取提交的表单数据,连接到MySQL数据库,并将新留言插入到“messages”表中。然后,我们关闭连接并重定向到留言板页面。
4. 测试留言板
现在,我们已经创建了留言板,可以在浏览器中运行它并测试它。在浏览器中打开“index.jsp”页面,您应该看到一个表单,可以输入姓名、电子邮件和留言。在提交表单后,您应该能够看到新留言在留言板上的列表中。
阅读全文