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

2024-05-29 15:58

本文主要是介绍数据库平时错误和使用经验的总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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.chinasem.cn/article/1013980

相关文章

C语言中联合体union的使用

本文编辑整理自: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=179471 一、前言 “联合体”(union)与“结构体”(struct)有一些相似之处。但两者有本质上的不同。在结构体中,各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量

关于C++中的虚拟继承的一些总结(虚拟继承,覆盖,派生,隐藏)

1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下: class A class B1:public virtual A; class B2:pu

[职场] 护理专业简历怎么写 #经验分享#微信

护理专业简历怎么写   很多想成为一名护理方面的从业者,但是又不知道应该怎么制作一份简历,现在这里分享了一份护理方面的简历模板供大家参考。   蓝山山   年龄:24   号码:12345678910   地址:上海市 邮箱:jianli@jianli.com   教育背景   时间:2011-09到2015-06   学校:蓝山大学   专业:护理学   学历:本科

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

C++工程编译链接错误汇总VisualStudio

目录 一些小的知识点 make工具 可以使用windows下的事件查看器崩溃的地方 dumpbin工具查看dll是32位还是64位的 _MSC_VER .cc 和.cpp 【VC++目录中的包含目录】 vs 【C/C++常规中的附加包含目录】——头文件所在目录如何怎么添加,添加了以后搜索头文件就会到这些个路径下搜索了 include<> 和 include"" WinMain 和

Vim使用基础篇

本文内容大部分来自 vimtutor,自带的教程的总结。在终端输入vimtutor 即可进入教程。 先总结一下,然后再分别介绍正常模式,插入模式,和可视模式三种模式下的命令。 目录 看完以后的汇总 1.正常模式(Normal模式) 1.移动光标 2.删除 3.【:】输入符 4.撤销 5.替换 6.重复命令【. ; ,】 7.复制粘贴 8.缩进 2.插入模式 INSERT

Lipowerline5.0 雷达电力应用软件下载使用

1.配网数据处理分析 针对配网线路点云数据,优化了分类算法,支持杆塔、导线、交跨线、建筑物、地面点和其他线路的自动分类;一键生成危险点报告和交跨报告;还能生成点云数据采集航线和自主巡检航线。 获取软件安装包联系邮箱:2895356150@qq.com,资源源于网络,本介绍用于学习使用,如有侵权请您联系删除! 2.新增快速版,简洁易上手 支持快速版和专业版切换使用,快速版界面简洁,保留主

如何免费的去使用connectedpapers?

免费使用connectedpapers 1. 打开谷歌浏览器2. 按住ctrl+shift+N,进入无痕模式3. 不需要登录(也就是访客模式)4. 两次用完,关闭无痕模式(继续重复步骤 2 - 4) 1. 打开谷歌浏览器 2. 按住ctrl+shift+N,进入无痕模式 输入网址:https://www.connectedpapers.com/ 3. 不需要登录(也就是

十五.各设计模式总结与对比

1.各设计模式总结与对比 1.1.课程目标 1、 简要分析GoF 23种设计模式和设计原则,做整体认知。 2、 剖析Spirng的编程思想,启发思维,为之后深入学习Spring做铺垫。 3、 了解各设计模式之间的关联,解决设计模式混淆的问题。 1.2.内容定位 1、 掌握设计模式的"道" ,而不只是"术" 2、 道可道非常道,滴水石穿非一日之功,做好长期修炼的准备。 3、 不要为了

[职场] 公务员的利弊分析 #知识分享#经验分享#其他

公务员的利弊分析     公务员作为一种稳定的职业选择,一直备受人们的关注。然而,就像任何其他职业一样,公务员职位也有其利与弊。本文将对公务员的利弊进行分析,帮助读者更好地了解这一职业的特点。 利: 1. 稳定的职业:公务员职位通常具有较高的稳定性,一旦进入公务员队伍,往往可以享受到稳定的工作环境和薪资待遇。这对于那些追求稳定的人来说,是一个很大的优势。 2. 薪资福利优厚:公务员的薪资和