eclipse,myeclipse中java连接数据库的问题-阿里云开发者社区

开发者社区> edwardsbean> 正文

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包中,唉,下次这种低级错误还是少犯为妙

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

相关文章
阿里云 E-MapReduce ClickHouse 操作指南 05 期 — 常见问题
阿里云 E-MapReduce(简称 EMR )是运行在阿里云平台上的一种大数据处理的系统解决方案。ClickHouse 作为开源的列式存储数据库,主要用于在线分析处理查询(OLAP),能够使用 SQL 查询实时生成分析数据报告。而阿里云 EMR ClickHouse 则提供了开源 OLAP 分析引擎 ClickHouse 的云上托管服务。
280 0
【转】ADO.NET连接访问dbf数据库问题
from:http://space.cnblogs.com/question/7423/    悬赏园豆:20 [已解决问题] 浏览: 2067次   我发现当dbf文件的长度超过8的时候,使用OleDbCommand 查询就会出现“jet 数据库引擎找不到对象”的错误,我搜索到(http://space.cnblogs.com/question/2046/)说解决了这个问题,方法是将表的名字加个中括号。
1139 0
解决Mac启动Eclipse Memory Analyzer报错问题
转载至https://www.jianshu.com/p/9bbbe3c4cc8b
5082 0
MyEclipse 从数据库反向生成Hibernate实体类
         第一个大步骤 window-->open Perspective-->MyEclipse Java Persistence 进行了上面的 操作后会出现一个视图DB Brower:MyEclipse Derby,点击右键新建一个在出现的面板中,driver templat...
810 0
oauth2.0通过JdbcClientDetailsService从数据库读取相应的配置
oauth2.0通过JdbcClientDetailsService从数据库读取相应的配置 在上一节我们讲述的配置是把授权码存储在redis中,把相应的请求的路径用使用in-memory存储 ,这个是放在了内存中,但是实际开发我们的数据希望是从数据表中查询的,那应该怎么做呢? 1.
3438 0
关于java连接SQL数据库
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/53307371 1 .
685 0
eclipse连接远程hadoop集群开发时报错
<div style="font-family:Arial; font-size:14px; line-height:26px"> <div><strong>eclipse连接远程hadoop集群开发时报错</strong></div> <div><br></div> <div>Exception in thread "main" org.apache.hadoop.security
1160 0
【Web API系列教程】3.9 — 实战:处理数据(添加新条目到数据库)
在本节,你将添加让用户可以创建新book的功能。在app.js中,添加如下代码到视图模型: self.authors = ko.
753 0
+关注
98
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载