开发者社区> edwardsbean> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

eclipse,myeclipse中java连接数据库的问题

简介: <p>首先,如果没有msbase.jar,mssqlserver,msutil.jar这三个包连接sql需要的包,编写好代码运行会出现异常:</p> <p><strong><span style="color:#ff0000">java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver(也有
+关注继续查看

首先,如果没有msbase.jar,mssqlserver,msutil.jar这三个包连接sql需要的包,编写好代码运行会出现异常:

java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver(也有可能是因为SQL1433端口没开)

解决办法:在工程目录右击属性->构建路径->选择库标签,添加外部jars包,把三个jar包导入即可。放到lib下 Eclipse会自动帮你 build path 放其他地方的话 就需要你手动build path

(如果是myeclipse中的servlet,jsp的。加载路径就好:


)

接下来开始编写代码:


   String sql = "use spdb select * from users";
    //指定好驱动
   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();


    // 连接字符串,格式:( "jdbc:公司名称:数据库驱动名称://数据库服务器ip:端口号;DatabaseName=数据库名称","数据库账号","密码")

   Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName = spdb", "sa","sa"); 


   Statement  stmt = conn.createStatement();


     //返回记录
   ResultSet  rs   = stmt.executeQuery(sql);


   while(rs.next()){   
   String s = rs.getString(2);
   System.out.println(s);


这时有可能出现问题:

问题1:异常[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 'sa' 登录失败

解决办法:

第一步:在打开SQL的服务器(用本地登陆SQL后,对象资源管理器里的绿色图标),属性里面->安全性,设置为windows和sql混合身份验证模式。

第二步:回到对象资源管理器,展开安全性选项,右击sa属性,在状态里面改为启用。(如果不用sa,也可以重新创建一个账户)

这两步都好了,必须要在配置管理中关掉SQL的服务,重启。否则任然出现登陆失败。



问题2:异常[Microsoft][SQLServer 2000 Driver for JDBC]Invalid operation for the current cursor position.

解决办法:如果原本数据库中就没有值,那么会出现该警告。但是我的数据库中有值。百度后得到的结果是:问题很简单,默认打开时的游标不是在第一行上(而是在第一行之前),所以你根本不能取数据,当然需要使用rs.next()来移动游标才行. 

解决之后还是会出现该警告,后来发现是要在查询语句中加入use spdb,即sql = "use spdb select 

* from users"












以下为一些小问题:

关键字 'from' 附近有语法错误:

在调用这个pr=ct.prepareStatement("select top "+pageSize+" * from users");的时候,top后面空格,*号前面空格要加



这里有个statement和prestatement的差别
第一:


prepareStatement会先初始化SQL,先把这个SQL提交到数据库中进行预处理,多次使用可提高效率。  
createStatement不会初始化,没有预处理,没次都是从0开始执行SQL


第二:


prepareStatement可以替换变量  
在SQL语句中可以包含?,可以用ps=conn.prepareStatement("select * from Cust where ID=?");  
int sid=1001;  
ps.setInt(1, sid);  
rs = ps.executeQuery();  
可以把?替换成变量。  
而Statement只能用  
int sid=1001;  
Statement stmt = conn.createStatement();  
ResultSet rs = stmt.executeQuery("select * from Cust where ID="+sid);  
来实现。


第三:


prepareStatement会先初始化SQL,先把这个SQL提交到数据库中进行预处理,多次使用可提高效率。  
createStatement不会初始化,没有预处理,没次都是从0开始执行SQL



 今天出现编码出现了No suitable driver found for jdbc,又是找遍了网上的资料,基本上都说是三个问题:
    一是:连接URL格式出现了问题(Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/XX","root","XXXX")
    二是:驱动字符串出错(com.mysql.jdbc.Driver)
    三是Classpath中没有加入合适的mysql_jdbc驱动
    经过我的仔细检查,这三种错误我都没有犯,为什么呢?
    尝试着将mysql-connector-java-3.1.14-bin.jar的jar包加入C:\Program Files\Java\jre1.6.0_02\lib\ext文件夹下,问题解决了!!
    原来是不仅仅要求将驱动加入classpath中,而且需要将该jar包加入到java运行环境的外部jar包中,唉,下次这种低级错误还是少犯为妙

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Eclipse-安装Freemarker插件
引言   我们在使用 Eclipse 开发 Java Web 程序时会使用 Freemarker 模板引擎,以帮助我们快速、便捷和结构化的创建页面,但是 Eclipse 显示生成的*.ftl文件如同在普通文本编辑器上打开一样,不方便查看,本文主要介绍如何在 Eclipse 上安装 Freemarker 插件方便查看*.ftl文件。
2422 0
在eclipse中安装jadclipse的反编译插件
1:首先确定要下载的版本:    下载jadclipse_3.1.0.jar版本,该版本支持eclipse3.1M6~3.2M2     下载jadclipse_3.2.0.jar版本,该版本支持eclipse3.2M3和eclipse3.2M4.     下载jadclipse_3.2.4.jar版本,该版本支持eclipse3.2M5~3.3M5 版本不匹配的话会出现错误。
883 0
eclipse安装M2Eclipse插件
作者:david_zhang@sh 【转载时请以超链接形式标明文章】 链接:http://www.cnblogs.com/david-zhang-index/p/7967333.html   图1:  图2:  图3:我本机eclipse有点问题,所有这里出现了警告,正常不会。
1129 0
Eclipse_插件_02_jd-eclipse插件的安装
1.去官网下载 jd-eclipse插件  2.解压后的文件夹A放到eclipse的drops文件夹下 3.删掉多余文件,确保文件夹A下只有plugin 和 freature 两个文件夹 4.清空osgi文件夹     注:若解压后的文件只有一个jar,则将此jar放到drops文件夹下...
1147 0
eclipse集成html5插件
1. 在线安装:Help-&gt;Install New Software...-&gt;Add...-&gt; Name: "Aptana",  Location: http://download.aptana.com/studio3/plugin/install【正确地址】 下载完毕,按步骤一步一步next,最后重启 Eclipse 。 2.给Apt
974 0
Google 发布 Eclipse 插件.支持GWT 和 APP
好高兴.   内容如标题:     http://code.google.com/intl/en/eclipse/   地址.....   自己先顶个.
942 0
eclipse中设置java虚拟机内存
遇到内存溢出问题,就设置内存大小,是最直接的解决办法。 但是,这不是解决问题根本的关键,也只能凑合着用。。 这里说的是在eclipse中设置, window-->preferences 上图 最后直接输入需要的大小,或者,直接点击Variables…来设置。
1163 0
+关注
98
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载