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

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

相关文章

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(