数据库平时错误和使用经验的总结

jdbc里面的操作

 jdbc,使用PreparedStatement
view sourceprint?001 package com.iflytek.test;  


002    


003 import java.sql.Connection;  


004 import java.sql.DriverManager;  


005 import java.sql.PreparedStatement;  


006 import java.sql.ResultSet;  


007 import java.sql.ResultSetMetaData;  


008 import java.sql.SQLException;  


009 import java.util.ArrayList;  


010 import java.util.HashMap;  


011 import java.util.List;  


012 import java.util.Map;  


013    


014 public class ConnectionDB2 {  


015    


016     /**  


017      * 驱动包  


018      */ 


019     private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";  


020        


021     /**  


022      * 数据库地址  


023      */ 


024     private final String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=Test";  


025        


026     /**  


027      * 用户名  


028      */ 


029     private final String USER = "sa";  


030        


031     /**  


032      * 密码  


033      */ 


034     private final String PASSWORD = "0";  


035        


036     /**  


037      * 数据库连接  


038      */ 


039     Connection conn;  


040        


041     /**  


042      * SQL命令  


043      */ 


044     PreparedStatement pst;  


045        


046     /**  


047      * 结果集  


048      */ 


049     ResultSet rs;  


050        


051        


052     /**  


053      * 加载数据库驱动  


054      */ 


055     static{  


056         try {  


057             //加载驱动  


058             Class.forName(DRIVER);  


059         } catch (Exception e) {  


060             e.printStackTrace();  


061             System.out.println("加载驱动失败");  


062         }  


063     }  


064        


065        


066     /**  


067      * 取得和数据库的连接  


068      * @return Connection  


069      */ 


070     private Connection getConnection() {  


071         try {  


072             conn = DriverManager.getConnection(URL, USER, PASSWORD);  


073         } catch (Exception e) {  


074             e.printStackTrace();  


075             System.out.println("连接数据库失败");  


076         }  


077         return conn;  


078     }  


079        


080        


081     /**  


082      * 查询数据库  


083      * @param sql SQL语句  


084      * @param arrays 参数数组  


085      * @return 参数列表  


086      */ 


087     public List getDataBySql(String sql,Object arrays[]) {  


088            


089         List list = new ArrayList();  


090            


091         try {  


092             //取得连接  


093             conn = this.getConnection();  


094                


095             if(conn == null) {  


096                 return list;  


097             }  


098                


099             //用sql语句对数据库进行操作  


100             pst  =conn.prepareStatement(sql);  


101                


102             //设置参数  


103             for (int i = 0; i < arrays.length; i++) {  


104                 pst.setObject(i+1, arrays[i]);  


105             }  


106                


107             //将查询结果放入结果集rs中  


108             rs = pst.executeQuery();  


109                


110             //遍历rs,并将rs的内容放入List中  


111             while(rs.next()) {  


112                    


113                 // 获取包含有关 ResultSet 对象列信息的 ResultSetMetaData 对象  


114                 ResultSetMetaData rm = pst.getMetaData();  


115                    


116                 Map map = new HashMap();  


117                    


118                 for (int i = 1; i <=rm.getColumnCount(); i++) {  


119                     //往map里放入列名和对应的值  


120                     map.put(rm.getColumnName(i), rs.getObject(i));  


121                 }  


122                 //将map放入list中  


123                 list.add(map);  


124             }  


125         } catch (Exception e) {  


126             e.printStackTrace();  


127         } finally {  


128             close();  


129         }  


130         return list;  


131     }  


132        


133        


134     /**  


135      * 插入、删除、更新操作  


136      * @param sql SQL语句  


137      * @param arrays 参数数组  


138      * @return 影响的行数  


139      */ 


140     public int updateBySql(String sql,Object arrays[]) {  


141            


142         List list = new ArrayList();  


143            


144         //初始化影响的行数  


145         int line = 0;  


146         try {  


147             conn = this.getConnection();  


148                


149             if(conn == null) {  


150                 return 0;  


151             }  


152                


153             pst  =conn.prepareStatement(sql);  


154                


155             //设置参数  


156             for (int i = 0; i < arrays.length; i++) {  


157                 pst.setObject(i+1, arrays[i]);  


158             }  


159                


160             //操作数据库,返回行数  


161             line = pst.executeUpdate();  


162                


163         } catch (SQLException e) {  


164             e.printStackTrace();  


165         } finally {  


166             close();  


167         }  


168         return line;  


169     }  


170        


171        


172        


173     /**  


174      * 关闭数据库连接  


175      */ 


176     public void close() {  


177         try {  


178             if(rs != null){  


179                 rs.close();  


180             }  


181                


182             if(pst != null){  


183                 pst.close();  


184             }  


185                


186             if(conn != null){  


187                 conn.close();  


188             }  


189         } catch (Exception e) {  


190             e.printStackTrace();  


191             System.out.println("关闭连接出错");  


192             System.exit(0);  


193         }  


194     }  


195        


196 }  


197    


198    


199    


200    


201 package com.iflytek.test;  


202    


203 import java.util.*;  


204    


205 public class TestConnectionDB2 {  


206    


207     /**  


208      * 测试ConnectionDB2类  


209      * @param args  


210      */ 


211     public static void main(String[] args) {  


212            


213         TestConnectionDB2 Testdb2 = new TestConnectionDB2();  


214            


215         /**  


216          * 查询操作  


217          */ 


218         Testdb2.select();  


219            


220         /**  


221          * 增、删、改操作  


222          */ 


223         Testdb2.update();  


224    


225     }  


226        


227        


228     public void select() {  


229         //创建一个ConnectionDB2的对象  


230         ConnectionDB2 db2 = new ConnectionDB2();  


231            


232         //写一条SQL语句  


233         String sql = "select id,name,address from Student where id=?";  


234            


235         //创建一个和SQL语句匹配的参数数组  


236         Object[] arrays = {5};  


237            


238         //调用db2的“查询数据库”方法,返回List  


239         List list = db2.getDataBySql(sql, arrays);  


240    


241         //遍历list,并打印出结果  


242         for (Object object : list) {  


243             //list里放的是Map  


244             Map map = (Map) object;  


245                


246             Iterator it = map.keySet().iterator();  


247                


248             while(it.hasNext()) {  


249                 //要查询的字段名(列名)  


250                 String key = (String) it.next();  


251                    


252                 //该列对应的值  


253                 Object value = map.get(key);  


254                    


255                 System.out.print("column:"+key+"  value:"+value);  


256                 System.out.println();  


257             }  


258         }  


259     }  


260        


261        


262     public void update() {  


263         //创建一个ConnectionDB2的对象  


264         ConnectionDB2 db2 = new ConnectionDB2();  


265            


266         //写一条SQL语句  


267         String sql = "insert into People values(?,?,?)";  


268            


269         //创建一个和SQL语句匹配的参数数组  


270         Object arrays[] = {7,"毛泽东",78};  


271            


272         //调用db2的“更新数据库”方法,返回影响的行数  


273         int line = db2.updateBySql(sql, arrays);  


274            


275         //line大于0则更新成功  


276         if(line > 0){  


277             System.out.println("更新成功");  


278         } else {  


279             System.out.println("更新失败");  


280         }  


281     }  


282    


283 } 

 

 

mysql使用经验 

 

1.比如分页
select * from table limit 6
和select * from table limit 0,6  等价


select * from table limit 5,10;
一般前面的5放的是 漂移 后面的10放的是 一页多少行
拿到数据库 table里面的数据是 第6条到15条 


42.121.56.21

 

sqlserver里面序列的用法

 

/****** Script for SelectTopNRows command from SSMS  ******/
SELECT TOP 1000 [id]
      ,[username]
      ,[password]
      ,[telephone]
  FROM [MyWeb].[dbo].[adminusers]
  /****** Script for SelectTopNRows command from SSMS  ******/
SELECT TOP 1000 [id]
      ,[username]
      ,[password]
      ,[telephone]
  FROM [MyWeb].[dbo].[adminusers]
  create squences a;
  USE MyWeb ;
  create sequence userid;


  USE AdventureWorks2012
  insert  ibto [MyWeb].[dbo].[adminusers] values(NEXT VALUE FOR userid,'chenyu','123','13212617498');


  CREATE SCHEMA Test1;
  CREATE SEQUENCE Test1.CountBy2
    START WITH 1
    INCREMENT BY 1 ;
  GO
  SELECT NEXT VALUE FOR Test1.CountBy2 AS FirstUse;
  SELECT NEXT VALUE FOR Test.CountBy1 AS SecondUse;
  INSERT [MyWeb].[dbo].[adminusers](id,username,password,telephone)
    VALUES (NEXT VALUE FOR Test.CountBy1,'chenxuan','123','13212617498') ;
commit;


INSERT [MyWeb].[dbo].[adminusers] (id,username,password,telephone)VALUES (NEXT VALUE FOR Test1.CountBy2,'biyu','123','123456789') 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296059.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Haproxy 让后端RS记录真实IP

#让RS记录客户端的真实IP#1.先在haproxy.cfg中加入下面参数。listen www ... option forwardfor #如果后端服务器需要获得客户端真实ip需要配置的参数&#xff0c;必须要放在listen模块下#2.如果是apache&#xff0c;则加入下面参数LogFormat “\”%{X-Forward…

物理太难?这些虚拟动图,让你看懂物理

全世界只有3.14 % 的人关注了爆炸吧知识&#xff08;刻度尺的使用&#xff09;&#xff08;测量平均速度实验&#xff09;&#xff08;声音的产生&#xff09;&#xff08;温度计的使用&#xff09;&#xff08;晶体和非晶体的熔化&#xff09;&#xff08;光的反射&#xff09…

linux http 分析工具,技术|httpstat:一个检查网站性能的 curl 统计分析工具

httpstat 是一个 Python 脚本&#xff0c;它以美妙妥善的方式反映了 curl 统计分析&#xff0c;它是一个单一脚本&#xff0c;兼容 Python 3 &#xff0c;在用户的系统上不需要安装额外的软件(依赖)。从本质上来说它是一个 cURL 工具的封装&#xff0c;意味着你可以在 URL 后使…

微软 Ignite 大会 PowerBI 划重点

2021 年 11 月 2 日&#xff0c;微软举办 Ignite 大会&#xff0c;其中关于 Power BI 有哪些重点&#xff0c;带给你了解。摘要Power BI 和 Power Point 将原生整合。Power BI 和 Teams 将更深入整合。Power BI 云端数据集推出自动聚合。Power BI 数据模型推出混合表。Power BI…

周报_2013第03周(2013/01/13-2013/01/19)

2013.01.14 Winform .Net FrameWork 3.5 支持 Client Application Service&#xff08;ASP.NET service: login authentication、roles、profile settings&#xff09;&#xff0c;.Net FrameWork 4.0 不支持。转载于:https://www.cnblogs.com/DancingFish/archive/2013/01/14/…

java序列化的机制和原理

Java序列化的机制和原理有关Java对象的序列化和反序列化也算是Java基础的一部分&#xff0c;下面对Java序列化的机制和原理进行一些介绍。Java序列化算法透析 Serialization&#xff08;序列化&#xff09;是一种将对象以一连串的字节描述的过程&#xff1b;反序列化deserializ…

DirectSound 混音的实现

啥叫混音呢&#xff0c;其实很简单&#xff0c;如果两个人同时说话 &#xff0c;他们俩发出的声波在空气中进行了波的叠加&#xff0c;这其实就是个混音。计算机的混音&#xff0c;其实是一个虚拟的混音操作&#xff0c;因为计算机其实是只有一个声源&#xff08;现在的计算机通…

Codeforces Round #330 (Div. 2) B. Pasha and Phone 容斥定理

B. Pasha and Phone Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/595/problem/B Description Pasha has recently bought a new phone jPager and started adding his friends phone numbers there. Each phone number consists of exact…

美女晕倒怎么办?二哈:这不是一滋就醒......

1 永远不要质疑二哈▼2 睡觉也不耽误练功▼3 谁还没为数学考试受过伤呢&#xff1f;▼4 可能我的嘴巴安装了笑话过滤器吧▼5 我书读得少&#xff0c;你别吓唬我▼6 希望狗没事儿▼7 海王的微信壁纸事实证明&#xff0c;会计确实不赚钱▼你点的每个赞&#xff0c;我都认真…

linux at java,Linux-Tutorial/Java-bin.md at master · linsanityHuang/Linux-Tutorial · GitHub

Java bin 目录下的工具JVM 内存结构运行时数据区(JVM 规范)VM 栈(JVM 虚拟机栈)是线程私有的&#xff0c;它的生命周期和线程相同。它描述的是 Java 方法执行的内存模式。Java 堆区(Heap)是 Java 虚拟机所管理的内存中最大的一块。是被所有线程共享的一块内存区域&#xff0c;在…

如何在 C# 中使用 FTP 上传文件

咨询区 webvision&#xff1a;我尝试用 C# 上传一个文件到 FTP-Server 上&#xff0c;文件已显示上传成功但显示 0Byte&#xff0c;我的代码大概是这样的。private void button2_Click(object sender, EventArgs e) {var dirPath "C:/Documents and Settings/sander.GD/B…

POJ 3274 Gold Balanced Lineup(哈希)

题目链接 很难想。会哈希&#xff0c;但是想不出。需要一个转化&#xff0c;本来是求某一段上的二进制上每一位的1数目相等&#xff0c;转化为找两段相等的&#xff0c;换元可推出公式。最后注意特判。。 1 #include <iostream>2 #include <cstdio>3 #include <…

java Ant build.xml

Java Ant build.xml详解1,什么是antant是构建工具 2,什么是构建 概念到处可查到&#xff0c;形象来说&#xff0c;你要把代码从某个地方拿来&#xff0c;编译&#xff0c;再拷贝到某个地方去等等操作&#xff0c;当然不仅与此&#xff0c;但是主要用来干这个 3,ant的好处 跨平台…

15℃!人类首次实现高压下室温超导,研究登上Nature封面

全世界只有3.14 % 的人关注了爆炸吧知识本文转自&#xff1a;机器之心今天一项新纪录&#xff0c;轰动整个物理界。「室温超导有可能实现吗&#xff1f;」这个问题困惑了人们许多年。而最新一期的 Nature 杂志封面研究给出了肯定的答案&#xff0c;该研究制造出了第一个无需冷却…

系统日子打印记录

#import <Foundation/Foundation.h>//DmLog----------------------------- #define DmLog_TYPE_1 1 //日志打印 1:开/0:关 #define __DmLOGWITHFUNCTION(s, ...) \ NSLog("%s : %",__FUNCTION__,[NSString stringWithFormat:(s), #…

linux下ui c语言编程,编写的C语言程序,怎么样制作一个UI界面?

c语言制作UI界面需要相关的UI库如windows操作系统本身就提供了UI的接口一个简单的示例代码如下#include LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hprevinstance,LPSTR line,int cmd){ static TCHAR AppName[]TEX…

使用自定义卫语句写出更简洁的代码

前言上次&#xff0c;我们介绍了Pitcher,可以帮我们简化卫语句&#xff1a;public User(string name, int age) {Throw.When(string.IsNullOrWhiteSpace(name), new ArgumentNullException(nameof(name)));Throw.When(age < 0, new ArgumentOutOfRangeException(nameof(age)…

Struts2的ResultType和Action处理链

Struts2的ResultType和Action处理链Struts2的结果类型在struts-default.xml中定义了Struts2内置的所有可用的<result-type/> 所有的Struts2结果处理类都要直接或间接的实现com.opensymphony.xwork2.Result接口 在struts-default.xml中的<result-types/>里面&#x…

git fork

http://help.github.com/fork-a-repo/ 概要&#xff1a; 克隆别人的代码库到自己的项目中&#xff0c;可以作为子模块的形式使用&#xff0c;或二次开发 操作流程&#xff1a; 在开源项目中点击fork按钮&#xff0c;稍等一会儿&#xff0c;该项目便会拷贝一份到你的respositori…

转软件开发过程中的各种文档

在项目开发过程中&#xff0c;应该按要求编写好十三种文档&#xff0c;文档编制要求具有  针对性、精确性、清晰性、完整性、灵活性、可追溯性。   ◇ 可行性分析报告&#xff1a;     说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性&#xff0c;评述 …