-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
原创粉丝点击