工具使用:SQLServer + eclipse
jar包:
我们在进行分页代码之前需要首先把框架搭建好,也就是把界面能够完整显示出来。所以这前一篇的内容主要着重去讲准备工作。
步骤了解:
1、建库键表(SQLServer中建表一定要注意主外键和检查约束的使用) |
---|
2、数据输入 (记得数据输入的顺序跟表列名的对齐输入,以防数据缺失) |
3、eclipse中连接数据库 (DBHelper记得导入jar包-sqljdbc4.jar) |
4、实体类的编辑注意(要记得跟数据库里面的列名相同) |
5、biz跟dao的编辑(注意interface的相同性,以防出bug) |
6、dao方法的编辑(注意增删改查的方法和数据库的语句) |
7、页面的jsp写入(一边写dao方法一边验证界面为宜,注:以下演示直接一步到位) |
8、servelet的代码写入(xml的代码也要记得写入,同步进行) |
9、简单界面查看 |
注:以上步骤与实际操作存在误差,一切还是以代码完整度为好。
为了数据在代码中方便插入并且不需要太多限制,于是在数据库中的列名不做太多约束。
建好表之后,就可以开始插入数据了。
SQL数据插入语句分为三种
单个数据插入:
insert into 表名(?,?,?) values (?,?,?)
insert into 表名 values (?,?,?)
多个数据插入:
insert into 表名 values (?,?,?);
insert into 表名 values (?,?,?);
insert into 表名 values (?,?,?)
数据插入完成之后,就可以打开eclipse开始敲代码了。
打开eclipse之后就可以开始建项目了,建上Dynamic Web Project,记得在之前要检查tomcat是否配置好。
首先是导入jar包,然后把DBHelper敲好,加载驱动、创建连接、关闭连接。
注意:下面的两条语句要注意
// Orange
private static final String cname="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String url="jdbc:sqlserver://localhost:1433;DatabaseName=stu";
然后是实体类的定义,具体代码如下:
注意中间的代码没显示。
主要biz以及dao方法的interface代码如下:
// Orange
/**
* 查询所有
* @param s
* @return
*/
public List<Solr> getAll(Solr s);
/**
* 模糊查询
* @param s
* @return
*/
public Solr getAllId(Solr s);
/**
* 增加
* @param s
* @return
*/
public int AddSolr(Solr s);
/**
* 删除
* @param s
* @return
*/
public int DelSolr(Solr s);
/**
* 修改
* @param s
* @return
*/
public int EditSolr(Solr s);;
biz层的方法如下:
// Orange
public class SolrBiz implements ISolrBiz{
ISolrDao isd=new SolrDao();
@Override
public List<Solr> getAll(Solr s) {
// TODO Auto-generated method stub
return isd.getAll(s);
}
@Override
public Solr getAllId(Solr s) {
// TODO Auto-generated method stub
return isd.getAllId(s);
}
@Override
public int AddSolr(Solr s) {
// TODO Auto-generated method stub
return isd.AddSolr(s);
}
@Override
public int DelSolr(Solr s) {
// TODO Auto-generated method stub
return isd.DelSolr(s);
}
@Override
public int EditSolr(Solr s) {
// TODO Auto-generated method stub
return isd.EditSolr(s);
}
@Override
public int getRows(String str) {
// TODO Auto-generated method stub
return 0;
}
};
然后主要就是增删改查的方法
// An highlighted block
@Override
public List<Solr> getAll(Solr s) {
// TODO Auto-generated method stub
List<Solr> sols=new ArrayList<Solr>();
try {
con=DBHelper.getcon();
String sql="select * from tb_solr where sjob like '%"+s.getSjob()+"%'";
ps=con.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()) {
s=new Solr();
s.setSid(rs.getInt(1));
s.setSjob(rs.getString(2));
s.setScompany(rs.getString(3));
s.setSaddress(rs.getString(4));
s.setSalary(rs.getString(5));
s.setSurl(rs.getString(6));
s.setSlimit(rs.getString(7));
s.setStime(rs.getString(8));
s.setSdesc(rs.getString(9));
s.setSjobHandle(rs.getString(10));
s.setSaddressHandle(rs.getString(11));
sols.add(s);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally {
DBHelper.myclose(con, ps, rs);
}
return sols;
};
jsp层那边的代码则是可以先敲出表格样式再切入。
servlet层那边的代码如下:
注意步骤:设置字符编码、获取out 、获取session、获取tjob、判断tjob是否为空、调用biz、保存session值、跳转界面等。
下面是jsp界面展示代码。
然后就是dao方法增加的部分代码
// zouyan
@Override
public int AddSolr(Solr s) {
// TODO Auto-generated method stub
int n=0;
try {
con=DBHelper.getcon();
String sql="insert into tb_solr(sjob,scompany,saddress,salary,surl,slimit,stime,sdesc,sjobHandle,saddressHandle) values(?,?,?,?,?,?,?,?,?,?)";
ps=con.prepareStatement(sql);
ps.setString(1, s.getSjob());
ps.setString(2, s.getScompany());
ps.setString(3, s.getSaddress());
ps.setString(4, s.getSalary());
ps.setString(5, s.getSurl());
ps.setString(6, s.getSlimit());
ps.setString(7, s.getStime());
ps.setString(8, s.getSdesc());
ps.setString(9, s.getSjobHandle());
ps.setString(10, s.getSaddressHandle());
n=ps.executeUpdate();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally {
DBHelper.myclose(con, ps, rs);
}
return n;
};
接下来就是dao方法增加的部分代码
// zouyan
@Override
public int EditSolr(Solr s) {
int n=0;
try {
con=DBHelper.getcon();
String sql="update tb_solr set sjob=?,scompany=?,saddress=?,salary=?,surl=?,slimit=?,stime=?,sdesc=?,sjobHandle=?,saddressHandle=? where sid=?";
ps=con.prepareStatement(sql);
ps.setString(1, s.getSjob());
ps.setString(2, s.getScompany());
ps.setString(3, s.getSaddress());
ps.setString(4, s.getSalary());
ps.setString(5, s.getSurl());
ps.setString(6, s.getSlimit());
ps.setString(7, s.getStime());
ps.setString(8, s.getSdesc());
ps.setString(9, s.getSjobHandle());
ps.setString(10, s.getSaddressHandle());
ps.setInt(11, s.getSid());
n=ps.executeUpdate();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally {
DBHelper.myclose(con, ps, rs);
}
return n;
}
;
最后就是dao方法删除的部分代码(以下示例的删除代码依据sid编号来进行)
// zouyan
public int DelSolr(Solr s) {
int n=0;
try {
con=DBHelper.getcon();
String sql="delete from tb_solr where sid=?";
ps=con.prepareStatement(sql);
ps.setInt(1, s.getSid());
n=ps.executeUpdate();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally {
DBHelper.myclose(con, ps, rs);
}
return n;
}
既然有servlet,那么相应的xml的里面的代码也要写好。
// zouyan
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>zouyan</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>solrServlet</servlet-name>
<servlet-class>com.ncservlet.SolrServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>solrServlet</servlet-name>
<url-pattern>/solr.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>addServlet</servlet-name>
<servlet-class>com.ncservlet.AddServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>addServlet</servlet-name>
<url-pattern>/add.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>delServlet</servlet-name>
<servlet-class>com.ncservlet.DelServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>delServlet</servlet-name>
<url-pattern>/del.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>findServlet</servlet-name>
<servlet-class>com.ncservlet.FindServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>findServlet</servlet-name>
<url-pattern>/find.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>editServlet</servlet-name>
<servlet-class>com.ncservlet.EditServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>editServlet</servlet-name>
<url-pattern>/edit.do</url-pattern>
</servlet-mapping>
</web-app>
完成之后的下拉应该是这样的
在操作过程一定要注意小问题,包括在代码中的命名也不要搞混,最好是能够打上标注和注释,方便自己去记忆。
记住能解决的错误最好当场解决,要不然会影响到后面分页的代码显示。
我是南橙,一个逐渐秃头的橙子Orange。我们下一篇见。