java写库读库相关

重发自己的文章到底算转载还是原创……


今天早晨起来写代码,才短短一个读库竟然花了两个多小时时间。找块豆腐撞死算了。
很多东西都忘了,几乎写一点百度一点。怎么可能快呢。
把今天百度到的、学到的东西记录一下:
 
1 写完了代码,在测试的时候,发现数据库出问题了,怎么也删不掉冗余的数据,无论是修改还是删除这一条数据,都报“已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行.”错误,可是这个表里明明没有数据!三个行里所有的字段都是null!也是醉
后来上网搜,发现是没有设置主键的问题。这个表实在折腾不明白了, 只好删掉后重新建了一个,设置好主键,没事了。
(缺少主键是从这里看到的:http://blog.163.com/budong_weimin_zh/blog/static/129198524201093102921956/)
 
2 这个问题改好了。然后死活插不进去数据,也不报错。但不管怎么运行,数据库里都是空的。
然后我发现,不应该是update,应该是insert……因为目前数据库里没有与这条数据匹配的数据,这是一条新数据……
_(:з」∠)_
update的写法:
 UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
 UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'
insert写法:
 INSERT INTO 表名称 VALUES (值1, 值2,....)
或:
 INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
 NSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing')
例子来自:http://www.w3school.com.cn/sql/sql_insert.asp
搞清楚这个,就可以顺利地写入啦
 
3 写库代码模板:
                    //连库
                    String url = "jdbc:sqlserver://127.0.0.1:1433;databaseName=XXX;user=sa;password=sa";//sa身份连接 
                        // Declare the JDBC objects. 
                        Connection con = null; 
                        Statement stmt = null; 
                        ResultSet rs = null;
                        try { 
                            // Establish the connection. 
                            System.out.println("begin."); 
                            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
                            con = DriverManager.getConnection(url); 
                            System.out.println("end."); 
                            String SQL="SELECT XXXX";
                            stmt = con.createStatement(); 
                            rs = stmt.executeQuery(SQL);  
                            
                            while(rs.next()){
                            ………………
 
如果是insert update delete,就用 rs = stmt.executeQuery(SQL2);
另外,rs.next()的返回结果是一个Boolean类型。必须要先执行以下这条语句,然后再开始处理数据。不然指针初始是指向结果集的上一行的。
 
4 昨天从网上找到了一个比较时间先后的好方法:因为时间都是格式化的,比如2016/02/20 21:03:49,只要把其中的/:和空格都去掉,就变成了20160220210349,然后把它当做一个long整型的数值相互比较就可以了,非常方便。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值