通过JDBC/ODBC方法连接SQL Servers与MyEclipe(SQL)

来源:互联网 发布:金越软件招聘 编辑:程序博客网 时间:2024/06/06 02:15

本文将介绍如何通过JDBC/ODBC方式连接SQL Servers 与 MyEclipe, 使得通过web修改DB内容

本文主要完成一个简单的注册系统,主要步骤 : 

1. 通过SQL Server 创建DB 数据库, 用于存放用户名和密码

2. 创建网页,注册账户,将账户信息更新到步骤一创建的数据库中

下面我们一步步来完成我们的功能

1. 创建 TestDB数据库

在对象资源管理器中,右键 数据库 -> 新建数据库 -> 数据库名称 填入“TestDB” -> 确定 



2. 创建 表

再对象管理器中,点击我们新建的 TestDB -> 右键 表 -> 新建 表, 填入两个列, 分别是 username 和 password



3. 保存 表

点击 保存 按钮, 将表名字保存为 login



4. 右键 我们新建立的 表 dbo.login , 编辑前200行 ,我们可以看到我们刚刚创建的空表了



5. 配置数据源

选择控制面板->管理工具->数据源-> 用户DSN -> 添加 -> 填入名称和选择数据库 -> 下一步 -> 选择SQL servers验证 -> 填入账号密码 -> 下一步 -> 勾选 更改默认的数据库 : TestDB -> 下一步 直到 完成



由于之前没有介绍SQL 的用法,所以上面写的比较详细~,接下来,我们开始写网站的内容,关于网站的搭建,可以参考之前的两篇文章 《Myeclipse配置Tomcat》  《MyEclipse下编写JSP "Hello World"》


6 .  新建 Web Project, 在package目录下新建 servlet 和 sql 两个包


7.  在sql下创建 SqlFunction.java,实现数据库访问

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");       } 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");           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:odbc:TestDB", "sa", "saberhao123");         stmt = conn.createStatement();         rs = stmt.executeQuery(sql);       }       catch(SQLException e)       {         System.out.println("sql error"+e);       }       return rs;        }} 

8. 在servlet下新建 Login.java,实现在数据库中写入数据

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();        String sql = "insert into login (username,password)values('"+username+"','"+password+"')";        sqf.executeQuery(sql);        response.sendRedirect("success.jsp");}} 

9. 在WebRoot文件夹下创建login.jsp以及success.jsp文件,用于显示注册以及注册成功界面

login.jsp

<%@ 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="post">    用户名:<input type="text" name="username">    <br>  密&nbsp;&nbsp;码:<input type="text" name="password"/>    <br>    <input type="image" value="注册"  class="buttonface" name="Submit" src="images/zuce.gif">    </form>  </body></html>


success.jsp

<%@ 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>

10. 修改WebRoot/WEB-INFweb.xml

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

11. 将网站工程部署到tomcat上



12. 输入 http://localhost:8082/TestDB/login.jsp 进行注册,检查我们DB上的内容是否有改变


过程中遇到这样的问题

<span style="font-family:Microsoft YaHei;">sql error java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriversql errorjava.sql.SQLException: No suitable driver found for jdbc:odbc:TestDB</span>

一开始我以为是调用库的时候( Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"))大小写有问题,可是检查了很久发现不出来

原来我用的JDK1.8已经不包含了该库,你想知道自己的JDK是否支持,可以检查下 JRE下面 rt.jar 是否包含~

解决的办法就是加载这个库,或者干脆换个JDK =。=

其实JDBC/ODBC这种方法不是推荐方法,因为效率偏低,具体可以详见 Oracle 的说明 

下篇文章我们将一起探讨用 微软JDBC的方法进行连接,敬请期待~


参考文章

http://blog.sina.com.cn/s/blog_654d69690100mvzt.html

0 0
原创粉丝点击