上一篇文章《通过JDBC/ODBC方法连接SQL Servers与MyEclipe(SQL)》介绍了 如何通过JDBC/ODBC方法实现MyEclipe和SQL Server连接,但是因为这种方法效率较低而且现在sun公司已经不支持了,我们会在花一个篇幅的时间介绍微软的JDBC,实现MyEclipe和SQL Server之间的连接。
1. JDBC Driver安装
因为我用的是SQL2012 所以选择的版本是 Microsoft JDBC Driver 4.0 for SQL Server,可以到 微软官方下载 或者 其他下载 获取软件~
下载之后解压,可以得到sqljdbc4.jar包,将sqljdbc4.jar 放到D盘目录下 D:\Program Files\JDBC\sqljdbc4\sqljdbc4.jar
2. 修改系统变量
右键 我的电脑 -> 属性 -> 高级系统设置(高级) -> 环境变量, 编辑 “CLASSPATH"系统变量,在最后追加步骤一中的地址 (;D:\Program Files\JDBC\sqljdbc4\sqljdbc4.jar 注意用英文分号)
3. 将 sqljdbc4.jar 放到如下几个地方
a. C:\Program Files\Java\jdk1.8.0_51\jre\lib\ext
b. C:\Program Files\Java\jre1.8.0_51\lib\ext
c. D:\soft\apache-tomcat-8.0.21-windows-x86\lib
a.和 b. 取决于你安装 JDK 的路径, c. 是按照你 tomcat 的安装路径来的~
接下来我们配置 SQL Server
4. 修改为 SQL Server 身份验证,具体参考 http://jingyan.baidu.com/article/380abd0aa8f2311d90192cd0.html
这个时候我将用户名设置为 sa , 密码是 saberhao123,记住咯 ,下面我们还会用到!~
5. 配置 Sql server 网络配置协议
运行 开始 → 所有程序 → Microsoft SQL Server 2012 → 配置工具 →SQL Server配置管理器,如下图
我们可以看到你自己建立的数据库的相关协议,我的就是 “SABERHAO的协议”,我们需要对我们的数据库做如下修改
a. 右键 Named Pipes 启用
b. 右键TCP/IP 启用
c. 右键 TCP/IP 属性,弹出 TCP/IP属性 对话框, 点击 IP 地址,将 IP1和 IP7 的 TCP动态端口 设置为 127.0.0.1,将所有IP端口的 已启用 设置为 是 ,最后将IPAII的 TCP动态端口 设置为 1433
点击应用,配置完成,重启电脑生效
6.重启电脑完毕,使用telnet命令测试1433端口是否打开
a. 打开 win7 telnet,度娘说,方法我这里有,请点击
b. 在命令行输入 :telnet 127.0.0.1 1433,(注意telnet与127之间有空格,1与1433之间有空格)
连接成功出现如下界面
下面我们用myeclipse 连接 SQL Server2012 数据库,功能和上一篇文章一样,再网站书注册用户,信息保存到数据库中,代码上有少许变化,下面会提到
7. 打开 SQL Server,创建数据库,关闭 SQL Server, 这里我们还是用上一篇文章的 TestDB 数据库,没有新建
8. 打开 MyEclipse, 创建 TestDB_JDBC项目,右键src -> Build Path -> Configure Build Path,点击 Libraries标签,然后单击 Add External JARs,找到 sqljdbc4.jar 文件并打开,单击 OK 完成构建路径的配置
9. 代码结构如下图
Login.java
<span style="font-family:Microsoft YaHei;font-size:10px;">package servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import sql.SqlFunction; public class Login extends HttpServlet{ public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{ String username = request.getParameter("username"); String password = request.getParameter("password"); SqlFunction sqf = new SqlFunction(); System.out.println("username " + username); System.out.println("password " + password); String sql = "insert into login (username,password)values('"+username+"','"+password+"')"; sqf.executeQuery(sql); response.sendRedirect("success.jsp"); }; public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{ doPost(request,response); }; } </span>SqlFunction.java
<span style="font-family:Microsoft YaHei;font-size:10px;">package sql; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class SqlFunction { Connection conn; ResultSet rs; ResultSet rsInput; Statement stmt; public SqlFunction(){ try {// 注册数据库驱动 // Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // JDBC-ODBC 注册方法 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch (ClassNotFoundException e) { System.out.println("sql error " + e); } } public void executeUpdate(String sql) { stmt = null; rs = null; try {// 建立数据库连接 //conn = DriverManager.getConnection("jdbc:odbc:TestDB", "sa", "saberhao123"); //JDBC-ODBC建立连接方法 conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=TestDB", "sa", "saberhao123"); //改成你们的用户名密码 stmt = conn.createStatement(); stmt.executeUpdate(sql); } catch (SQLException e) { System.out.println("sql error" + e); } } public ResultSet executeQuery(String sql) { stmt = null; rs = null; try {// conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=TestDB", "sa", "saberhao123"); stmt = conn.createStatement(); rs = stmt.executeQuery(sql); } catch(SQLException e) { System.out.println("sql error"+e); } return rs; } } </span>注意代码里面提到的JDBC-ODBC方法,和我们在用的JDBC方法实现的区别
login.jsp
<span style="font-family:Microsoft YaHei;font-size:10px;"><%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'login.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <form action="login" method="get"> 用户名:<input type="text" name="username"> <br> 密 码:<input type="text" name="password"/> <br> <input type="image" value="注册" class="buttonface" name="Submit" src="images/zuce.gif"> </form> </body> </html> </span>
<span style="font-family:Microsoft YaHei;font-size:10px;"><%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'success.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> Sucess!!! <br> </body> </html> </span>
<span style="font-family:Microsoft YaHei;font-size:10px;"><?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>login</servlet-name> <servlet-class>servlet.Login</servlet-class> </servlet> <servlet-mapping> <servlet-name>login</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> </web-app> </span>
10. 将网站部署到 tomcat 中,输入 http://localhost:8082/TestDB_JDBC/login.jsp 进行注册
11. 查看 TestDB,看看我们的数据是否更新了~
参考文档
http://jingyan.baidu.com/article/7c6fb42869932380652c9075.html
http://blog.csdn.net/stewen_001/article/details/19553173/