-Java连接Excel、MySQL、SQLServer数据源及相关增、删、改、查方法和问题总结-【Part III】
来源:互联网 发布:excel2016数据挖掘 编辑:程序博客网 时间:2024/06/05 02:10
【Part III】-Java连接SQLServer数据源及相关查询、插入、删除、更新方法和问题小结-
一、前言
接续【Part II】,在项目中,经常会遇到需要读取数据源数据并进行处理的场景,数据源通常为Excel、MySQL、SQLServer三种,不久前,我刚好参加了这样一个项目,同时涉及到了上述三种数据源,中途也踩了一些坑,因此,觉得有写一个总结的必要,希望对读到这篇文章的人能够有所帮助。
二、准备工作
需要下载一个jar包——sqljdbc4.jar,并通过:Build Path -> Configure Build Path -> Add External JARs 将sqljdbc4.jar导入到工程的Referenced Libraries中。注意:sqljdbc4.jar包配合的JRE为JDK1.6,版本不配合可能出现运行异常,相关内容可见:点击打开链接(http://blog.csdn.net/teamlet/article/details/52389665)
三、查询、插入、删除、更新的实现
3.1 创建连接
/** * constructs connection to SQLServer. * @since 2017.03.17 * @author ***** * @return Connection */public Connection connectToSQLServer(){ //数据库驱动,固定的,但根据SQL Server版本也有不同,自己百度找符合自己SQL Server版本的,这个是2014 String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //服务器URL,本地的话默认是1433端口 String DB_URI = "jdbc:sqlserver://localhost:1433;DatabaseName=TADAS"; //数据库用户名 String DB_USER = "sa"; //数据库用户密码 String DB_PWD = "123456"; //创建一个访问数据库的会话连接,初始化为null Connection conn=null; //测试链接是否成功 try { //加载驱动 Class.forName(DRIVER); //连接 conn = DriverManager.getConnection(DB_URI,DB_USER,DB_PWD); //若是连接成功则输出连接成功,否则会在console输出错误 System.out.println("连接成功!"); } catch(ClassNotFoundException e) { e.printStackTrace(); System.out.println("加载驱动失败!"); } catch(SQLException e) { e.printStackTrace(); System.out.println("连接失败!"); } return conn;}
3.2 查询并获取数据
从SQLServer数据库中读取数据的类型很多,这里仅以读取double类型数据为例,其它类型可以据此修改。
/** * Get data from SQLServer database. * @since 2017.03.17 * @author ***** * @return ArrayList<Double> * @param conn the connection for SQLServer, * @param SQL the command string to SQLServer, * @param columnIndex the first column is 1, the second is 2, ... */public ArrayList<Double> getDataFromDatabase(Connection conn,String SQLCommand,int columnIndex){//存储从数据库提取的数据ArrayList<Double> dataSet=new ArrayList<Double>();if(conn==null)return dataSet;Statement stmt = null;ResultSet rs = null;//访问数据库数据try{stmt = conn.createStatement();rs = stmt.executeQuery(SQLCommand);System.out.println("访问数据库成功!!");while (rs.next()) {//将所访问的整列数据存入dataSet中dataSet.add(rs.getDouble(columnIndex));}//关闭资源 //conn.close();//conn是形参传入,一般不关闭,主程序可能还需据此进行其它操作stmt.close();//2017.04.08添加}catch(SQLException e){e.printStackTrace();System.out.println("访问数据库失败!!");}return dataSet;}
3.3 更新(修改)数据库中的数据
数据库本身具有很大的灵活性,修改updateSqlCMD字符串,便可以执行各种各样的操作,如插入、删除等,这里就不在赘述了,读者完全可以根据下面的程序的主体构架,改写出自己需要的方法。
/** * 修改指定的数据库中的数据 * @author ***** * @since 2017.04.08 * @param conn * @param updateSqlCMD * @return true or false 分别代表修改成功、失败 */public boolean updateData(Connection conn,String updateSqlCMD){//容错设计if(conn==null)return false;Statement stmt = null;//访问数据库数据try{stmt = conn.createStatement();stmt.executeUpdate(updateSqlCMD);//如:"update [signal] set value=2 where id=1"System.out.println("更新数据成功!!");//关闭资源//conn.close();//conn为形式参数传入,主函数可能还需借此连接有其它操作,这里不关闭stmt.close();//2017.04.08添加return true;}catch(SQLException e){e.printStackTrace();System.out.println("更新数据失败!!");return false;}}
四、注意事项
使用SQLServer数据库,数据库所在服务器的设置一定要注意,否则,很可能出现访问超时一类的异常。配置方面的文章比较多,这里列出几个以供参考:
1、http://www.cnblogs.com/freeabyss/archive/2013/04/15/3187065.html
2、http://blog.csdn.net/stewen_001/article/details/19553173/(经验证,文中设置环境变量的部分并不需要,特此说明)
3、http://blog.csdn.net/qq_14994573/article/details/51584521
1 0
- -Java连接Excel、MySQL、SQLServer数据源及相关增、删、改、查方法和问题总结-【Part III】
- -Java连接Excel、MySQL、SQLServer数据源及相关增、删、改、查方法和问题总结-【Part I】
- -Java连接Excel、MySQL、SQLServer数据源及相关增、删、改、查方法和问题总结-【Part II】
- java连接MySql数据库和增删改查代码
- MySQL第六天---Java与数据库的连接(简单的增、删、改、查)Statement缺陷和子类PreparedStatement
- Java连接MySQL实现增删改查
- JAVA实现对SQLServer增,删,改,查
- python 连接 MySQL 配置及增 删 改 查的操作
- Java 与SQLserver的连接 与增删改查
- QTabelView的与数据库相关增、删、查、改总结
- java链接mysql以及sqlserver增删改查
- Java 中Oracle的基本连接、数据类型、及增、删、改、查操作
- C 语言连接mysql 执行 增、删、改、查、操作
- Nodejs连接mysql的增、删、改、查操作
- Nodejs连接mysql的增、删、改、查操作
- java连接redis中的数据查、增、改、删操作的方法
- java连接sqlserver数据源配置
- Go操作mysql实现增删改查及连接池
- 第三十八讲项目二 打豆豆
- 【BZOJ2002】弹飞绵羊(HNOI2010)-LCT模板题
- Keep In Line
- 第19节:Scala偏函数、异常、Lazy值编码
- 剑指offer-公司员工的年龄
- -Java连接Excel、MySQL、SQLServer数据源及相关增、删、改、查方法和问题总结-【Part III】
- 新建个人原创站运维网咖社(www.net-add.com)
- 798D的二维贪心与C的思维
- React可视化
- Leetcode 91. Decode Ways
- python读取大文件
- ibatis调用mysql函数
- Linux环境下获取当前主机的IP/MAC等信息(C/C++)
- Oracle更新的多种场景