用户信息添加查重系统
来源:互联网 发布:人工智能影响社会稳定 编辑:程序博客网 时间:2024/05/16 12:14
- 项目描述
- 项目流程
- 主页面
- AddUserServlet
- RegisterService
- 创建实体类User
- RegisterServiceImpl
- UserDao
- AddUserDaoImpl
- JNDIBaseDao
项目描述
实现一个添加角色信息查重系统,若数据库存在该角色相关信息,则提示添加失败,否则添加成功。
实现工具:Myeclipse , Oracle .
项目流程:
首先进入添加信息首页,然后将数据传至AddUserServlet,然后定义接口RegisterService,
然后实现接口RegisterServiceImpl,定义UserDao接口,AddUserDaoImpl实现UserDao接
口中的查询方法;AddUserDaoImpl继承连接池,实现数据库的增删改查等方法。
主页面
部门代码实现:
<form action="user.action" method="post">//学工号 <input name="id" /> //角色名 <input name="unmae" /> //权限 <input name="qx" /> //提交按钮 <input type="button" value="提交"> </form>
AddUserServlet
通过注解的方式关联添加信息页面。
@WebServlet(value="/System/user.action")
在该类中,实现查重方法。
private RegisterService service=new RegisterServiceImpl();
该类继承HttpServlet方法,重写其中的doPost方法。
@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub Connection con=null; Statement st=null; try { //1.加载驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); //2.建立数据库连接 con= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:jredu","OnlineTest","Jredu12345"); //3.获取执行sql语句的平台 st= con.createStatement(); String id = req.getParameter("id"); String uname = req.getParameter("uname"); String qx = req.getParameter("qx"); String type=req.getParameter("type"); if(service.valid(id)){ resp.sendRedirect("false.html"); }else{ resp.sendRedirect("success.html"); String sql = "INSERT INTO users(id,uname, pwd, qx) " + " VALUES(?,?, ?, ?)"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setString(1, req.getParameter("id")); pstmt.setString(2, req.getParameter("uname")); pstmt.setString(3, "123456"); pstmt.setString(4, req.getParameter("qx")); pstmt.execute(); } //4.执行sql语句插入数据 } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //关闭st if(st != null){ try { st.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //关闭con if(con != null){ try { con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
RegisterService
在该接口之中,定义一个boolean方法,接收一个id值。
public interface RegisterService { boolean valid(String id);}
创建实体类User
该实体类是的相关属性及方法:
public class User { public User(String id) { // TODO Auto-generated constructor stub } private String id; public Object getId() { // TODO Auto-generated method stub return null; } public void setId(String string) { // TODO Auto-generated method stub }
RegisterServiceImpl
该类实现接口RegisterService,实现其中的boolean valid(String id);方法。
public class RegisterServiceImpl implements RegisterService{ //数据库对象,查找数据库是否存在相关信息 private UserDao dao=new AddUserDaoImpl(); @Override public boolean valid(String id) { // TODO Auto-generated method stub User user=new User(); user.setId(id); if(dao.findUser(user)!=null) { return true; } return false; }}
通过 UserDao 关联数据库,实现数据库中查询相关信息。
private UserDao dao=new AddUserDaoImpl();
UserDao
该接口中定义查询方法。
public interface UserDao { //查询 User findUser(User user); }
AddUserDaoImpl
AddUserDaoImpl继承JNDIBaseDao,关联相关数据库。
AddUserDaoImpl类实现接口UserDao中的查询方法。
public class AddUserDaoImpl extends JNDIBaseDao implements UserDao{ @Override public User findUser(User user) { // TODO Auto-generated method stub //3.执行sql语句 //4.获取结果集 String sql="select * from users where 1=1 "; List list = new ArrayList(); if(user.getId()!=null&&!user.getId().equals("")) { sql+=" and id=?"; list.add(user.getId()); } ResultSet rs=executeQuery(sql, list.toArray()); //访问数据库查询是否存在该用户 try { //登录成功 if(rs.next()) { //把结果集转换成实体类 user.setId(rs.getString("id")); return user; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { closeAll(); } //不存在该用户 return null; }}
JNDIBaseDao
连接池方式与数据库交互,进行增、删、改、查等方法。
public class JNDIBaseDao extends HttpServlet{ private DataSource source; private Connection connection; private PreparedStatement ps; private ResultSet rs; { try { Context ic = new InitialContext(); source = (DataSource)ic.lookup("java:comp/env/jdbc/OnlineTest"); } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void getConnection() { try { connection=source.getConnection(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 增删改操作 * @param sql * @param objs * @return 影响行数 */ public int executeUpdate(String sql,Object... objs) { if(connection==null) { getConnection(); } int res=-1; try { //设置手动提交事务 connection.setAutoCommit(false); connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); ps=connection.prepareStatement(sql); if(objs!=null) { for(int i=0;i<objs.length;i++) { ps.setObject(i+1, objs[i]); } } res=ps.executeUpdate(); //手动提交事务 connection.commit(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); try { connection.rollback(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } finally { if(ps!=null) { try { ps.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return res; } /** * 查询操作 * @param sql * @param objs * @return */ public ResultSet executeQuery(String sql,Object... objs) { if(connection==null) { getConnection(); } try { ps=connection.prepareStatement(sql); if(objs!=null) { for(int i=0;i<objs.length;i++) { ps.setObject(i+1, objs[i]); } } rs=ps.executeQuery(); return rs; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } public void closeAll() { try { if(rs!=null) { rs.close(); } if(ps!=null) { ps.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
阅读全文
0 0
- 用户信息添加查重系统
- 添加用户信息
- 个人重构机房收费系统DataGridView显示用户信息
- Linux系统 添加用户和组 查看用户信息
- 什么是知网小论文查重系统?
- 什么是知网小论文查重系统?
- 添加用户信息注释
- LDAP 添加用户信息
- 小程序--添加用户信息
- rabbitmq重启丢失用户信息
- 沼气用户信息系统过程
- WinAPI获取系统用户信息
- 用户信息的增删改查:非空验证添加,模糊查询,修改密码,批量和全部删除
- Java web项目01 停车管理系统实现添加用户信息功能(四)
- 查重
- 查重
- 用户信息的添加与删除
- 探讨一下论文查重系统的设计方法
- zzh_ml
- 写给大家看的设计书学习笔记
- a = a++ 与 a = ++a
- JFinal文件上传及路径设置
- Kafka Java API操作topic
- 用户信息添加查重系统
- nginx gzip压缩设置
- 数组的添加和查找
- Hibernate的注解映射
- mysql的乱码问题
- 使用mac终端生成RSA私钥和公钥文件
- Effective Java(优先考虑类型安全的异构容器、用enum代替int常量)
- Android Service与Activity之间传值
- 数据结构上机实践第四周项目1