昨天因为学习SSH框架的搭建,时隔一年又重新遇到了myEclipse连接数据库的问题。废话不多说,上干货
(以下全部按照我遇到的问题的顺序,也就是没有顺序,就是任性)
请注意:这是在myEclipse6.5+SQL Server2008的前提下出现的问题,当用mySQL或者SQL2000以前,或者用oracle云云时,里面用的jar包都不一样的!不可参照下列哦~
1、MyEclipse 数据库连接创建失败,出现 Driver class not found
这是搭建SSH框架,在数据库连接时加载sqljdbc4.jar包的时候出现错误提示。感觉一切都按照资料中的步骤走的,并且确保以下都正确:
(1)Driver template选择空白
(2)Driver name 为sql2008(随便写的名字),
(3)Connection URL是 jdbc:sqlserver://localhost:1433;databasename=master (确保你的数据库端口号是1433<怎么设置请看下文>,并且电脑中安装的sql2008中有名为master的数据库<一般都有>)
(4)User name 是 sa(这个根据你的数据库登录时候的)
(5)password 是 sql2008(这根据你的数据库登录时候的)
(6)DriverClassName是 com.microsoft.sqlserver.jdbc.SQLServerDriver
Add JARs 的时候明明检查了sqljdbc4.jar包存在,并且资料上说SQL2005及以上要用sqljdbc4.jar(不要sqljdbc.jar包),但是啊但是!就是在头上会出现 Driver class not found 怎么办?查阅无数资料说明,原来用SSH框架搭建的时候不比用servlet+javabean+jsp的时候,只需要sqljdbc4.jar,这时候需要两个jar包,或者说这时候sqljdbc.jar更需要(有时候不需要sqljdbc4.jar,看你的系统),因此,下载数据库的驱动jar包(http://www.microsoft.com/zh-cn/download/details.aspx?id=21599),解压后放在C:\Program Files (x86)\Microsoft SQL Server JDBC Driver
如图:
记得要配置环境环境变量:计算机->属性->高级系统设置->环境变量->双击系统变量中CLASSPATH,在变量值中加上 ;C:\Program Files (x86)\Microsoft SQL Server JDBC Driver\sqljdbc_3.0\chs\sqljdbc4.jar (前面的分号;’不要忘!)
前面完成了,jar包也有了,基本上不会出什么大问题,但是!这时候好像还是不行,那就可能是jar包坏了(为什么会坏,我也没干什么啊,但是就是有人会遇到我这种问题,可能拷贝的时候出了错?总之,什么问题都检查不出的时候,你就试试到官网上重新下载个jar包《这里解压后有sqljdbc4.jar和sqljdbc.jar--->http://www.microsoft.com/zh-cn/download/details.aspx?id=21599》)
2、数据库TCP/IP协议没有打开,端口号也没有设置(接收的协议没打开,你让人数据库怎么和你沟通)
很简单,开始菜单->Microsoft SQL Server 2008->配置工具->SQL Server配置管理器->SQL Server网络配置->SQLEXPRESS的协议,将TCP/IP的状态从禁用改为启用,如下图:
然后右击TCP/IP点属性,将IP1和IPALL中的TCP端口改为1433,如下图(完美)
3、用MVC模式开发Java Web 连接数据库的方法,我目前知道三种方法(servlet中直接连接;web.xml中初始化共用参数,然后servlet中调用参数连接;建立连接池),但是我今天先只讲第一种,最直接简单的(毕竟今天比较忙~)
当确保你的数据库可以用、TCP/IP协议打开、端口号设置为1433了、准备了sqljdbc4.jar包以后,开始吧:
(1)在项目工程的src文件下创建servlet(这不要讲都会的吧?src-new-servlet 看下图设置,然后next-finish 即可)
然后在init方法函数下如下键入:
public void init() throws ServletException {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url="jdbc:sqlserver://localhost:1433;databasename=mySales";
String user="sa";
String password="sql2008";
conn=DriverManager.getConnection(url,user,password);
//在浏览器中输入http://localhost/MyWeb/servlet/JDBCServlet1 的时候,在myEclipse的控制台中看到 i am ssh ok 就连成了
System.out.println("i am myweb ok");
/* stmt=conn.createStatement(); //这个是输出数据库中的数据代码,不用也无所谓
stmt.executeUpdate("use mySales");
String sql="select * from orders";
rs=stmt.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getInt("orderid"));
}
*/
//System.out.println(); //true
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("myweb ClassNotFoundException"); //控制台输出这个就说明这里出错了
} catch (SQLException e) {
e.printStackTrace();
System.out.println("myweb SQLException");
}
}
注意消除一些引用方法的时候出现的错误,下图注意添加
很简单对不?但是你的控制台出现了一大堆错误对不?慢慢检查然后纠正吧少年们~
最后的最后分享个我的一大堆错误中的一个:找不到jar包(不记得当时控制台的错误代码是什么,但是大概翻译是找不到Driver,或者驱动不支持什么的)
这个时候就要用到sqljdbc4.jar包了(因为我的jdk版本是1.7.0,当jdk版本貌似?高于1.6.0的时候sqljdbc.jar包已经不适用)<怎么看自己安装的jdk版本看下文>
将准备好的jar包复制到WEB INF 下的lib文件夹中即可!(修改了Java文件记得要重启tomcat服务器才能生效哦)
4、怎么查阅jdk版本?
开始->运行->然后输入cmd进入dos界面,输入java -version , 出现以下信息就可以看出你安装的jdk版本
未完待续