六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 139|回复: 0

第六篇:数据库开始篇

[复制链接]

升级  55%

113

主题

113

主题

113

主题

举人

Rank: 3Rank: 3

积分
365
 楼主| 发表于 2013-2-7 19:04:36 | 显示全部楼层 |阅读模式
严重警告:对前面的问题还没弄清楚的,请不要再往下看了<!----><o:p></o:p>
开场白:本来是应该从哪里ctrl+v一段关于JDBC的东东给你看看的,是想到它实在有点过于理论和教条,所以就不太过于罗嗦了,但还是讲一点两点,要不然跟我一样蠢笨又一无所知的人真的不知道我写的是“人的代码”还是“机器的代码”。因此强烈的建议你不要跳过以下的内容。
数据库编程的一些基本步骤:<o:p></o:p>
注册驱动
创建数据库连接
执行SQL语句获得结果
要用到的一些基本类<o:p></o:p>
Connection类
Statement类和PeparedStatement类
ResultSet类
要注意的问题<o:p></o:p>
数据库操作的时候会出现异常,要注意捕获并处理
用以下的代码做解释<o:p></o:p>
<o:p> </o:p>
          //定义数据库的驱动程序(以下给出的是连接odbc数据库的)
String strDriver="sun.jdbc.odbc.JdbcOdbcDriver";
          //定义数据的URL(名称)
String strConnection="jdbc:odbc:myFirstData";
          //数据访问的用户名
String strConnectUsername="";
          //数据库访问的密码
String strConnectPassword="";           
         
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String sql_temp = “select * from tableName”
try
              {
                     Class.forName(strDriver);//注册驱动
                    
              }
              catch(ClassNotFoundException ex1)
              {
                     ex1.printStackTrace();//捕获驱动注册过程中的异常
              }
try
{
conn =                           //获得数据库连接
                            DriverManager.getConnection(    strConnection,
                                                                                strConnectUsername,
                                                                                strConnectPassword);
         
stmt = conn.CreateStatement();//创建Statement的对象stmt
          rs = stmt.executeQuery(sql_temp);//利用stmt执行SQL操作返回结果集交给rs
}
catch(SQLException ex2)
{
                ex2.printStackTrace();
}
来一个例子说明一下如何?<o:p></o:p>
功能描述
写一个用户登陆的程序,用户输入密码,点击“登陆”按钮,在用户数据表中查找,如果有对应的记录,就告诉:你好,欢迎你!如果没有该用户,就提示:用户名或者密码错误,请重新登陆。
哇,终于到了编写有点人摸狗样程序的时候了,以前写的哪能叫程序啊,简直是拿三结构的名字来欺骗人嘛。。。<o:p></o:p>
建立数据库:为了简单就用access建一个吧,数据库的名字就user吧,在odbc中设置一下吧。什么,不知道怎么设置?哦,我现在真的没心情跟你解释。请你解决了这个问题再往下看吧。
建立一个数据表:userTable
用户号码             UserNo            文本
用户密码             PassWord          文本
所在的部门号码       DepartNo          文本
填入几个值吧<o:p></o:p>
111    111      001
222    222      002
333    333      003
登陆的jsp恐怕以后我不会再告诉你怎么写这样的jsp了<o:p></o:p>
login.jsp<o:p></o:p>
<%@ page contentType="text/html; charset=gb2312" %><o:p></o:p>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %><o:p></o:p>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %><o:p></o:p>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %><o:p></o:p>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %><o:p></o:p>
<html:html><o:p></o:p>
    <head><o:p></o:p>
        <title>Login</title><o:p></o:p>
    </head><o:p></o:p>
    <o:p></o:p>
    <body><o:p></o:p>
    <center><o:p></o:p>
    <pre><o:p></o:p>
    <html:form action="execute.do" method="post"><o:p></o:p>
                    <h3> 请输入 </h3><o:p></o:p>
         <o:p></o:p>
         用户名:   <html:text property="userID" size="12"/><o:p></o:p>
         <o:p></o:p>
         密  码:   <html:text property="passWord" size="12"/><o:p></o:p>
       <o:p></o:p>
       <html:submit value="提交"/>  <html:reset value="重置"/><o:p></o:p>
 </html:form><o:p></o:p>
     </pre><o:p></o:p>
    </center><o:p></o:p>
    </body><o:p></o:p>
</html:html><o:p></o:p>
显示正确结果的页面<o:p></o:p>
success.jsp<o:p></o:p>
<%@ page contentType="text/html; charset=gb2312" %><o:p></o:p>
<html><o:p></o:p>
<center><o:p></o:p>
  欢迎你!!<o:p></o:p>
</center><o:p></o:p>
</html><o:p></o:p>
提示警告的页面<o:p></o:p>
error.jsp<o:p></o:p>
<%@ page contentType="text/html; charset=gb2312" %><o:p></o:p>
<html><o:p></o:p>
<center><o:p></o:p>
    不要意思,您的用户名或密码错误! <o:p></o:p>
 </center><o:p></o:p>
</html><o:p></o:p>
好了,下面到程序员真正该做的工作了,那就是写java代码啊。<o:p></o:p>
一,不要问在什么地方写java代码<o:p></o:p>
二,不要问用什么办法把java代码编译成类文件<o:p></o:p>
三,不要问把java文件和类文件放在什么地方<o:p></o:p>
……这样的问题我不会再回答。<o:p></o:p>
你千万不要忘了要导入两个JAR包啊<o:p></o:p>
用来保存数据的form<o:p></o:p>
UserForm.java<o:p></o:p>
import org.apache.struts.action.*;<o:p></o:p>

public class UserForm extends ActionForm<o:p></o:p>

{<o:p></o:p>

    private String userID = null;<o:p></o:p>

    private String passWord = null;<o:p></o:p>

    public String getUserID() <o:p></o:p>

{<o:p></o:p>

       return userID == null?"": userID.trim();<o:p></o:p>

    } <o:p></o:p>

    public void setUserID(String userID) <o:p></o:p>

    {<o:p></o:p>

       this. userID = userID;<o:p></o:p>

    }<o:p></o:p>

    public String getPassWord() <o:p></o:p>

    {<o:p></o:p>

       return passWord == null?"": passWord.trim();<o:p></o:p>

    }<o:p></o:p>

    public void setPassWord(String str2) <o:p></o:p>

    {<o:p></o:p>

       this. passWord = passWord;<o:p></o:p>

    }<o:p></o:p>

}<o:p></o:p>

看见了form了吧,没什么神气的,就是一些属性和关于属性的get和set方法<o:p></o:p>
用来处理数据的action<o:p></o:p>
UserAction.java<o:p></o:p>
import javax.servlet.http.HttpServletRequest;<o:p></o:p>

import javax.servlet.http.HttpServletResponse; <o:p></o:p>

import org.apache.struts.action.ActionErrors;<o:p></o:p>

import org.apache.struts.action.ActionForm;<o:p></o:p>

import org.apache.struts.action.ActionForward;<o:p></o:p>

import org.apache.struts.action.ActionMapping;<o:p></o:p>

import org.apache.struts.actions.DispatchAction; <o:p></o:p>

public class UserAction  extends DispatchAction<o:p></o:p>

{<o:p></o:p>

       public ActionForward execute(  ActionMapping mapping,<o:p></o:p>

                                    ActionForm form,<o:p></o:p>

                                    HttpServletRequest request,<o:p></o:p>

                            
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表