Servlet连接数据库

这是我按照自己的想法写的,没有参考资料。有可能不太规范,但是还是实现了这一功能。但我还会继续完善。(在运行前要导入数据库中的包ojdbc14.jar包,我用的是oracle数据库)。

1.。。。。。设置页面,写html代码,给出你要用户填入的信息。(后面将给出页面的样式)

<body bgcolor="#FFF000">
               调查表
<form action="s" method="POST">
您的姓名:
<input type=text name=youname><p>

性别:
<input type=radio value=man name=sex checked> 男
<input type=radio value=girl name=sex>   女 <p>
国籍:

<select name=nationality>
        <option selected value=china>中国
        <option value=xin>新加坡
        <option value=usa>美国
        <option value=canada>加拿大
</select><p>
爱好:
<input type=checkbox name=sport1 checked value=Bball> 篮球
       
<input type=checkbox name=sport2 value=Vball> 排球

<input type=checkbox name=sport3 value=Fball>   足球
      
<input type=checkbox name=sport4 value=my_favorite value=swim>    游泳<p>


简介:<p>
<textarea wrap=soft name=commente rows=5 cols=60>
</textarea> <p>


<input type=submit value="submit" name=submit>
<input type=reset>
</form>
</body>

用户看到的页面:(插入不了图片,不好意思。将html代码写入到文本,并将文件的后缀名改为 .html就行了)

 

 

 

 

 

2.。。。。。。。在数据库中建立表(存放用户的信息)

create table SJ_user
(
     SJid number(4),
     youname varchar2(26),
     sex varchar2(10),
     nationality varchar(20),
     sport1 varchar2(10),
     sport2 varchar2(10),
     sport3 varchar2(10),
     sport4 varchar2(10),
     commente varchar2(200)
);

 

3.。。。。。。。javaBean(就是SJ_User类用来设置和得到用户的信息)

(我的理解就是实现servlet和JDBC数据的转换和调用)

package servlet_jdbc;

public class SJ_User {

private int SJid;
private String youname;
private String sex;
private String nationality;
private String sport1;
private String sport2;
private String sport3;
private String sport4;
private String commente;

public SJ_User()
{
    youname="1";
    sex="1";
    nationality="1";
    sport1="1";
    sport2="1";
    sport3="1";
    sport4="1";
    commente="1";
}
public void setSJid(int id)
{
   SJid=id;
}
public void setYouname(String name)
{
   youname=name;
}
public void setSex(String sex1)
{
   sex=sex1;
}
public void setNationality(String na)
{
   nationality=na;
}
public void setSport1(String s1)
{
   sport1=s1;
}
public void setSport2(String s2)
{
   sport2=s2;
}
public void setSport3(String s3)
{
   sport3=s3;
}
public void setSport4(String s4)
{
     sport4=s4;
}
public void setCommente(String com)
{
   commente=com;
}

public int getSJid()
{
   return SJid;
}
public String getYouname()
{
   return youname;
}
public String getSex()
{
   return sex;
}
public String getNationality()
{
   return nationality;
}
public String getSport1()
{
   return sport1;
}
public String getSport2()
{
   return sport2;
}
public String getSport3()
{
   return sport3;
}
public String getSport4()
{
   return sport4;
}
public String getCommente()
{
   return commente;
}

}

 

4.。。。。。。。JDBC类(连接数据库)

这部分功能写的比较少,想实现更多功能参考我前面的一篇文章(那里面比较全)。

package servlet_jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

public class JDBC {

private static Connection conn = null;
private Statement stmt = null;
private ResultSet rs = null;

public static Connection getConnect()
{
   Connection conn1 = null;
   try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    conn1=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ora9i","scott","tiger");
    if(conn1 == null)
    {
     System.out.println("AA");
    }
   } catch (Exception e) {
    System.out.println("conn bad!");
    e.printStackTrace();
   }
   return conn1;
}


//向数据库中增加信息
public void addUser(SJ_User user)
{
   try {
    stmt=JDBC.getConnect().createStatement();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   String strSQL="insert into SJ_user values("+maxId()+",'"+user.getYouname()+"','"+user.getSex()+"','"+user.getNationality()+"','"+user.getSport1()+"','"+user.getSport2()+"','"+user.getSport3()+"','"+user.getSport4()+"','"+user.getCommente()+"')";
   try {
    rs=stmt.executeQuery(strSQL);
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   finally
   {
    JDBC.rsClose(rs);
    JDBC.stmtClose(stmt);
    JDBC.connClose(conn);
   }
// System.out.println("success!");
}


//查出所有用户的信息
public ArrayList listAlluser()
{
     ArrayList aa=new ArrayList();
  
   try {
    stmt=JDBC.getConnect().createStatement();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   String strSQL;
   strSQL="select * from SJ_user";
   try {
    rs=stmt.executeQuery(strSQL);
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   try {
    while(rs.next())
    {
     SJ_User user=new SJ_User();
     user.setSJid(rs.getInt(1));
     if(rs.wasNull())
     {
      user.setSJid(-1);
     }
    
     user.setYouname(rs.getString(2));
     if(rs.wasNull())
     {
      user.setYouname(null);
     }
    
     user.setSex(rs.getString(3));
     if(rs.wasNull())
     {
      user.setSex(null);
     }
    
     user.setNationality(rs.getString(4));
     if(rs.wasNull())
     {
      user.setSex(null);
     }
    
     user.setSport1(rs.getString(5));
     if(rs.wasNull())
     {
      user.setSport1(null);
     }
    
     user.setSport2(rs.getString(6));
     if(rs.wasNull())
     {
      user.setSport2(null);
     }
    
     user.setSport3(rs.getString(7));
     if(rs.wasNull())
     {
      user.setSport3(null);
     }
    
     user.setSport4(rs.getString(8));
     if(rs.wasNull())
     {
      user.setSport4(null);
     }
    
     user.setCommente(rs.getString(9));
     if(rs.wasNull())
     {
      user.setCommente(null);
     }
    
     aa.add(user);
    }
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   finally
   {
    JDBC.rsClose(rs);
    JDBC.stmtClose(stmt);
    JDBC.connClose(conn);
   }
   return aa;
}


//查询指定id的用户的信息
public SJ_User queryUser(int id)
{
   SJ_User user=new SJ_User();
   try {
    stmt=JDBC.getConnect().createStatement();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   String strSQL="select * from SJ_user where SJid="+id;
   try {
    rs=stmt.executeQuery(strSQL);
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   try {
    while(rs.next())
    {
    
     user.setSJid(rs.getInt(1));
     if(rs.wasNull())
     {
      user.setSJid(-1);
     }
    
     user.setYouname(rs.getString(2));
     if(rs.wasNull())
     {
      user.setYouname(null);
     }
    
     user.setSex(rs.getString(3));
     if(rs.wasNull())
     {
      user.setSex(null);
     }
    
     user.setNationality(rs.getString(4));
     if(rs.wasNull())
     {
      user.setSex(null);
     }
    
     user.setSport1(rs.getString(5));
     if(rs.wasNull())
     {
      user.setSport1(null);
     }
    
     user.setSport2(rs.getString(6));
     if(rs.wasNull())
     {
      user.setSport2(null);
     }
    
     user.setSport3(rs.getString(7));
     if(rs.wasNull())
     {
      user.setSport3(null);
     }
    
     user.setSport4(rs.getString(8));
     if(rs.wasNull())
     {
      user.setSport4(null);
     }
    
     user.setCommente(rs.getString(9));
     if(rs.wasNull())
     {
      user.setCommente(null);
     }
    }
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   finally
   {
    JDBC.rsClose(rs);
    JDBC.stmtClose(stmt);
    JDBC.connClose(conn);
   }
   return user;
}

//获取数据库中最大的行数
public int maxId()
{
   Connection conn=null;
   Statement stmt=null;
   ResultSet rs=null;
   int a=0;
   try {
    stmt=JDBC.getConnect().createStatement();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   String strSQL="select max(SJid) maxid from SJ_user";
// System.out.println(strSQL);
   try {
    rs=stmt.executeQuery(strSQL);
    while(rs.next())
    {
     int t=rs.getInt("maxid");
     a=t;
    // System.out.println(t+"+++++");
    }
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   finally{
    JDBC.rsClose(rs);
    JDBC.stmtClose(stmt);
    JDBC.connClose(conn);
   }
// System.out.println(a+"------");
   return ++a;
}
//关闭结果集
public static void rsClose(ResultSet rs)
{
   try {
    rs.close();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
}

//关闭语句对象
public static void stmtClose(Statement stmt)
{
   try {
    stmt.close();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
}

//关闭连接
public static void connClose(Connection conn)
{
   try {
    if(conn!=null){
     conn.close();
    }
   
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
}

}
/*
* public static void main(String [] args){
   SJ_User user = new SJ_User();
   new JDBC().addUser(user);
}
}
*/

 

5.。。。。。。。servlet(这部分比较重要,要结合前面两个类来看)

在这里面要实现的就是把servlet得到的用户的信息写入数据库,并根据具体要求从数据库中查询用户的信息并输出出来。(我在这里面封装了两个方法,还可以根据具体要求再加)。

package servlet_jdbc;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class serv_JDBC extends HttpServlet {

/**
* Constructor of the object.
*/
private String youname;
private String sex;
private String nationality;
private String sport1;
private String sport2;
private String sport3;
private String sport4;
private String commente;
public serv_JDBC() {
   super();
}

/**
* Destruction of the servlet. <br>
*/
public void destroy() {
   super.destroy(); // Just puts "destroy" string in log
   // Put your code here
}

/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
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>");
   out.print("    This is ");
   out.print(this.getClass());
   out.println(", using the GET method");
   out.println(" </BODY>");
   out.println("</HTML>");
   out.flush();
   out.close();
}

/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @return
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
  

    System.out.println("chenggong!");
   response.setContentType("text/html");
   PrintWriter out = response.getWriter();
   out.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");
     
   youname=request.getParameter("youname");
   sex=request.getParameter("sex");
   nationality=request.getParameter("nationality");
   sport1=request.getParameter("sport1");
   sport2=request.getParameter("sport2");
   sport3=request.getParameter("sport3");
   sport4=request.getParameter("sport4");
   commente=request.getParameter("commente");
  
   SJ_User sj=new SJ_User();
   sj.setYouname(youname);
   sj.setSex(sex);
   sj.setNationality(nationality);
   sj.setSport1(sport1);
   sj.setSport2(sport2);
   sj.setSport3(sport3);
   sj.setSport4(sport4);
   sj.setCommente(commente);
  
   JDBC jdbc=new JDBC();
   jdbc.addUser(sj);
  
   //查询所有人的信息
   printUser(jdbc.listAlluser());
  
   //查询指定id的用户的信息
   findUser(jdbc.queryUser(10));
  
   out.flush();
   out.close();
}

public SJ_User returnUser()
{
   SJ_User sj=new SJ_User();
  
   sj.setYouname(youname);
   sj.setSex(sex);
   sj.setNationality(nationality);
   sj.setSport1(sport1);
   sj.setSport2(sport2);
   sj.setSport3(sport3);
   sj.setSport4(sport4);
   sj.setCommente(commente);
   System.out.println("hdhdhhdhd ");
   return sj;

}
    
public void printUser(ArrayList aa)
{
// JDBC jd=new JDBC();
   //ArrayList aa=jd.listAlluser();
   for(int i=0;i<aa.size();i++)
   {
    Object o=aa.get(i);
    SJ_User user=(SJ_User) o;
    System.out.println(user.getSJid()+"   "+user.getYouname()+" "+user.getSex()+"   "+user.getNationality()+"   "+user.getSport1()+"    "+user.getSport2()+"    "+user.getSport3()+"    "+user.getSport4()+" "+user.getCommente());
   }
}

public void findUser(SJ_User user)
{
   System.out.println(user.getSJid()+"   "+user.getYouname()+" "+user.getSex()+"   "+user.getNationality()+"   "+user.getSport1()+"    "+user.getSport2()+"    "+user.getSport3()+"    "+user.getSport4()+" "+user.getCommente());
}


/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occure
*/
public void init() throws ServletException {
   // Put your code here
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值