【代码片-7】 基于jsp+javabean+servlet+mongodb 增删改查

作者:u013045746----感谢原创,感谢作者!!

标签:mongodb    增删改查    javabean    servlet    jsp    

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
< pre name = "code" class = "html" >package org.newyear.dao;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Pattern;
 
import org.bson.BasicBSONObject;
import org.newyear.model.Employee;
 
import com.mongodb.BasicDBList;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
 
public class MongodbDaoImpl implements MongodbDao {
     static Mongo mongo;
     static DB db;
     static DBCollection empInfo;
     static{
         try {
             mongo = new Mongo("localhost", 27017);
             // 得到数据库java1211b
             db = mongo.getDB("dudu");
             empInfo = db.getCollection("emp");
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
     /**
      * 添加员工
      * @param emp
      */    
     @Override
     public void addEmp(Employee emp) {
         BasicDBObject bd = new BasicDBObject();
         if(empInfo.getCount()==0){
             bd.put("_id", 1);
         }else{
             DBObject orderBy=new BasicDBObject();
             orderBy.put("_id", -1);
             DBCursor cursor = empInfo.find().sort(orderBy).limit(1);
             DBObject next = cursor.next();
             bd.put("_id", Integer.parseInt(((BasicBSONObject) next).getString("_id"))+1);
         }
         bd.put("name", emp.getName());
         bd.put("sex", emp.getSex());
         bd.put("age", emp.getAge());
         bd.put("brith", emp.getBrith());
         empInfo.save(bd);
     }
     /**
      * 获取员工列表
      * @param emp
      * @return
      */
     @Override
     public List< Employee > getEmpList(Employee emp) {
         List< Employee > listInfo=new ArrayList< Employee >();
         DBObject orderBy=new BasicDBObject();
         orderBy.put("_id", -1);
         DBObject dbo = extracted(emp);
         DBCursor cursor = empInfo.find(dbo).sort(orderBy).skip(emp.getStartPos()).limit(emp.getPageSize());
          while(cursor.hasNext()){   
              Employee employee=new Employee();
               BasicDBObject bdbObj = (BasicDBObject) cursor.next();   
               if(bdbObj != null){   
                   employee.setId(Integer.parseInt(bdbObj.getString("_id")));
                   employee.setAge(bdbObj.getInt("age"));
                   employee.setName(bdbObj.getString("name"));
                   employee.setBrith(bdbObj.getString("brith"));
                   employee.setSex(bdbObj.getInt("sex"));
               }   
               listInfo.add(employee);
          }
         for (Employee employeeInfo : listInfo) {
             if(employeeInfo.getSex()==1){
                 employeeInfo.setSexView("男");
             }else if(employeeInfo.getSex()==2){
                 employeeInfo.setSexView("女");
             }
         }
         return listInfo;
     }
     /**
      * 获取员工总条数
      * @param emp
      * @return
      */
     @Override
     public int getCountEmp(Employee emp) {
         DBObject dbo = extracted(emp);
         return (int) empInfo.getCount(dbo);
     }
     private DBObject extracted(Employee emp) {
         //>=和<=操作
         DBObject dbo=new BasicDBObject();
         //根据年龄进行搜索
         DBObject greateAndLess=null;
         if(emp.getMinAge()!=0){
             if(greateAndLess==null){
                 greateAndLess=new BasicDBObject();
                 greateAndLess.put("$gte", emp.getMinAge());
             }
         }
         if(emp.getMaxAge()!=0){
             if(greateAndLess==null){
                 greateAndLess=new BasicDBObject();
                 greateAndLess.put("$lte", emp.getMaxAge());
             }else{
                 greateAndLess.put("$lte", emp.getMaxAge());
             }
         }
         if(greateAndLess!=null){
             dbo.put("age", greateAndLess);
         }
         //根据入职日期进行搜索
         DBObject brithGL=null;
         if(emp.getMinBrith()!=null && emp.getMinBrith().length()>0){
             if(brithGL==null){
                 brithGL=new BasicDBObject();
                 brithGL.put("$gte", emp.getMinBrith());
             }
         }
         if(emp.getMaxBrith()!=null && emp.getMaxBrith().length()>0){
             if(brithGL==null){
                 brithGL=new BasicDBObject();
                 brithGL.put("$lte", emp.getMaxBrith());
             }else{
                 brithGL.put("$lte", emp.getMaxBrith());
             }
         }
         if(brithGL!=null){
             dbo.put("brith", brithGL);
         }
         
         //根据性别进行搜素
         BasicDBList count=null;
         if(emp.getSex()!=0){
             count=new BasicDBList();
             count.add(emp.getSex());
         }
         if(count!=null){
             dbo.put("sex", new BasicDBObject("$in",count));
         }
         //根据名字进行模糊搜索
         if(emp.getName()!=null && emp.getName().length()>0){
             Pattern pattern=Pattern.compile("^.*"+emp.getName()+".*$", Pattern.CASE_INSENSITIVE);
             dbo.put("name", pattern);
         }
         return dbo;
     }
     /**
      *修改回填 根据id中啊到对应的对象
      * @param emp
      * @return
      */
     @Override
     public Employee findEmp(Employee emp) {
         Employee employeeInfo=new Employee();
         DBObject findEmp=new BasicDBObject();
         findEmp.put("_id", emp.getId());
         DBCursor find = empInfo.find(findEmp);
         while(find.hasNext()){
             BasicDBObject next = (BasicDBObject) find.next();
              employeeInfo.setId(Integer.parseInt(next.getString("_id")));
              employeeInfo.setAge(next.getInt("age"));
              employeeInfo.setName(next.getString("name"));
              employeeInfo.setSex(next.getInt("sex"));
              employeeInfo.setBrith(next.getString("brith"));
         }
         return employeeInfo;
     }
     /**
      * 修改员工
      * @param emp
      */
     @Override
     public void updateEmp(Employee emp) {
         BasicDBObject bd = new BasicDBObject();
         BasicDBObject bdInfo = new BasicDBObject();
         bd.put("name", emp.getName());
         bd.put("sex", emp.getSex());
         bd.put("age", emp.getAge());
         bd.put("brith", emp.getBrith());
         bdInfo.put("_id", emp.getId());
         empInfo.update(bdInfo, bd);
     }
     /**
      * 批量删除
      * @param ids
      */
     @Override
     public void delEmp(String ids) {
         String[] split = ids.split(",");
         BasicDBObject bd = new BasicDBObject();
         BasicDBList count=new BasicDBList();
         for (int i = 0; i <  split.length ; i++) {
             count.add(Integer.parseInt(split[i]));
         }
         bd.put("_id", new BasicDBObject("$in",count));
         empInfo.remove(bd);
     }
}  
</pre>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是JSP+Servlet+JavaBean实现数据库的增删代码示例: 1. JavaBean类 ``` public class User { private int id; private String name; private int age; private String gender; // 构造方法 public User() {} // setter和getter方法 public void setId(int id) { this.id = id; } public int getId() { return id; } public void setName(String name) { this.name = name; } public String getName() { return name; } public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void setGender(String gender) { this.gender = gender; } public String getGender() { return gender; } } ``` 2. DAO层 ``` public class UserDAO { // 数据库连接信息 private String url = "jdbc:mysql://localhost:3306/test"; private String username = "root"; private String password = "123456"; // 增加用户 public void addUser(User user) { try { // 加载MySQL驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 获取数据库连接 Connection conn = DriverManager.getConnection(url, username, password); // 创建PreparedStatement对象 PreparedStatement ps = conn.prepareStatement("INSERT INTO user(name, age, gender) VALUES (?, ?, ?)"); // 设置参数 ps.setString(1, user.getName()); ps.setInt(2, user.getAge()); ps.setString(3, user.getGender()); // 执行SQL语句 ps.executeUpdate(); // 关闭连接和PreparedStatement对象 ps.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } // 删除用户 public void deleteUser(int id) { try { // 加载MySQL驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 获取数据库连接 Connection conn = DriverManager.getConnection(url, username, password); // 创建PreparedStatement对象 PreparedStatement ps = conn.prepareStatement("DELETE FROM user WHERE id=?"); // 设置参数 ps.setInt(1, id); // 执行SQL语句 ps.executeUpdate(); // 关闭连接和PreparedStatement对象 ps.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } // 修用户 public void updateUser(User user) { try { // 加载MySQL驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 获取数据库连接 Connection conn = DriverManager.getConnection(url, username, password); // 创建PreparedStatement对象 PreparedStatement ps = conn.prepareStatement("UPDATE user SET name=?, age=?, gender=? WHERE id=?"); // 设置参数 ps.setString(1, user.getName()); ps.setInt(2, user.getAge()); ps.setString(3, user.getGender()); ps.setInt(4, user.getId()); // 执行SQL语句 ps.executeUpdate(); // 关闭连接和PreparedStatement对象 ps.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } // 询用户 public List<User> getUsers() { List<User> userList = new ArrayList<>(); try { // 加载MySQL驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 获取数据库连接 Connection conn = DriverManager.getConnection(url, username, password); // 创建Statement对象 Statement stmt = conn.createStatement(); // 执行SQL语句 ResultSet rs = stmt.executeQuery("SELECT * FROM user"); // 处理结果集 while (rs.next()) { User user = new User(); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setAge(rs.getInt("age")); user.setGender(rs.getString("gender")); userList.add(user); } // 关闭连接和Statement对象 rs.close(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } return userList; } } ``` 3. Servlet类 ``` public class UserServlet extends HttpServlet { // 创建UserDAO对象 private UserDAO userDao = new UserDAO(); protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 处理GET请求 List<User> userList = userDao.getUsers(); // 将userList存入request对象中 request.setAttribute("userList", userList); // 转发到user.jsp页面 RequestDispatcher rd = request.getRequestDispatcher("user.jsp"); rd.forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 处理POST请求 String action = request.getParameter("action"); if ("add".equals(action)) { // 添加用户 User user = new User(); user.setName(request.getParameter("name")); user.setAge(Integer.parseInt(request.getParameter("age"))); user.setGender(request.getParameter("gender")); userDao.addUser(user); } else if ("delete".equals(action)) { // 删除用户 int id = Integer.parseInt(request.getParameter("id")); userDao.deleteUser(id); } else if ("update".equals(action)) { // 修用户 User user = new User(); user.setId(Integer.parseInt(request.getParameter("id"))); user.setName(request.getParameter("name")); user.setAge(Integer.parseInt(request.getParameter("age"))); user.setGender(request.getParameter("gender")); userDao.updateUser(user); } // 重定向到UserServlet,处理GET请求 response.sendRedirect(request.getContextPath() + "/UserServlet"); } } ``` 4. JSP页面 ``` <html> <head> <title>用户管理</title> </head> <body> <h1>用户管理</h1> <table border="1"> <thead> <tr> <th>ID</th> <th>姓名</th> <th>年龄</th> <th>性别</th> <th>操作</th> </tr> </thead> <tbody> <c:forEach items="${userList}" var="user"> <tr> <td>${user.id}</td> <td>${user.name}</td> <td>${user.age}</td> <td>${user.gender}</td> <td> <form method="post" action="UserServlet"> <input type="hidden" name="id" value="${user.id}"> <input type="hidden" name="action" value="delete"> <input type="submit" value="删除"> </form> <form method="post" action="UserServlet"> <input type="hidden" name="id" value="${user.id}"> <input type="hidden" name="action" value="update"> <input type="submit" value="修"> </form> </td> </tr> </c:forEach> </tbody> </table> <hr> <h2>添加用户</h2> <form method="post" action="UserServlet"> 姓名:<input type="text" name="name"><br> 年龄:<input type="text" name="age"><br> 性别:<input type="text" name="gender"><br> <input type="hidden" name="action" value="add"> <input type="submit" value="添加"> </form> </body> </html> ``` 以上代码仅为示例,具体实现还需要根据具体需求进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值