通过JDBC方法连接SQL Servers与MyEclipe

上一篇文章《通过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配置管理器,如下图

通过JDBC方法连接SQL Servers与MyEclipe_第1张图片

我们可以看到你自己建立的数据库的相关协议,我的就是 “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之间有空格)

连接成功出现如下界面

通过JDBC方法连接SQL Servers与MyEclipe_第2张图片


下面我们用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. 代码结构如下图

通过JDBC方法连接SQL Servers与MyEclipe_第3张图片

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>

success.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 '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>

修改 WebRoot/WEB-INF/web.xml

<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/


你可能感兴趣的:(sql,tomcat,jdbc,server,MyEclipse,服务器)