致力于技术进步

专注于编程艺术

博客园 首页 新随笔 联系 订阅 管理

java ecplise问题集锦


Java连接SQL Server 2005

一、JAVA连接SQL的语句
JAVA连接SQL2000语句为:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
DriverManager.getConnection("jdbc:odbc:数据库名","数据库登录名","登录密码");
但连接SQL2005,已经改为:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
DriverManager.getConnection("jdbc:sqlserver://localhost:1433;
DatabaseName=数据库名","数据库登录名","登录密码");
二、JAVA连接SQL都要用到驱动程序
SQL2000需要三个jar包:mssqlservice.jar,msutil.jar,msbase.jar
SQL2005需要一个jar包:sqljdbc.jar
所以SQL2000和2005的连接方法是不一样的,
到微软下载"Microsoft SQL Server 2005 JDBC Driver"最新版本,现在的应该是1.2
下面Microsoft SQL Server 2005 JDBC Driver的安装说明:
1. 将 sqljdbc__enu.exe 下载
2. 运行 sqljdbc__enu.exe
3. 出现提示时,输入安装目录;建议您将此 zip 文件解压缩到 %ProgramFiles% 中的默认目录下:
Microsoft SQL Server 2005 JDBC Driver
4.在环境变量*****PATH后加上C:\Program Files\Microsoft SQL Server 2005 JDBC
Driver\sqljdbc_1.2\enu\sqljdbc.jar(这是1.2版的,其它版本按实际修改......)
但上面只解决了驱动程序的问题.....
三、另外有时候会出现"SQL SERVER 2005使用sa 登录失败-提示该用户与可信 SQL Server 连接无关联"或除sa外的用户登录失败的问题.
解决方法如下:
1.打开SQL Server Management Studio
2.右键点击服务器,选择Properties(属性),点击Security(安全性),
将server authentication服务器身份认证从windows authentication mode(windows身份认证模式)
修改为Sql Server and Windows Authentication mode(SQL server和windows身份认证模式).
3.回到SQL Server Management Studio服务器那,在服务器下双击打开security(安全性) -- logins(登录名)
,右键选中sa,选择properties(属性),点击Status(状态),在设置中将Login(登录)设置为Enabled(启用)。(忘记sa密码的可在常规修改密码)

四、设置SQL Server服务器
1、打开SQL Server Configuration Manager”,双击“SQL Server 2005网络配置”,点击“MSSQLSERVER
的协议”
2、如果“TCP/IP”没有启用,右键单击选择“启动”。
3、双击“TCP/IP”进入属性设置,在“IP 地址”里,可以配置“IPAll”中的“TCP 端口”,默认为1433,将IP地址中的“已启用”设为“是”。
4、重新启动SQL Server
5、运行正常。


数据库连接代码
  String driveName ="com.microsoft.sqlserver.jdbc.SQLServerDriver";
  String dbUrl = "jdbc:sqlserver://localhost:1433;DatabaseName=BEye_01_CaseData";
  String userName="sa";
  String userPwd="sa";
  Connection dbConn;
  try
  {
   Class.forName(driveName);
   dbConn = DriverManager.getConnection(dbUrl, userName, userPwd);
   Print("连接数据库成功!");
   Print(dbConn.toString());
   Statement stmt  = dbConn.createStatement();
   ResultSet rs = stmt.executeQuery("SELECT  * FROM User_Account");
   while(rs.next())
   {
    Print(rs.getString("Name")+"------"+rs.getString("Name"));
   }
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }

 

错误搜集:
The server does not support version 3.0 of the J2EE Web module specification
1.错误:
在eclipse中使用run->run on server的时候,选择tomcat6会报错误:The server does not support version 3.0 of the J2EE Web module specification

2.原因:
Tomcat 6.0最多支持Servlet 2.5,而现在要import的项目是3.0版本的。

3.解决方法:
在项目根目录下有一个.settings的文件夹,该文件夹下有一个org.eclipse.wst.common.project.facet.core.xml文件,内容如下:


<?xml version="1.0" encoding="UTF-8"?><faceted-project>  <fixed facet="java"/>  <fixed facet="jst.web"/>  <fixed facet="wst.jsdt.web"/>  <installed facet="java" version="1.6"/>  <installed facet="jst.web" version="3.0"/>  <installed facet="wst.jsdt.web" version="1.0"/></faceted-project>把

<installed facet="jst.web" version="3.0"/>改为

<installed facet="jst.web" version="2.5"/>即可


Eclipse开发Web项目
http://wenku.baidu.com/view/e807cb4669eae009581bec08.html

 

Eclipse Java EE IDE 中使用Tomcat 5X 6X 的一些问题(配置,发布相关)
http://wenku.baidu.com/view/28c4a82e2af90242a895e5cb.html


Eclipse中外部的jar文件引入的方式如下:

右键单击test包下的JListTest.java文件,依次选择build path->configure build path,在打开的窗体下选择Libraries,单击Add External Jars按钮,选择你自己的jar文件,然后打开,点击ok结束


eclipse中几种加入jar包方式的区别
http://www.cppblog.com/wythern/archive/2012/05/17/175205.aspx
关键问题:
5.当出现java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener类似这种找不到Listener的异常 时,要切记spring的jar包一定要放在工程的lib下这样才能避免这个错误的发生。

补充:虽说无论用什么方式导入包在本地运行都是一样的,但实事上我运行时,有的只有Java Build Path才起作用,有的只有导入到lib下才行。用Java Build Path导入包和把包复制到lib下是有区别的,它俩其实不会冲突,也没有什么关系的,Java Build Path是我们编译需要的包,在比如在import ***.***.***时如果没用Java Build Path导入包的话类里面就有红叉,说不识别这个类;导入到lib下是程序运行时需要的包,即便用Java Build Path导入过的包,没放到lib下,运行项目时会出现ClassNotFoundException的异常。


jsp中文显示乱码解决方案
http://www.blogjava.net/yaya/archive/2008/10/05/232513.html


Java如何获取ResultSet记录行数 
java获取数据行数的代码如下:
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt.executeQuery(sql);
rs.last();
int length = rs.getRow();
length的值就是行数了。

如果在获取了行数后,还需要继续使用当前数据集rs,则需要运行rs.beforeFirst();将游标回到初始位置。


 

posted on 2012-10-19 08:39  stephen&amp;#183;周  阅读(159)  评论(0)    收藏  举报