2012年3月 更新说明:此方法第二部为使用odbc,不是推荐的方法,详见我下一篇博客
----------------------------------------------------------------------------------------------------------------------------------------------------
用JDBC连接数据库的一般过程为——
* 1.载入JDBC驱动程序
* 2.定义连接URL
* 3.建立连接
* 4.创建Statement对象
* 5.执行查询或更新
* 6.结果处理
* 7.关闭连接
(感谢“圣思园”的张龙老师的教学视频 http://www.verycd.com/topics/2838873/ 真不赖 ~O(∩_∩)O哈哈~)
一。 在sql server中建立数据库
启动Microsoft SQL Server Manngement Studio, 用混合模式登陆,用户名sa,密码设为password。
关于登录模式和sa账户的密码修改,可参见以下文章
《sql server 2008 r2 windows身份验证 改变为 混合登录模式》
http://hi.baidu.com/%B9%F9%C0%FB%C8%F11woguolirui_/blog/item/d1172d33d73ec2ed1b4cff63.html
《SQL Server 2000修改登录方式(混合登陆)》 (适用于sql server2008)
http://archive.cnblogs.com/a/1900585/
建立一个名为Test1的数据库
展开可以看到数据中只有默认的系统表存在,ok
二。建立数据库的数据源。
数据源:顾名思义,数据的来源。在数据源中存储了所有建立数据库连接的信息。就象通过指定文件名你可以在文件系统中找到文件一样,通过提供正确的数据源名称,你可以找到相应的数据库连接。
过程:
控制面板-管理工具-数据源(ODBC)-系统DSN——点击添加—SQL Server
名称 odbcYuan ,描述任意,服务器local,点击下一步——
下一步,更改默认的数据库为Test1,即刚才创建的数据库
下一步,可以机构选更改消息为中文
点击完成,会弹出配置信息的确认框
可以点击测试数据源
测试成功,确定,确定。
这样,系统DSN中就多了一个指向刚才在sqlserver2008中创建的空数据库Test1。
三。创建Servlet连接数据库
在MyEclipse中new一个Web Project, 项目名testJDBC
把SQL Server的驱动程序jar包放到WebRoot 》WEB-INF》lib目录下(jar包可在 http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=a737000d-68d0-4531-b65d-da0f2a735707下载)
新建一个Servlet,名为TestServlet,默认包,代码如下
import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class TestServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">"); out.println("<HTML>"); out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>"); out.println(" <BODY>"); //调用有关jdbc的方法 try { doSometing(out); } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } out.println(" </BODY>"); out.println("</HTML>"); out.flush(); out.close(); } public void doSometing(PrintWriter out) throws SQLException, ClassNotFoundException { /* * 数据库连接的一般过程 * 1.载入JDBC驱动程序 * 2.定义连接URL * 3.建立连接 * 4.创建Statement对象 * 5.执行查询或更新 * 6.结果处理 * 7.关闭连接 */ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");// 1 String url = "jdbc:odbc:odbcYuan";// 2 其中odbc是系统dsn中的数据源名称 Connection connection = DriverManager.getConnection(url, "sa","password");// 3 Statement statement = connection.createStatement();// 4 fun(statement, out);// 5,6 statement.close();// 7 connection.close();// 7 } private void fun(Statement statement, PrintWriter out) throws SQLException { // 创建一个表,表名为 Users,包含字段name、password和email String command = "create table Users (name varchar(16) not null,password varchar(8) not null,email varchar(40) null)"; statement.execute(command); //在表Users中插入3条记录 statement.executeUpdate("insert into Users values('ZhangSan','1234','[email protected]')"); statement.executeUpdate("insert into Users values('ZhangXinqiang','lloveyou','[email protected]')"); statement.executeUpdate("insert into Users values('LiuErgou','dogdog','[email protected]')"); //查找表Users的所有记录,输出每条记录中字段“email”的值 ResultSet result = statement.executeQuery("select * from Users"); while (result.next()) { out.println("<h4>" + result.getString("email") + "</h4>"); } result.close();// 7 } }
把项目配置到服务器中,然后启动服务器
在浏览器中输入 http://localhost:8080/testJDBC/servlet/TestServlet 回车
页面显示——
在Microsoft SQL Server Manngement Studio中,在我们创建的数据Test1上右键刷新,展开,可以看到多了一张表Users。右键-编辑前200行,可以看到其中的数据,正是代码77-79行所插入的数据——
浏览器页面上的结果是每条记录中的email值,正是82-85行的执行结果
大功告成~~~~!!!!
成功地连接了数据库,在数据库中创建了一张表,在表中插入了3条记录,从表中查询了数据并显示出来~~
/*------------------------------------------ 华丽飞分割线 ----------------------------------------------------------------------*/
ps1:
端午节,想家,没回家。
小程序猿,法力太浅,修炼,希望能早日成精~~成仙~~
ps2:
现学现卖,我sql语句都还不会几条,照着张龙老师的教学视频依样画葫芦而能如此。
错误之处,请指正。