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

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: <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包中,唉,下次这种低级错误还是少犯为妙

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
2024年阿里云数据库创建_数据库账号密码和连接教程
阿里云数据库怎么使用?阿里云百科整理阿里云数据库从购买到使用全流程,阿里云支持MySQL、SQL Server、PostgreSQL和MariaDB等数据库引擎,阿里云数据库具有高可用、高容灾特性,阿里云提供数据库备份、恢复、迁移全套解决方案。详细阿里云数据库购买和使用流程方法如下
|
1月前
|
数据采集 Java 关系型数据库
Java代码高效连接数据库
Java代码高效连接数据库
18 2
|
17天前
|
存储 NoSQL Java
Java数据库编程指南:实现高效数据存储与访问
【4月更文挑战第2天】Java开发者必须掌握数据库编程,尤其是JDBC,它是连接数据库的标准接口。使用Spring JDBC或JPA能简化操作。选择合适的JDBC驱动,如MySQL Connector/J,对性能至关重要。最佳实践包括事务管理、防SQL注入、优化索引和数据库设计。NoSQL数据库如MongoDB也日益重要,Java有对应的驱动支持。理解这些概念和技术是构建高效数据库应用的基础。
Java数据库编程指南:实现高效数据存储与访问
|
28天前
|
SQL 关系型数据库 MySQL
阿里云MySQL数据库价格、购买、创建账号密码和连接数据库教程
阿里云数据库使用指南:购买MySQL、SQL Server等RDS实例,选择配置和地区,完成支付。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码访问。同地域VPC内的ECS需将IP加入白名单以实现内网连接。参考链接提供详细步骤。
367 3
|
1天前
|
前端开发 NoSQL JavaScript
java域控连接AD遇到的问题
java域控连接AD遇到的问题
|
4天前
|
SQL 缓存 Java
Java数据库连接池:优化数据库访问性能
【4月更文挑战第16天】本文探讨了Java数据库连接池的重要性和优势,它能减少延迟、提高效率并增强系统的可伸缩性和稳定性。通过选择如Apache DBCP、C3P0或HikariCP等连接池技术,并进行正确配置和集成,开发者可以优化数据库访问性能。此外,批处理、缓存、索引优化和SQL调整也是提升性能的有效手段。掌握数据库连接池的使用是优化Java企业级应用的关键。
|
5天前
|
JavaScript 关系型数据库 MySQL
❤Nodejs 第二章(Node连接本地数据库)
【4月更文挑战第2天】本文介绍了如何使用Node.js连接本地MySQL数据库。首先,提到了在MySQL官网下载安装数据库和使用Navicat for MySQL进行数据库管理。接着,通过`yarn add mysql`在项目中安装数据库依赖。然后,创建`app.js`文件,设置数据库连接参数,并建立连接进行查询操作。遇到导入模块的错误后,修改导入方式为CommonJS语法。
19 1
|
7天前
|
SQL 监控 关系型数据库
PG数据库释放闲置连接
PG数据库释放闲置连接
13 0
|
17天前
|
弹性计算 关系型数据库 MySQL
阿里云数据库服务器价格表,数据库创建、连接和使用教程
阿里云数据库使用流程包括购买和管理。选择所需数据库类型如MySQL,完成实名认证后购买,配置CPU、内存和存储。确保数据库地域与ECS相同以允许内网连接。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码连接。同一VPC内的ECS需添加至白名单以进行内网通信。参考官方文档进行详细操作。
77 3
|
18天前
|
网络协议 数据库连接 网络安全
DM数据库连接数据库时报:创建sokect连接失败
DM数据库连接数据库时报:创建sokect连接失败
12 0

推荐镜像

更多