在实现简单网页上对数据内容进行增删改查,需要用到三个部分,分别是jsp网页部分+java后台部分+数据库表
我用一个新闻的例子来实现,首先编写java后台程序
java后台程序:
我们用三层的模式进行设计:分别是servlet,service,dao层,并且建立个实体包用来打包数据库和后台要用到的属
性截个图
首先是写功能写的顺序分别是从servlet,service,dao层:
servlet层代码如下:
public class TypeServlet {
TypeService ts=new TypeServiceImp();//调用service层
/*******添加************************************************************************************/
public int addtype(String name){
int a=0;
a=ts.addtype(name);
return a;
}
/*******查看************************************************************************************/
public List<types> selets(){
List<types> list=new ArrayList<types>();
list=ts.selets(null);
return list;
}
/*******删除************************************************************************************/
public int delete(int id){
int a=0;
types t=new types();
t.setId(id);
a=ts.delete(t);
return a;
}
/*******修改************************************************************************************/
public int update(types t){
int a=0;
a=ts.update(t);
return a;
}
/*******查找一个************************************************************************************/
public types selectone(int id){
types t=new types();
t.setId(id);
types nt=ts.selectone(t);
return nt;
}
}
Service层分为两层分别为接口层和实现层
接口程序如下:
public interface TypeService {
public int addtype(String name);
public List<types> selets(types t);
public int delete(types t);
public int update(types t);
public types selectone(types t);
}
接口实现程序:
public class TypeServiceImp implements TypeService{
TypeDao td= new TypeDaoImp();
public int addtype(String name) { //注意返回数据不要忘记修改
int a=0;
a=td.addtype(name);
return a;
}
public List<types> selets(types t) {
List<types> list=new ArrayList<types>();
list=td.selets(t);
return list;
}
/*******删除************************************************************************************/
public int delete(types t) {
int a=0;
a=td.delete(t);
return a;
}
/*******修改************************************************************************************/
public int update(types t) {
int a=0;
a=td.update(t);
return a;
}
/*******查找单个************************************************************************************/
public types selectone(types t){
types tp=new types();
tp=td.selectone(t);
return tp;
}
}
Dao层程序同样分为接口层和实现层
接口层程序:
public interface TypeDao {
public int addtype(String name);
public List<types> selets(types t);
public int delete(types t);
public int update(types t);
public types selectone(types t);
}
实现类程序:
public class TypeDaoImp implements TypeDao{
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
public int addtype(String name){
int a=0;
try {
//连接数据库
con=Shujuku.conn();
String sql="insert into typesname values(?)"; //设置id自增
ps=con.prepareStatement(sql);
ps.setString(1, name);
a=ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return a;
}
public List<types> selets(types t) {
List<types> list=new ArrayList<types>();
try {
//连接数据库
con=Shujuku.conn();
String sql="select*from typesname";
ps=con.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
types ty=new types();
ty.setId(rs.getInt("id"));
ty.setTypename(rs.getString("typename"));
list.add(ty);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
/*******删除************************************************************************************/
public int delete(types t) {
int a=0;
try {
con=Shujuku.conn();
String sql="delete from typesname where id="+t.getId();
ps=con.prepareStatement(sql);
a=ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return a;
}
/*******修改************************************************************************************/
public int update(types t) {
int a=0;
try {
con=Shujuku.conn();
String sql="update typesname set typename=? where id=?";
ps=con.prepareStatement(sql);
ps.setString(1, t.getTypename());
ps.setInt(2, t.getId());
a=ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return a;
}
/*******查找一个************************************************************************************/
public types selectone(types t) {
types tp=new types();
try {
con=Shujuku.conn();
String sql="select * from typesname where id=?";
ps=con.prepareStatement(sql);
ps.setInt(1, t.getId());
rs=ps.executeQuery();
if(rs.next()){
tp.setId(rs.getInt("id"));
tp.setTypename(rs.getString("typename"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return tp;
}
}
最后就是数据库包,为了方便使用,将数据库的驱动连接信息建立一个包存放:
代码如下:
public class Shujuku {
public static Connection conn(){
//定义地址
String url="jdbc:sqlserver://localhost:1433;DatabaseName=test;";
//定义连接初始值
Connection connection=null;
try {
//加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//建立连接
connection=DriverManager.getConnection(url, "sa", "DCX5201314");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
}
属性包,代码如下:
public class types {
private int id;
private String typename;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTypename() {
return typename;
}
public void setTypename(String typename) {
this.typename = typename;
}
}
java后台程序就这么多;
接下来是数据库部分:
数据库部分主要就是建立一张表,笔者使用的是SQL Server 2008,首先建个数据库test,建立个表typesname,设置两列分别为id typename,id设为主键,int 型,自增为1;typename设置类型为varchar型,不能为空。
好了,数据库和java后台都搭建好了,现在来到前端网页部分,
网页部分
在myeclipse中新建7个jsp文件
index.jsp是一个总的网页
设置代码如下:
</head>
<frameset rows="20%,80%">
<frame src="head.jsp">
<frameset cols="20%,80%">
<frame src="left.jsp">
<frame src="right.jsp" name="rights">
</frameset>
</frameset>
<body>
</body>
head.jsp
<body>
<h1>这是头部</h1>
</body>
left.jsp
<body>
<h1>这是左边</h1>
<ul>
<li><a href="addtype.jsp" target="rights">添加新闻类型</a></li>
<li><a href="showtype.jsp" target="rights">查看新闻类型</a></li>
</ul>
</body>
right.jsp
<body>
<h1>这是右边</h1>
</body>
addtype.jsp
</head>
<%
request.setCharacterEncoding("UTF-8");
String name= request.getParameter("typename");
if(name!=null){
TypeServlet tp=new TypeServlet();
int a=tp.addtype(name);
if(a>0){
RequestDispatcher rd = request
.getRequestDispatcher("showtype.jsp");
rd.forward(request, response);
}else{
RequestDispatcher rd = request
.getRequestDispatcher("addtype.jsp");
rd.forward(request, response);
}
}
%>
<body>
<h1>添加新闻类型</h1><hr/>
<form action="addtype.jsp" method="post">
新闻类型:<input type="text" name="typename"></br>
<input type="submit" value="提交">
</form>
</body>
showtype.jsp
<script type="text/javascript">
function deletes_(id){
var f=confirm("是否确定删除?");
if(f){
location.href="showtype.jsp?ids="+id;
}else{
alert("您取消删除");
}
}
function update(id){
location.href="updatetype.jsp?ids="+id;
}
</script>
</head>
<%
request.setCharacterEncoding("UTF-8");
String id=request.getParameter("ids");
String type=request.getParameter("type");
if(id!=null){
TypeServlet ts=new TypeServlet();
int a = ts.delete(Integer.parseInt(id));
response.sendRedirect("showtype.jsp");
}
%>
<body>
<h1> 展示类型</h1>
<table border="1">
<tr><td>编号</td><td>类型名称</td><td>操作</td></tr>
<%
//直接调用后台数据
TypeServlet ts=new TypeServlet();
List<types> list=ts.selets();
for(int i=0;i<list.size();i++){
types n=list.get(i);
%>
<tr>
<td><%=n.getId() %></td>
<td><%=n.getTypename() %></td>
<td><input type="button" onclick="update(<%=n.getId() %>)" value="修改"/>
<input type="button" onclick="deletes_(<%=n.getId() %>)" value="删除"/></td>
</tr>
<%
}
%>
</body>
updatetype.jsp
<body>
<%
request.setCharacterEncoding("UTF-8");
String id=request.getParameter("ids");
TypeServlet tsl=new TypeServlet();
types ts=new types();
String type= request.getParameter("type");
if(type!=null){
String typename=request.getParameter("newtype");//从下面的输入取值
String id1=request.getParameter("id");
ts.setId(Integer.parseInt(id1));//强转
ts.setTypename(typename);
int a=tsl.update(ts);
response.sendRedirect("showtype.jsp");
}else{
if(id!=null){
ts=tsl.selectone(Integer.parseInt(id));
}
}
%>
<h1>修改新闻类型界面</h1>
<hr/>
<form action="updatetype.jsp" method="post">
<input type="hidden" name="type" value="3">
<input type="hidden" name="id" value="<%=ts.getId() %>">
新闻类型:<input type="text" value="<%=ts.getTypename() %>" name="newtype"><br/>
<input type="submit" value="提交">
</form>
</body>
最终项目在tomcat上发布。
需要代码的人多,直接上传百度云了,大家自己下载,喜欢的话给我点个赞 链接: https://pan.baidu.com/s/1BdYakt5_d0-SlOSaLxVFPA 提取码: 82bd