小问题求解:DAO里Java如何把时间中的时分秒值写入oracle数据库?

小问题求解:DAO里Java如何把时间中的时分秒值写入oracle数据库?,第1张

如果你 Java 里面,是通过

INSERT INTO 语句来插入 Oracle 的话。

INSERT INTO 表 (日期字段) VALUES ( TO_DATE( 参数名字, 'YYYY-MM-DD HH24:MI:SS' ) )

ps 就直接 SetString() 就可以了。

---

上面那个 SQL ,不修改你的表结构啊

就是你传入的 参数,是个 字符类型

让 Oracle 把 '2010-10-28 12:30:00' 这样格式的字符串

格式化成 日期格式, 然后 写到数据库表里面。

写进去的, 还是日期的格式。

TO_DATE 函数的目的,就是把 一个 字符串类型, 转换为 日期类型

convert(datetime,'2005-06-09',120) 将你的字符形式的转化成日期时间格式的然后在插入,应该就OK了。

因为你现在所写的日期为字符类型的而非时间类型的,如果这样的insert语句直接在数据库中执行就是可以的成功插入的,如果是在程序中通过与数据库交互插入就需要看你定义的这个日期变量是什么类型的,如果是定义的字符类型的就需要转化成日期类型的然后插入。

希望对你有所帮助!

package basic

import java.sql.Connection

import java.sql.DriverManager

import java.sql.PreparedStatement

import java.sql.ResultSet

import java.sql.SQLException

import java.sql.Statement

public class JDBC {

public void findAll() {

try {

// 获得数据库驱动

//由于长时间不写,驱动名和URL都忘记了,不知道对不对,你应该知道的,自己改一下的哈

String url = "jdbc:oracle:thin:@localhost:1521:XE"

String userName = "system"

String password = "system"

Class.forName("oracle.jdbc.driver.OracleDriver")

// 创建连接

Connection conn = DriverManager.getConnection(url, userName,

password)

// 新建发送sql语句的对象

Statement st = conn.createStatement()

// 执行sql

String sql = "select * from users"

ResultSet rs = st.executeQuery(sql)

// 处理结果

while(rs.next()){

//这个地方就是给你的封装类属性赋值

System.out.println("UserName:"+rs.getString(0))

}

// 关闭连接

rs.close()

st.close()

conn.close()

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

public void delete(){

try {

//步骤还是那六个步骤,前边的两步是一样的

String url = "jdbc:oracle:thin:@localhost:1521:XE"

String userName = "system"

String password = "system"

Class.forName("oracle.jdbc.driver.OracleDriver")

Connection conn = DriverManager.getConnection(url,userName,password)

//这里的发送sql语句的对象是PreparedStatement,成为预处理sql对象,因为按条件删除是需要不定值的

String sql = "delete from users where id = ?"

PreparedStatement ps = conn.prepareStatement(sql)

ps.setInt(0, 1)

int row = ps.executeUpdate()

if(row!=0){

System.out.println("删除成功!")

}

// 关闭连接

rs.close()

st.close()

conn.close()

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

}

我只写了查询和删除,添加、修改和删除非常之像,这是因为查询对数据库没有改动,而增删改都对数据库进行了修改,所以这三个非常像……呵呵,你自己看着办吧


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11642515.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存