在 MyBatis 中,你可以使用 JDBC 的 getTimestamp()
方法来获取当前时间戳,并在插入或更新数据库记录时自动设置时间戳字段。以下是一个简单的示例:
users
的表,其中包含一个名为 created_at
的时间戳字段:CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
getTimestamp()
方法来获取当前时间戳,并将其设置为 created_at
字段的值:<mapper namespace="com.example.mapper.UserMapper">
<insert id="insertUser" parameterType="com.example.entity.User">
INSERT INTO users (username, created_at)
VALUES (#{username}, #{createdAt, jdbcType=TIMESTAMP})
</insert>
</mapper>
insertUser
方法将 User 对象插入到数据库中:import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import com.example.entity.User;
import com.example.mapper.UserMapper;
public class Main {
public static void main(String[] args) {
SqlSessionFactory sqlSessionFactory = ... // 初始化 SqlSessionFactory
try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
User user = new User();
user.setUsername("JohnDoe");
user.setCreatedAt(new java.sql.Timestamp(System.currentTimeMillis()));
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int result = userMapper.insertUser(user);
if (result > 0) {
System.out.println("User inserted successfully.");
} else {
System.out.println("Failed to insert user.");
}
sqlSession.commit();
} catch (Exception e) {
e.printStackTrace();
}
}
}
这样,每次插入新用户时,MyBatis 都会自动设置 created_at
字段的值为当前时间戳。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。