实现增加操作

本文详细介绍了一个基于Java的增删改查功能实现过程,包括DAO层接口定义、实现层代码编写、JSP页面展示及控制层逻辑处理。

1.一个项目如果想实现增删改查这四个基本操作,src下面必然有这么几个包


2.以下面的数据表为例


一.  实现增加功能

在数据库连接成功前提下,先在dao层接口中定义一个方法

public boolean add(User u);

随后在实现层中完成相应的代码:

package com.user.dao;


import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;


import com.db.DBCon;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;
import com.user.entity.User;


public class UserDaoImp implements UserDao {
//1个连接类对象

DBCon db=new DBCon();    //自定义的连接类  获取连接(先实例化db对象,后面代码中用到)

//4个数据库连接对象
Connection con=null;    //连接对象
Statement stmt=null;    //执行对象
PreparedStatement pstmt=null;    //预编译执行对象

        ResultSet rs=null;

 public boolean add(User u){

System.out.println("在dao层执行add方法");

    boolean flag=false;
    try {
con=db.getCon();
if(con==null){
System.out.println("dao中数据库连接不成功");
return flag;
}
//选pstmt stmt
String sql="insert into tb_users(username,password,sex,age,telphone,address,myright) values(?,?,?,?,?,?,?)";
pstmt=(PreparedStatement) con.prepareStatement(sql);
pstmt.setString(1, u.getUsername());
pstmt.setString(2,u.getPassword());
pstmt.setString(3,u.getSex());
pstmt.setInt(4,u.getAge());
pstmt.setString(5,u.getTelphone());
pstmt.setString(6,u.getAddress());
pstmt.setInt(7,u.getMyright());

int state=pstmt.executeUpdate();
if(state>0){
System.out.println("dao中添加成功");
flag=true;
}
pstmt.close();
con.close();
     
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
   
    return flag;

    }

完成jsp页面(显示所有)

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="com.user.entity.User"%>






<html>
  <head>
   
    <title>My JSP 'index.jsp' starting page</title>

  </head>
  
  <body>
  <div align="center">
<font color="#800080" size="6"><strong>&nbsp; 所有用户信息</strong>
</font>
<br>
</div>
<div align="right"><a href="/demo0313/user/register.jsp">添加新用户</a> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</div><div align="center"><form action="/demo0313/UserServelt"> 
按照:<input type="text" name="namecondition"> 
<input type="hidden" name="action" value="mohu"> 
<input type="submit" value="查询">
</form></div>

<table width="1206" border="1" height="131">
<tbody><table width="698" border="1" height="52" align="center">
<tbody>
<tr>
<td align="center">
<strong>&nbsp;序号</strong>
</td>
<td align="center">
<strong>&nbsp;姓名</strong>
</td>
<td align="center">
<strong>&nbsp;性别</strong>
</td>
<td align="center">
<strong>&nbsp;年龄</strong>
</td>
<td align="center">
<strong>&nbsp;联系电话</strong>
</td>
<td align="center">
<strong>&nbsp;地址</strong>
</td>
<td align="center">
<strong>&nbsp;权限</strong>
</td>
<td align="center">
<strong>&nbsp;操作</strong>
</td>
</tr>
<%
//1、2、3省略 
//4 创建数据访问层,并调用CRUD方法 
List<User> userlist=(List<User>)session.getAttribute("userlist");
//对userlist进行遍历 
Iterator<User> it=userlist.iterator();
int index=1;
while(it.hasNext()){
User uu=it.next();
%>


<tr>
<td>
<%=index++%>
</td>
<td>
<%=uu.getUsername() %>
</td>
<td>
<%=uu.getSex() %>
</td>
<td>
<%=uu.getAge() %>
</td>
<td>
<%=uu.getTelphone() %>
</td>
<td>
<%=uu.getAddress() %>

</td>
<td>
<%
if (uu.getMyright() == 0) {
out.println("管理员");
}
if (uu.getMyright() == 1) {
out.println("一般用户");
}
if (uu.getMyright() == 2) {
out.println("钻石用户");
}
%>
</td>
<td>
<a href="/demo0313/UserServelt?action=delete&uid=<%=uu.getUid()%>">删除</a>
<a href="/demo0313/UserServelt?action=preupdate&uid=<%=uu.getUid()%>">修改</a>
</td>
</tr>
<%
}

//推入到table
%>
</tbody>
</table>
  </body>

</html>

运行结果页面如下:


register.jsp 页面如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<title>My JSP 'test.jsp' starting page</title>


</head>


<body>
<form action="/demo0313/UserServelt?action=add" method="post">
用户名:
<input type="text"  name="username" >
<br>
<br>
密&nbsp; 码:
<input type="password" name="password">
<br>
<br>
性 别:
<input type="radio" name="sex" value="男">

<input type="radio" name="sex" value="女">

<br>
<br>
年&nbsp; 龄:
<input type="text"  name="age">
<br>
<br>
电&nbsp; 话:
<input type="text" name="telphone">
<br>
<br>
地&nbsp; 址:
<input type="text" id="address" name="address">
<br>
<br>

角色:
<input type="radio" name="myright" value="0">
管理员
<input type="radio" name="myright" value="1">
一般用户
<input type="radio" name="myright" value="2">
钻石用户
<br>
<br>
<input type="submit" name="sub" value="确定">
<input type="reset" value="重置">
</form>
<br>
</body>

</html>

运行结果如下:


这是开始写control层

// 2.添加一个用户
if (action.trim().equals("add")) {
System.out.println("控制端在执行添加功能");
// 1.获取表单元素 <br>
String username=request.getParameter("username");
String password=request.getParameter("password");
String sex=request.getParameter("sex");
String agestr=request.getParameter("age");                               /////age是int类型的
String telphone=request.getParameter("telphone");
String address=request.getParameter("address");
String myrightstr=request.getParameter("myright");
// 2.乱码,空,数值的处理
username = EncodingChange.toString(username);
sex = EncodingChange.toString(sex);
telphone = EncodingChange.toString(telphone);
address = EncodingChange.toString(address);
int age = 0;
if (agestr == null) {
age = 0;
} else {
age = Integer.parseInt(agestr);
}
int myright = -1;
if (myrightstr == null) {
myright = -1;
} else {
myright = Integer.parseInt(myrightstr);
}
System.out.println("页面传过来的数据是" + username + "\t" + myright);
// 3.封装对象并设置属性
User user = new User();
user.setAddress(address);
       user.setAge(age);
user.setMyright(myright);
user.setPassword(password);
user.setSex(sex);
user.setTelphone(telphone);
user.setUsername(username);
// 4.创建数据访问层和业务层,调用CRUD方法或业务方法
udi = new UserDaoImp();
boolean result = udi.add(user);


if (result) {
System.out.println("添加成功");
// 5.保存数据
session.setAttribute("adduser", user);
// 6.页面专向
path = "/demo0313/UserServelt?action=showall"; 


} else {
System.out.println("控制端无法执行添加功能");
path = "/demo0313/denglu/login.jsp";


}


}






    
    




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值