通过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> 密 码:<input type="text" name="password"/> <br> <input type="image" value="注册" class="buttonface" name="Submit" src="images/zuce.gif"> </form> </body></html>
<%@ 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-INF下web.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
- 通过JDBC/ODBC方法连接SQL Servers与MyEclipe(SQL)
- 通过JDBC方法连接SQL Servers与MyEclipe
- java jdbc:odbc 连接MS SQL 2008
- Python通过ODBC连接SQL server
- Qt 通过ODBC连接SQL Server
- Linux下通过ODBC连接SQL Server
- R通过 ODBC方式连接sql server
- VS2012 通过 ODBC 连接到SQL SERVER
- MFC通过ODBC连接sql 2005
- MFC通过ODBC连接SQL Server2012
- Linux 通过 ODBC 连接 SQL Server2008
- 通过JDBC连接SQL Server
- Java工程通过JDBC连接数据库方法(SQL Server)
- java 通过odbc与jdbc 连接oracle数据库
- 如何用java连接SQL server(JDBC-ODBC桥)
- JDBC-ODBC桥连接方式操纵SQL数据库
- MicroSoft SQL Server Manager 通过ODBC与VS进行连接操作示例程序
- JAVA通过JDBC连接SQL Server 2000
- Problem Killer(递推)
- json字符串转换为多级Map -list-map的形式
- 现代应用密码学中椭圆曲线求点集E以及点乘算法的java代码实现
- SQL Server 2008 Windows身份验证改为混合模式身份验证
- easyUI Tabs
- 通过JDBC/ODBC方法连接SQL Servers与MyEclipe(SQL)
- windows下Mysql解决Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
- 很好的网站
- hdoj 2032 杨辉三角
- grep 命令
- 用qt的图形视图框架实现的圆,三角形,矩形运动及碰撞.
- 为什么计算机的学生要学习 Linux 开源技术
- HDOJ Just Random 4790【2013成都区域赛J题+等差数列优化】
- js 获取访问链接参数