团队开发Fooks第十一天

今日成果

 

 

 

 

 成功实现的用户信息的添加,回显,修改,删除

package dao;

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



import entity.Book;
import entity.Info;
import entity.User;
import utils.DBUtil;

public class dao {
    //注册
    public  boolean Register(User user) {
         String sql="insert into Users(username,password) values(?,?)" ;
         Object [] params= {user.getUsername(),user.getPassword()};
         return  DBUtil.executeUpdate(sql, params);
    }
    //查询账户是否存在
    public  boolean isExist(String uname) {
        return Query(uname)==null? false:true;
    }
//登录
   public boolean Login(String uname,String upwd) {
       return Query(uname,upwd)==null? false:true;
   }
 //根据账号查询用户全部信息
     public   User Query(String uname) {
          User user= null;
          ResultSet rs = null; 
          try {
              String sql="select * from Users where username =?" ;
              Object [] params= {uname};
              rs=DBUtil.executeQuery(sql, params);
              if(rs.next()) {
                  String name=rs.getString("username");
                  String pwd=rs.getString("password");
                  user= new User(name,pwd);
              }
          }catch(SQLException e) {
              e.printStackTrace();
          }catch(Exception e) {
              e.printStackTrace();
          }finally {
              try {
                     //先开的后关,后开的先关
                 if(rs!=null)rs.close();
                 if(DBUtil.pstmt!=null)DBUtil.pstmt.close();
                 if(DBUtil.connection !=null)DBUtil.connection.close();
                 }catch(SQLException e) {
                     e.printStackTrace();
                 }finally {
                     
                 }
          }
          return user;
     }
     //根据账户密码确定是否存在
     public   User Query(String uname,String upwd) {
          User user= null;
          ResultSet rs = null; 
          try {
              String sql="select * from Users where username =? and password=?" ;
              Object [] params= {uname,upwd};
              rs=DBUtil.executeQuery(sql, params);
              if(rs.next()) {
                  String name=rs.getString("username");
                  String pwd=rs.getString("password");
                  user= new User(name,pwd);
              }
          }catch(SQLException e) {
              e.printStackTrace();
          }catch(Exception e) {
              e.printStackTrace();
          }finally {
              try {
                    //先开的后关,后开的先关
                if(rs!=null)rs.close();
                if(DBUtil.pstmt!=null)DBUtil.pstmt.close();
                if(DBUtil.connection !=null)DBUtil.connection.close();
                }catch(SQLException e) {
                    e.printStackTrace();
                }finally {
                    
                }
          }
          return user;
     }
    
     public boolean set(Info info){
        String sql="insert into Info(username,nickname,sex,resume) values(?,?,?,?)";
        Object obj[]= {info.getUsername(),info.getNickname(),info.getSex(),info.getResume()};
        return DBUtil.executeUpdate(sql,obj);
    }
     //查询账户是否存在
         public  boolean isUse(String nickname) {
             return NicknameQuery(nickname)==null? false:true;
         }
         public   Info NicknameQuery(String nickname) {
               Info info= null;
               ResultSet rs = null; 
               try {
                   String sql="select * from Info where nickname =?" ;
                   Object [] params= {nickname};
                   rs=DBUtil.executeQuery(sql, params);
                   if(rs.next()) {
                       String username=rs.getString("username");
                       String sex=rs.getString("sex");
                       String resume=rs.getString("resume");
                       info=new Info(username,nickname,sex,resume);
                   }
               }catch(SQLException e) {
                   e.printStackTrace();
               }catch(Exception e) {
                   e.printStackTrace();
               }finally {
                   try {
                          //先开的后关,后开的先关
                      if(rs!=null)rs.close();
                      if(DBUtil.pstmt!=null)DBUtil.pstmt.close();
                      if(DBUtil.connection !=null)DBUtil.connection.close();
                      }catch(SQLException e) {
                          e.printStackTrace();
                      }finally {
                          
                      }
               }
               return info;
          }
         public   Info NicknameQuery(String username,String nickname) {
              Info info= null;
              ResultSet rs = null; 
              try {
                  String sql="select * from Info where username=? and nickname =?" ;
                  Object [] params= {username,nickname};
                  rs=DBUtil.executeQuery(sql, params);
                  if(rs.next()) {
                      String sex=rs.getString("sex");
                      String resume=rs.getString("resume");
                      info=new Info(username,nickname,sex,resume);
                  }
              }catch(SQLException e) {
                  e.printStackTrace();
              }catch(Exception e) {
                  e.printStackTrace();
              }finally {
                  try {
                         //先开的后关,后开的先关
                     if(rs!=null)rs.close();
                     if(DBUtil.pstmt!=null)DBUtil.pstmt.close();
                     if(DBUtil.connection !=null)DBUtil.connection.close();
                     }catch(SQLException e) {
                         e.printStackTrace();
                     }finally {
                         
                     }
              }
              return info;
         }
         public   boolean NicknameDelete(String username,String nickname) {
             
                  String sql="delete from Info where username=? and nickname =?" ;
                  Object [] params= {username,nickname};
            return DBUtil.executeUpdate(sql, params);
         }
         public   Info NickShowQuery(String username) {
              Info info= null;
              ResultSet rs = null; 
              try {
                  String sql="select * from Info where username =?" ;
                  Object [] params= {username};
                  rs=DBUtil.executeQuery(sql, params);
                  if(rs.next()) {
                      String nickname=rs.getString("nickname");
                      String sex=rs.getString("sex");
                      String resume=rs.getString("resume");
                      info=new Info(username,nickname,sex,resume);
                  }
              }catch(SQLException e) {
                  e.printStackTrace();
              }catch(Exception e) {
                  e.printStackTrace();
              }finally {
                  try {
                         //先开的后关,后开的先关
                     if(rs!=null)rs.close();
                     if(DBUtil.pstmt!=null)DBUtil.pstmt.close();
                     if(DBUtil.connection !=null)DBUtil.connection.close();
                     }catch(SQLException e) {
                         e.printStackTrace();
                     }finally {
                         
                     }
              }
              return info;
         }
    public boolean add(Book book){
        String sql="insert into Book(BookName,BookPath,CreateUser,CreateDate) values(?,?,?,?)";
        Object obj[]= {book.getBookName(),book.getBookPath(),book.getCreateUser(),book.getCreateDate()};
        return DBUtil.executeUpdate(sql,obj);
    }

    public List<Book> Query() {
        List<Book> books=new ArrayList();
        Book book= null;
        ResultSet rs = null;
        try {
            String sql="select * from Book " ;
            Object [] params= {};
            rs=DBUtil.executeQuery(sql, params);
            while(rs.next()) {
                int Id=rs.getInt("id");
                String BookName=rs.getString("BookName");
                String BookPath=rs.getString("BookPath");
                String CreateUser=rs.getString("CreateUser");
                String CreateDate=rs.getString("CreateDate");
                book=new Book(Id,BookName,BookPath,CreateUser,CreateDate);
                books.add(book);
            }
        }catch(SQLException e) {
            e.printStackTrace();
        }catch(Exception e) {
            e.printStackTrace();
        }finally {
            try {
                //先开的后关,后开的先关
                if(rs!=null)rs.close();
                if(DBUtil.pstmt!=null)DBUtil.pstmt.close();
                if(DBUtil.connection !=null)DBUtil.connection.close();
            }catch(SQLException e) {
                e.printStackTrace();
            }finally {

            }

        }
        return books;
    }
}
dao.java
package Servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.dao;
import entity.Info;
import net.sf.json.JSONObject;


public class SetServlet extends HttpServlet {
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html; charset=utf-8");
        String username=request.getParameter("username");
        String nickname=request.getParameter("nickname");
        String sex=request.getParameter("sex");
        String resume=request.getParameter("resume");

        
        Info info =new Info(username,nickname,sex,resume);
        dao dao =new dao();
        PrintWriter out = response.getWriter();
        JSONObject json=new JSONObject();
        boolean result1=dao.isUse(nickname);
        if(dao.NickShowQuery(username)!=null) {
            //用户已有昵称
            if(!result1) {
                if(dao.NicknameDelete(username, dao.NickShowQuery(username).getNickname()))
                {
                    boolean result2=dao.set(info);
                    if(result2) {
                        json.put("result", 1);
                    }else {
                        json.put("result", 2);
                    }
                }else 
                {
                    json.put("result", 0);
                }
                    out.print(json);
                    return;
            }
        }else 
        {    
        if(!result1) {
            boolean result2=dao.set(info);
            if(result2) {
                json.put("result", 1);
            }else {
                json.put("result", 2);
            }
        }else {
            json.put("result", 0);
        }
        out.print(json);
        return;
        }
    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}
SetServlet.java
package Servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import dao.dao;
import entity.*;
import net.sf.json.JSONArray;


public class ShowInfoServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html; charset=utf-8");
        String username=request.getParameter("username");
        dao dao =new dao();
        Info info=dao.NickShowQuery(username);
        
        PrintWriter out = response.getWriter();
        JSONArray jsonArray = JSONArray.fromObject(info);
        
        out.print(jsonArray.toString());
    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}
ShowInfoServlet.java
package com.example.fooks;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.example.fooks.entity.Book;
import com.example.fooks.entity.Info;
import com.example.fooks.utils.BooksAdapter;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.UnsupportedEncodingException;

import cz.msebera.android.httpclient.Header;

public class UserActivity extends AppCompatActivity {
    private Button mHome;
    private Button mBook;
    private Button mPerson;
    private EditText editText;
    private EditText editText2;
    private TextView mNickname;
    private String mUsername;
    private static String TAG="UserActivity";
    //设置返回按钮:不应该退出程序---而是返回桌面
    //复写onKeyDown事件
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (keyCode == KeyEvent.KEYCODE_BACK) {
            Intent home = new Intent(Intent.ACTION_MAIN);
            home.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            home.addCategory(Intent.CATEGORY_HOME);
            startActivity(home);
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
    @Override
    protected void onPause() {
        overridePendingTransition(0,0);
        super.onPause();
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_user);

        Intent intent =getIntent();
        mUsername =intent.getStringExtra("username");
        //

       initView();

        //
       initListener();

       initInfo();
    }

    private void initView() {

        mBook=(Button) this.findViewById(R.id.btn_book);
        mHome=(Button) this.findViewById(R.id.btn_home);
        mPerson=(Button) this.findViewById(R.id.btn_person);
        mNickname=(TextView)this.findViewById(R.id.nickname);
        //把输入框变成分割线 by:scf
        editText=this.findViewById(R.id.editText);
        editText2=this.findViewById(R.id.editText2);
        editText.setFocusableInTouchMode(false);//不可编辑
        editText.setKeyListener(null);//不可粘贴
        editText2.setFocusableInTouchMode(false);//不可编辑
        editText2.setKeyListener(null);
    }

    private void initInfo() {
        //获取数据
        AsyncHttpClient client =new AsyncHttpClient();
        String url = "http://47.94.229.72:8080/Fooks/ShowInfoServlet";//url组成:ip:端口 + 服务端工程名 + servlet名
        RequestParams params = new RequestParams();
        params.put("username",mUsername);
        client.post(url, params, new AsyncHttpResponseHandler() {
            @Override
            public void onSuccess(int i, Header[] headers, byte[] bytes) {
                if(i == 200) {
                    try {
                        String result = new String(bytes,"utf-8");
                        Log.e(TAG,"返回结果"+result);
                        try {
                            JSONArray jsonArray = new JSONArray(result);
                            for(int j=0;j<jsonArray.length();j++){
                                JSONObject jsonObject=jsonArray.getJSONObject(j);
                                Info info =new Info();
                                info.setId(jsonObject.getInt("id"));
                                info.setUsername(jsonObject.getString("username"));
                                info.setNickname(jsonObject.getString("nickname"));
                                info.setSex(jsonObject.getString("sex"));
                                info.setResume(jsonObject.getString("resume"));
                                mNickname.setText(info.getNickname());
                            }

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    }

                }
            }

            @Override
            public void onFailure(int i, Header[] headers, byte[] bytes, Throwable throwable) {
                Toast.makeText(getApplicationContext(),"请求失败,请检查网络",Toast.LENGTH_LONG).show();
            }
        });
    }

    private void initListener() {
        mHome.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(UserActivity.this,MainActivity.class);
                intent.putExtra("username",mUsername);
                startActivity(intent);

                UserActivity.this.overridePendingTransition(0, 0);

            }
        });
        mBook.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(UserActivity.this,ReadActivity.class);
                intent.putExtra("username",mUsername);
                startActivity(intent);
                UserActivity.this.overridePendingTransition(0, 0);

            }
        });
    }

    public void buttonSet(View view) {
        Intent intent  =new Intent(UserActivity.this,SetActivity.class);
        intent.putExtra("username",mUsername);
        startActivity(intent);
        UserActivity.this.overridePendingTransition(0, 0);
    }
}
UserActivity.java
package com.example.fooks;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

import androidx.annotation.Nullable;

import com.example.fooks.entity.Info;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.UnsupportedEncodingException;

import cz.msebera.android.httpclient.Header;

public class SetActivity extends Activity {
    private String mUsername;
    private RadioGroup mSex;
    private EditText mNickname;
    private EditText mResume;
    private Button mSetBtn;
    private RadioButton mR;
    private RadioButton mWR;
    private String TAG="SetActivity";

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_set);

        Intent intent =getIntent();
        mUsername =intent.getStringExtra("username");

        //初始化控件
        initView();
        //设置监听,处理点击事件
        initListener();
        initInfo();
    }

    private void initListener() {
        mSex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                mR =(RadioButton) findViewById(checkedId);
            }
        });
        mSetBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //点击了注册按钮
                Sethandler();
            }
        });
    }
    private void Sethandler() {
        Info info =new Info();
        //昵称
        String nickname=mNickname.getText().toString().trim();
        //简介
        String resume =mResume.getText().toString().trim();
        //性别
        String sexText;
        if(mR.getText().toString()!=null) {
            sexText = mR.getText().toString();
        }else{
            sexText="男";
        }
        Log.e(TAG,"账户:"+nickname);
        Log.e(TAG,"密码:"+resume);
        Log.e(TAG,"性别:"+sexText);
        //对账号和密码进行检测
      info.setUsername(mUsername);
      info.setNickname(nickname);
      info.setSex(sexText);
      info.setResume(resume);
      SetInfo(info);
      initInfo();
    }

    private void initInfo() {
        //获取数据
        AsyncHttpClient client =new AsyncHttpClient();
        String url = "http://47.94.229.72:8080/Fooks/ShowInfoServlet";//url组成:ip:端口 + 服务端工程名 + servlet名
        RequestParams params = new RequestParams();
        params.put("username",mUsername);
        client.post(url, params, new AsyncHttpResponseHandler() {
            @Override
            public void onSuccess(int i, Header[] headers, byte[] bytes) {
                if(i == 200) {
                    try {
                        String result = new String(bytes,"utf-8");
                        Log.e(TAG,"返回结果"+result);
                        try {
                            JSONArray jsonArray = new JSONArray(result);
                            for(int j=0;j<jsonArray.length();j++){
                                JSONObject jsonObject=jsonArray.getJSONObject(j);
                                Info info =new Info();
                                info.setId(jsonObject.getInt("id"));
                                info.setUsername(jsonObject.getString("username"));
                                info.setNickname(jsonObject.getString("nickname"));
                                info.setSex(jsonObject.getString("sex"));
                                info.setResume(jsonObject.getString("resume"));
                                mNickname.setText(info.getNickname());
                                if(info.getSex().equals("女")){
                                    mWR.setChecked(true);
                                }
                                mResume.setText(info.getResume());
                            }

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    }

                }
            }

            @Override
            public void onFailure(int i, Header[] headers, byte[] bytes, Throwable throwable) {
                Toast.makeText(getApplicationContext(),"请求失败,请检查网络",Toast.LENGTH_LONG).show();
            }
        });
    }

    private void SetInfo(Info info) {
        AsyncHttpClient client =new AsyncHttpClient();
        String url = "http://47.94.229.72:8080/Fooks/SetServlet";//url组成:ip:端口 + 服务端工程名 + servlet名
        RequestParams params = new RequestParams();
        params.put("username",info.getUsername());
        params.put("nickname",info.getNickname());
        params.put("sex",info.getSex());
        params.put("resume",info.getResume());
        client.post(url, params, new AsyncHttpResponseHandler() {
            @Override
            public void onSuccess(int i, Header[] headers, byte[] bytes) {
                if(i == 200) {
                    try {
                        String result = new String(bytes, "utf-8");
                        try {
                            JSONObject jsonObject = new JSONObject(result);
                            int s = jsonObject.getInt("result");
                            switch (s) {
                                case 0:
                                    Toast.makeText(getApplicationContext(), "该昵称已被使用", Toast.LENGTH_LONG).show();
                                    break;
                                case 1:
                                    Toast.makeText(getApplicationContext(), "修改成功", Toast.LENGTH_LONG).show();
                                    Intent intent = new Intent(SetActivity.this, UserActivity.class);
                                    intent.putExtra("username",mUsername);
                                    startActivity(intent);
                                    SetActivity.this.overridePendingTransition(0, 0);
                                    break;
                                case 2:
                                    Toast.makeText(getApplicationContext(), "系统错误", Toast.LENGTH_LONG).show();
                                    break;
                                default:
                                    Toast.makeText(getApplicationContext(), "未知错误", Toast.LENGTH_LONG).show();
                                    break;
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }

                    } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    }

                }
            }

            @Override
            public void onFailure(int i, Header[] headers, byte[] bytes, Throwable throwable) {
                Toast.makeText(getApplicationContext(),"请求失败,请检查网络",Toast.LENGTH_LONG).show();
            }
        });
    }

    private void initView() {
        mNickname = (EditText)this.findViewById(R.id.set_nickname);
        mResume = (EditText)this.findViewById(R.id.set_resume);
        mSex = (RadioGroup)this.findViewById(R.id.radioGroup);
        mSetBtn =(Button)this.findViewById(R.id.set_btn);
        mR=(RadioButton)this.findViewById(R.id.man_radio);
        mWR=(RadioButton)this.findViewById(R.id.woman_radio);
    }
}
SetActivity.java

 

posted @ 2020-04-26 18:42  夜月薇凉映银弩  阅读(175)  评论(0编辑  收藏  举报