今日成果
成功实现的用户信息的添加,回显,修改,删除
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; } }
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); } }
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); } }
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); } }
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); } }