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

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#中checked关键字的使用小结

《C#中checked关键字的使用小结》本文主要介绍了C#中checked关键字的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录✅ 为什么需要checked? 问题:整数溢出是“静默China编程”的(默认)checked的三种用

SpringBoot全局异常拦截与自定义错误页面实现过程解读

《SpringBoot全局异常拦截与自定义错误页面实现过程解读》本文介绍了SpringBoot中全局异常拦截与自定义错误页面的实现方法,包括异常的分类、SpringBoot默认异常处理机制、全局异常拦... 目录一、引言二、Spring Boot异常处理基础2.1 异常的分类2.2 Spring Boot默

C#中预处理器指令的使用小结

《C#中预处理器指令的使用小结》本文主要介绍了C#中预处理器指令的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 第 1 名:#if/#else/#elif/#endif✅用途:条件编译(绝对最常用!) 典型场景: 示例

JAVA Calendar设置上个月时,日期不存在或错误提示问题及解决

《JAVACalendar设置上个月时,日期不存在或错误提示问题及解决》在使用Java的Calendar类设置上个月的日期时,如果遇到不存在的日期(如4月31日),默认会自动调整到下个月的相应日期(... 目录Java Calendar设置上个月时,日期不存在或错误提示java进行日期计算时如果出现不存在的

Nginx错误拦截转发 error_page的问题解决

《Nginx错误拦截转发error_page的问题解决》Nginx通过配置错误页面和请求处理机制,可以在请求失败时展示自定义错误页面,提升用户体验,下面就来介绍一下Nginx错误拦截转发error_... 目录1. 准备自定义错误页面2. 配置 Nginx 错误页面基础配置示例:3. 关键配置说明4. 生效

Mysql中RelayLog中继日志的使用

《Mysql中RelayLog中继日志的使用》MySQLRelayLog中继日志是主从复制架构中的核心组件,负责将从主库获取的Binlog事件暂存并应用到从库,本文就来详细的介绍一下RelayLog中... 目录一、什么是 Relay Log(中继日志)二、Relay Log 的工作流程三、Relay Lo

使用Redis实现会话管理的示例代码

《使用Redis实现会话管理的示例代码》文章介绍了如何使用Redis实现会话管理,包括会话的创建、读取、更新和删除操作,通过设置会话超时时间并重置,可以确保会话在用户持续活动期间不会过期,此外,展示了... 目录1. 会话管理的基本概念2. 使用Redis实现会话管理2.1 引入依赖2.2 会话管理基本操作

Springboot请求和响应相关注解及使用场景分析

《Springboot请求和响应相关注解及使用场景分析》本文介绍了SpringBoot中用于处理HTTP请求和构建HTTP响应的常用注解,包括@RequestMapping、@RequestParam... 目录1. 请求处理注解@RequestMapping@GetMapping, @PostMappin

springboot3.x使用@NacosValue无法获取配置信息的解决过程

《springboot3.x使用@NacosValue无法获取配置信息的解决过程》在SpringBoot3.x中升级Nacos依赖后,使用@NacosValue无法动态获取配置,通过引入SpringC... 目录一、python问题描述二、解决方案总结一、问题描述springboot从2android.x

SpringBoot整合AOP及使用案例实战

《SpringBoot整合AOP及使用案例实战》本文详细介绍了SpringAOP中的切入点表达式,重点讲解了execution表达式的语法和用法,通过案例实战,展示了AOP的基本使用、结合自定义注解以... 目录一、 引入依赖二、切入点表达式详解三、案例实战1. AOP基本使用2. AOP结合自定义注解3.