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')

数据库平时错误和使用经验的总结相关推荐

  1. mysql数据库1067错误

    mysql数据库1067错误 1.配置my.ini 打开配置文件[my.ini]找到[innodb_additional_mem_pool_size=4M]在此下面空一行,添加如下信息[innodb_ ...

  2. SQL数据库挂起 SQL数据库附加报错 SQL数据库824错误修复

    SQL数据库挂起 SQL数据库附加报错 SQL数据库824错误修复 数据类型 MSSQL 2012 数据大小 4.5 GB 故障检测 附加数据库提示824错误 一般是由于断电非法关机导致页面损坏. 客 ...

  3. 无限踩坑系列(6)-mySQL数据库链接错误

    mySQL数据库链接错误 错误1 错误2 长链接短连接 应用场景需要一直访问mySQL数据库,遇到如下错误: 错误1 释放已经释放的数据库链接conn.,或者,操作已经释放的数据库链接conn.或者失 ...

  4. oracle 28000错误码,Oracle数据库 ORA-28000 错误处理方式

    Oracle数据库ORA-28000错误处理方式 ORA-28000:the account is locked-的解决办法 ORA-28000:the account is locked 第一步:使 ...

  5. 文件夹错误 分配句柄_重启数据库遇到错误ORA27154,ORA27300,ORA27301,ORA27302

    作者 | JiekeXu 来源 | JiekeXu之路(ID: JiekeXu_IT) 转载请联系授权 | (微信ID:xxq1426321293) 大家好,我是 JiekeXu,很高兴又和大家见面了 ...

  6. pycharm连接mysql1193错误_pycharm连接mysql数据库提示错误的解决方法_数据库

    忘记phpmyadmin密码怎么重置_数据库 重置phpmyadmin密码的方法是:1.停止mysql服务:2.跳过验证启动mysql:3.重新设置密码:4.更新权限:5.重新启动mysql,如[ki ...

  7. oracle24801错误,[数据库]oracle错误(ORA

    [数据库]oracle错误(ORA 0 2015-12-25 17:00:33 1.问题:数据库从其他库同步一张大表时,出现错误ERROR at line 3:ORA-24801: illegal p ...

  8. entity framework 删除数据库出现错误的解决方法--最土但是很有效的方法

    entity framework 删除数据库出现错误的解决方法--最土但是很有效的方法 参考文章: (1)entity framework 删除数据库出现错误的解决方法--最土但是很有效的方法 (2) ...

  9. asp.net登陆数据库的错误解决

    asp.net登陆数据库的错误解决 用户 'abc\ASPNET' 登录失败. > 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的 ...

最新文章

  1. HDOJ2020 ( 绝对值排序 ) 【水题】
  2. 快速选择思维导图软件,就是这么任性
  3. Python 计算机视觉(二) —— OpenCV 基础
  4. mybatis中$和#的区别
  5. 人脸识别(二)——训练分类器的补充说明
  6. 数字频率计的verilog实现
  7. CSS代码重构与优化之路(转)
  8. Linux运维实战|大文件切割
  9. java biginteger相比_java Biginteger类
  10. 敏感词过滤-DFA算法
  11. selenium+python自动化106 - 滑动 iframe 上的滚动条
  12. java开发工具排名_排名前16的Java工具类
  13. 企业财务报表分析有什么用,方法有哪些
  14. python + Selenium 实现自动化查询问财数据及下载Excel数据并存入到mysql
  15. docker docker安装app
  16. c语言程序设计年份,C语言程序设计 输出任意年份的日历
  17. 科技云报道:安全脱管不如托管
  18. Java面向对象原谅帽
  19. OpenAI 人工智能绘图工具 DALLE 好用吗?
  20. C#/VB.NET 将Html转为Excel

热门文章

  1. OxyPlot.SkiaSharp中文显示乱码的问题
  2. Visual Studio SnippetDesigner使用
  3. 好的自我介绍,面试成功一大半
  4. Http Server API路由请求到web程序
  5. dotNET知音,19年归档
  6. .NET Core玩转爬虫系列之借助正则表达式入门篇
  7. 程序员修神之路--redis做分布式锁可能不那么简单
  8. 分享一个.NET平台开源免费跨平台的大数据分析框架.NET for Apache Spark
  9. .NETCore 实现容器化Docker与私有镜像仓库管理
  10. MEF 插件式开发 - DotNetCore 初体验