java写库读库相关

来源:互联网 发布:微信炸金花源码 编辑:程序博客网 时间:2024/06/06 00:24

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


今天早晨起来写代码,才短短一个读库竟然花了两个多小时时间。找块豆腐撞死算了。
很多东西都忘了,几乎写一点百度一点。怎么可能快呢。
把今天百度到的、学到的东西记录一下:
 
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
原创粉丝点击