java通过jdbc连接数据库并更新数据(包括java.util.Date类型数据的更新)

摘要:
“作为数据占位符,使用set***方法设置数据。

一、步骤

1.获取Date实例,并通过getTime()方法获得毫秒数;

2.将获取的毫秒数存储到数据库中,注意存储类型为nvarchar(20);

3.读取数据库的毫秒数,作为Date构造方法的参数创建实例,有需要再转换时间格式。

二、代码示例

packagecom.yh.dao;

importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.text.SimpleDateFormat;
importjava.util.Date;

importcom.yh.util.ConfigManager;

public classNewsDao {
    public static voidmain(String[] args) {
        NewsDao nd = newNewsDao();
        nd.addData(005, "洪旭", 21, newDate().getTime());
        nd.getData();
    }

    //查询数据
    public voidgetData() {
        Connection con = null;
        ConfigManager configManager =ConfigManager.getInstance();
        String url = configManager.getString("jdbc.connection.url");
        String username = configManager.getString("jdbc.connection.username");
        String password = configManager.getString("jdbc.connection.password");
        String driver = configManager.getString("jdbc.SQLServerDriver.class");

        try{
            //加载驱动
Class.forName(driver);
            //获得数据库连接
            con =DriverManager.getConnection(url, username, password);
            //执行sql语句
            String sql = "select * from student";
            Statement statement =con.createStatement();
            ResultSet rs =statement.executeQuery(sql);
            while(rs.next()) {
                int id = rs.getInt(1);
                String name = rs.getString(2);
                int age = rs.getInt(3);
                long createDate = rs.getLong(4);
                Date date = newDate(createDate);
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                System.out.println(id + "	" + name + "	" + age + "	" +sdf.format(date));
            }
        } catch(ClassNotFoundException e) {
            e.printStackTrace();
        } catch(SQLException e) {
            //TODO Auto-generated catch block
e.printStackTrace();
        } finally{
            try{
                con.close();
            } catch(SQLException e) {
                //TODO Auto-generated catch block
e.printStackTrace();
            }
        }
    }

    //插入数据
    public void addData(int id, String name, int age, longcreateDate) {
        Connection con = null;
        ConfigManager configManager =ConfigManager.getInstance();
        String url = configManager.getString("jdbc.connection.url");
        String username = configManager.getString("jdbc.connection.username");
        String password = configManager.getString("jdbc.connection.password");
        String driver = configManager.getString("jdbc.SQLServerDriver.class");
        try{
            //加载驱动
Class.forName(driver);
            //获得数据库连接
            con =DriverManager.getConnection(url, username, password);
            //执行sql语句
            String sql = "insert into student (id,name,age,createDate)values(?,?,?,?)";
            PreparedStatement ps =con.prepareStatement(sql);
            ps.setInt(1, id);
            ps.setString(2, name);
            ps.setInt(3, age);
            ps.setLong(4, createDate);
            int line =ps.executeUpdate();
            System.out.println("影响行数:" +line);
        } catch(ClassNotFoundException e) {
            e.printStackTrace();
        } catch(SQLException e) {
            //TODO Auto-generated catch block
e.printStackTrace();
        } finally{
            try{
                //释放资源
ps.close(); con.close(); } catch(SQLException e) { //TODO Auto-generated catch block e.printStackTrace(); } } } }

三、Statement和PreparedStatement的比较

1.Statement由Connection类的createStatement()方法创建,用于发送相对简单,参数较少的sql语句;

2.PreparedStatement由Connection类的preparedStatement()方法创建,用于发送参数较多的sql语句;

3.sql语句使用 " ? " 作为数据占位符,使用set***(int index, 值)方法设置数据。

免责声明:文章转载自《java通过jdbc连接数据库并更新数据(包括java.util.Date类型数据的更新)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[实例]JAVA调用微信接口发送图文消息,不用跳到详情页oracle expdp/impdp 用法详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

javascript base64 编码,兼容ie6789

用Javascript进行base64编码,在高版本的IE浏览器(IE9以上版本),和firefox,chrome浏览器里是非常方便的。这些浏览器的window对象中内置了base64的编码和解码方法。 var base64String = window.btoa(string) ;//编码 var string = window.atob(base64s...

thrift在hive中的应用

thrift在hive中的应用 » ORATEA thrift在hive中的应用 hadoop添加评论 六272011 thrift是一种可伸缩的跨语言服务的发展软件框架。它结合了功能强大的软件堆栈的代码生成引擎,以建设服务,工作效率和无缝地与C + +,C#,Java,Python和PHP和Ruby结合。thrift是facebook开...

Asp.Net mvc4 项目 在vs中调试正常 在IIS发布后连接oracle数据库时提示数据库连接关闭

解决办法: 1、打开iis,找到发布的程序 2、右键单击“TAKANAPP” 从右键菜单选择“管理应用程序”--“高级设置....” 在打开的高级设置  面板 查看对应的应用程序池 名称 3、设置应用程序池 从右键菜单中选择“设置应用程序池默认设置...” 在打开的对话框中设置“标识”的值...

Go语言JSON数据相互转换

目录 结构体转json map转json int转json slice转json json反序列化为结构体 json反序列化为map 结构体转json 结构体转json示例: package main import ( "encoding/json" "fmt" ) //用户 type User struct { UserName st...

三步轻松打造微信聊天机器人(附源码)

    最近微信公众平台开发是热门,我也跟风做了一个陪聊的公众号。       其实类似的自动回话程序早就有了,比如前一阵很火的小黄鸡(还是小黄鸭来着?)。但尽管是跟风,也要体现一些不同。别人做的都是中文陪聊,咱就来做个英语陪聊。       不管是中文还是英文,做起来都一样,都是利用网络上的接口。或者你也可以试着自己开发一个陪聊程序。       随便在...

多租户实现之基于Mybatis,Mycat的共享数据库,共享数据架构

前言 SaaS模式是什么? 传统的软件模式是在开发出软件产品后,需要去客户现场进行实施,通常部署在局域网,这样开发、部署及维护的成本都是比较高的。 现在随着云服务技术的蓬勃发展,就出现了SaaS模式。 所谓SaaS模式即是把产品部署在云服务器上,从前的客户变成了“租户”,我们按照功能和租用时间对租户进行收费。 这样的好处是,用户可以按自己的需求来购买功...