diff --git a/SoftHomework/.gitignore b/SoftHomework/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/SoftHomework/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/SoftHomework/.idea/.gitignore b/SoftHomework/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/SoftHomework/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/SoftHomework/.idea/compiler.xml b/SoftHomework/.idea/compiler.xml new file mode 100644 index 0000000..61a9130 --- /dev/null +++ b/SoftHomework/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/SoftHomework/.idea/gradle.xml b/SoftHomework/.idea/gradle.xml new file mode 100644 index 0000000..fa31fe2 --- /dev/null +++ b/SoftHomework/.idea/gradle.xml @@ -0,0 +1,21 @@ + + + + + + \ No newline at end of file diff --git a/SoftHomework/.idea/jarRepositories.xml b/SoftHomework/.idea/jarRepositories.xml new file mode 100644 index 0000000..a5f05cd --- /dev/null +++ b/SoftHomework/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/SoftHomework/.idea/misc.xml b/SoftHomework/.idea/misc.xml new file mode 100644 index 0000000..d5d35ec --- /dev/null +++ b/SoftHomework/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/SoftHomework/app/.gitignore b/SoftHomework/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/SoftHomework/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/SoftHomework/app/build.gradle b/SoftHomework/app/build.gradle new file mode 100644 index 0000000..8b3cf0e --- /dev/null +++ b/SoftHomework/app/build.gradle @@ -0,0 +1,40 @@ +plugins { + id 'com.android.application' +} + +android { + compileSdkVersion 30 + buildToolsVersion "30.0.3" + + defaultConfig { + applicationId "edu.hzuapps.softhomework" + minSdkVersion 16 + targetSdkVersion 30 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + +dependencies { + + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'com.google.android.material:material:1.1.0' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' + implementation files('libs\\mysql-connector-java-5.1.46-bin.jar') + testImplementation 'junit:junit:4.+' + androidTestImplementation 'androidx.test.ext:junit:1.1.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' +} \ No newline at end of file diff --git a/SoftHomework/app/libs/mysql-connector-java-5.1.46-bin.jar b/SoftHomework/app/libs/mysql-connector-java-5.1.46-bin.jar new file mode 100644 index 0000000..94ab24c Binary files /dev/null and b/SoftHomework/app/libs/mysql-connector-java-5.1.46-bin.jar differ diff --git a/SoftHomework/app/proguard-rules.pro b/SoftHomework/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/SoftHomework/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/SoftHomework/app/src/androidTest/java/edu/hzuapps/softhomework/ExampleInstrumentedTest.java b/SoftHomework/app/src/androidTest/java/edu/hzuapps/softhomework/ExampleInstrumentedTest.java new file mode 100644 index 0000000..e404852 --- /dev/null +++ b/SoftHomework/app/src/androidTest/java/edu/hzuapps/softhomework/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package edu.hzuapps.softhomework; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("edu.hzuapps.softhomework", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/SoftHomework/app/src/main/AndroidManifest.xml b/SoftHomework/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..41d30ce --- /dev/null +++ b/SoftHomework/app/src/main/AndroidManifest.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/AddStudentActivity.java b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/AddStudentActivity.java new file mode 100644 index 0000000..795cd76 --- /dev/null +++ b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/AddStudentActivity.java @@ -0,0 +1,83 @@ +package edu.hzuapps.softhomework; + +import androidx.appcompat.app.AppCompatActivity; + +import android.os.Bundle; +import android.os.Handler; +import android.text.TextUtils; +import android.view.View; +import android.widget.Button; +import android.widget.EdgeEffect; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; + +import edu.hzuapps.softhomework.dao.StudentDAO; +import edu.hzuapps.softhomework.model.Student; + +public class AddStudentActivity extends AppCompatActivity implements View.OnClickListener { + + private EditText etv_id, etv_name, etv_sex, etv_major; + private Button btn_addstudent; + + private Handler mainhandler; + private StudentDAO studentDAO; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_add_student); + + init(); + } + + private void init() { + etv_id = findViewById(R.id.addstudent_etv_id); + etv_name = findViewById(R.id.addstudent_etv_name); + etv_sex = findViewById(R.id.addstudent_etv_sex); + etv_major = findViewById(R.id.addstudent_etv_major); + btn_addstudent = findViewById(R.id.addstudent_btn_addstudent); + btn_addstudent.setOnClickListener(this); + + mainhandler = new Handler(getMainLooper()); + studentDAO = new StudentDAO(); + } + + + @Override + public void onClick(View v) { + switch(v.getId()) { + case R.id.addstudent_btn_addstudent: + doAddStudent(); + break; + } + } + + private void doAddStudent() { + String id = etv_id.getText().toString().trim(); + String name = etv_name.getText().toString().trim(); + String sex = etv_sex.getText().toString().trim(); + String major = etv_major.getText().toString().trim(); + if(TextUtils.isEmpty(id) || TextUtils.isEmpty(name) || TextUtils.isEmpty(sex) || TextUtils.isEmpty(major)) { + Toast.makeText(this, "输入不能为空", Toast.LENGTH_SHORT).show(); + return ; + } + new Thread(new Runnable() { + @Override + public void run() { + final int iRow = studentDAO.addStudent(new Student(id, name, sex, major)); + mainhandler.post(new Runnable() { + @Override + public void run() { + if(iRow == 0) { + Toast.makeText(AddStudentActivity.this, "添加失败", Toast.LENGTH_SHORT).show(); + return ; + } + Toast.makeText(AddStudentActivity.this, "添加成功", Toast.LENGTH_SHORT).show(); + finish(); + } + }); + } + }).start(); + } +} \ No newline at end of file diff --git a/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/HomeActivity.java b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/HomeActivity.java new file mode 100644 index 0000000..918dbb7 --- /dev/null +++ b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/HomeActivity.java @@ -0,0 +1,88 @@ +package edu.hzuapps.softhomework; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.view.View; +import android.widget.AdapterView; +import android.widget.Button; +import android.widget.ListView; + +import java.util.ArrayList; +import java.util.List; + +import edu.hzuapps.softhomework.dao.StudentDAO; +import edu.hzuapps.softhomework.model.Student; + +public class HomeActivity extends AppCompatActivity implements View.OnClickListener { + + private Handler mainhandler; + private LvStudentAdapter lvStudentAdapter; + private List studentList; + private ListView list_studentinfo; + private StudentDAO studentDAO; + private Button btn_addstudent; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_home); + + init(); + ShowAllStudent(); + } + + private void init() { + mainhandler = new Handler(getMainLooper()); + list_studentinfo = findViewById(R.id.home_list_studentinfo); + studentDAO = new StudentDAO(); + btn_addstudent = findViewById(R.id.home_btn_addstudent); + btn_addstudent.setOnClickListener(this); + } + + private void ShowAllStudent() { + new Thread(new Runnable() { + @Override + public void run() { + studentList = studentDAO.getAllData(); + mainhandler.post(new Runnable() { + @Override + public void run() { + ShowLvData(); + } + }); + } + }).start(); + } + + private void ShowLvData() { + if(lvStudentAdapter == null) { + lvStudentAdapter = new LvStudentAdapter(this, studentList); + lvStudentAdapter.setMainhandler(mainhandler); + list_studentinfo.setAdapter(lvStudentAdapter); + }else { + lvStudentAdapter.setStudentList(studentList); + lvStudentAdapter.notifyDataSetChanged(); + } + } + + @Override + public void onClick(View v) { + switch(v.getId()) { + case R.id.home_btn_addstudent: + Intent intent = new Intent(this, AddStudentActivity.class); + startActivity(intent); + break; + } + } + + @Override + public void onResume() { + super.onResume(); + ShowAllStudent(); + } + +} \ No newline at end of file diff --git a/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/LoginActivity.java b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/LoginActivity.java new file mode 100644 index 0000000..cdf73e7 --- /dev/null +++ b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/LoginActivity.java @@ -0,0 +1,90 @@ +package edu.hzuapps.softhomework; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; + +import edu.hzuapps.softhomework.dao.UserDAO; +import edu.hzuapps.softhomework.model.User; + +public class LoginActivity extends AppCompatActivity implements View.OnClickListener { + + private UserDAO userDAO; + private Handler mainHandler; + + private EditText etv_username, etv_password; + private Button btn_login; + private TextView tv_toregister; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_login); + + init(); + } + + void init() { + userDAO = new UserDAO(); + mainHandler = new Handler(getMainLooper()); + + etv_username = findViewById(R.id.login_etv_username); + etv_password = findViewById(R.id.login_etv_password); + btn_login = findViewById(R.id.login_btn_login); + btn_login.setOnClickListener(this); + tv_toregister = findViewById(R.id.login_tv_toregister); + tv_toregister.setOnClickListener(this); + } + + + @Override + public void onClick(View v) { + switch(v.getId()) { + case R.id.login_btn_login: + doLogin(); + break; + case R.id.login_tv_toregister: + Intent intent = new Intent(this, RegisterActivity.class); + startActivity(intent); + break; + } + } + + private void doLogin() { + String username = etv_username.getText().toString().trim(); + String password = etv_password.getText().toString().trim(); + if(TextUtils.isEmpty(username) || TextUtils.isEmpty(password)) { + Toast.makeText(this, "用户名和密码不能为空", Toast.LENGTH_SHORT).show(); + return ; + } + new Thread(new Runnable() { + @Override + public void run() { + final int iRow = userDAO.checkUser(new User(username, password)); + mainHandler.post(new Runnable() { + @Override + public void run() { + if(iRow == 0) { + Toast.makeText(LoginActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT).show(); + return ; + } + Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show(); + Intent intent = new Intent(LoginActivity.this, HomeActivity.class); + startActivity(intent); + finish(); + } + }); + } + }).start(); + } + +} \ No newline at end of file diff --git a/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/LvStudentAdapter.java b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/LvStudentAdapter.java new file mode 100644 index 0000000..e315223 --- /dev/null +++ b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/LvStudentAdapter.java @@ -0,0 +1,111 @@ +package edu.hzuapps.softhomework; + +import android.content.Context; +import android.os.Handler; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +import java.util.List; + +import edu.hzuapps.softhomework.dao.StudentDAO; +import edu.hzuapps.softhomework.model.Student; + +public class LvStudentAdapter extends BaseAdapter { + + private Context context; + private List studentList; + private android.os.Handler mainhandler; + + public LvStudentAdapter() { + + } + + public LvStudentAdapter(Context context, List studentList) { + this.context = context; + this.studentList = studentList; + } + + public void setMainhandler(Handler mainhandler) { + this.mainhandler = mainhandler; + } + + public void setStudentList(List studentList) { + this.studentList = studentList; + } + + @Override + public int getCount() { + return studentList.size(); + } + + @Override + public Object getItem(int position) { + return studentList.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + ViewHolder viewHolder = null; + if(convertView == null) { + convertView = LayoutInflater.from(context).inflate(R.layout.list_student_item, null); + viewHolder = new ViewHolder(); + viewHolder.tv_id = convertView.findViewById(R.id.list_student_item_tv_id); + viewHolder.tv_name = convertView.findViewById(R.id.list_student_item_tv_name); + viewHolder.tv_sex = convertView.findViewById(R.id.list_student_item_tv_sex); + viewHolder.tv_major = convertView.findViewById(R.id.list_student_item_tv_major); + viewHolder.image_delete = convertView.findViewById(R.id.list_student_item_image_delete); + convertView.setTag(viewHolder); + }else { + viewHolder = (ViewHolder)convertView.getTag(); + } + + final Student siteInfo = studentList.get(position); + viewHolder.tv_id.setText(siteInfo.getId()); + viewHolder.tv_name.setText(siteInfo.getName()); + viewHolder.tv_sex.setText(siteInfo.getSex()); + viewHolder.tv_major.setText(siteInfo.getMajor()); + viewHolder.image_delete.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + StudentDAO studentDAO = new StudentDAO(); + new Thread(new Runnable() { + @Override + public void run() { + final int iRow = studentDAO.delStudent(siteInfo); + studentList.remove(position); + mainhandler.post(new Runnable() { + @Override + public void run() { + if(iRow == 0) Toast.makeText(context, "删除失败", Toast.LENGTH_SHORT).show(); + else Toast.makeText(context, "删除成功", Toast.LENGTH_SHORT).show(); + flush(); + } + }); + } + }).start(); + } + }); + + return convertView; + } + + private class ViewHolder { + private TextView tv_id, tv_name, tv_sex, tv_major; + private ImageView image_delete; + } + + private void flush() { + this.notifyDataSetChanged(); + } + +} diff --git a/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/MainActivity.java b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/MainActivity.java new file mode 100644 index 0000000..658e341 --- /dev/null +++ b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/MainActivity.java @@ -0,0 +1,15 @@ +package edu.hzuapps.softhomework; + +import androidx.appcompat.app.AppCompatActivity; + +import android.os.Bundle; + +public class MainActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + } + +} \ No newline at end of file diff --git a/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/RegisterActivity.java b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/RegisterActivity.java new file mode 100644 index 0000000..d0ec23a --- /dev/null +++ b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/RegisterActivity.java @@ -0,0 +1,84 @@ +package edu.hzuapps.softhomework; + +import androidx.appcompat.app.AppCompatActivity; + +import android.os.Bundle; +import android.os.Handler; +import android.text.TextUtils; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.RelativeLayout; +import android.widget.Toast; + +import edu.hzuapps.softhomework.dao.UserDAO; +import edu.hzuapps.softhomework.model.User; + +public class RegisterActivity extends AppCompatActivity implements View.OnClickListener { + + private UserDAO userDAO; + private Handler mainHandler; + + private EditText etv_username, etv_password, etv_checkpassword; + private Button btn_register; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_register); + + init(); + } + + private void init() { + userDAO = new UserDAO(); + mainHandler = new Handler(getMainLooper()); + + etv_username = findViewById(R.id.register_etv_username); + etv_password = findViewById(R.id.register_etv_password); + etv_checkpassword = findViewById(R.id.register_etv_checkpassword); + btn_register = findViewById(R.id.register_btn_register); + btn_register.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + switch(v.getId()) { + case R.id.register_btn_register: + doRegister(); + break; + } + } + + private void doRegister() { + String username = etv_username.getText().toString().trim(); + String password = etv_password.getText().toString().trim(); + String checkpassword = etv_checkpassword.getText().toString().trim(); + if(TextUtils.isEmpty(username) || TextUtils.isEmpty(password) || TextUtils.isEmpty(checkpassword)) { + Toast.makeText(this, "输入不能为空", Toast.LENGTH_SHORT).show(); + return ; + } + if(!password.equals(checkpassword)) { + Toast.makeText(this, "两次密码不一致", Toast.LENGTH_SHORT).show(); + return ; + } + new Thread(new Runnable() { + @Override + public void run() { + final int iRow = userDAO.addUser(new User(username, password)); + mainHandler.post(new Runnable() { + @Override + public void run() { + if(iRow == 0) { + Toast.makeText(RegisterActivity.this, "注册失败,请重新注册", Toast.LENGTH_SHORT).show(); + return ; + } + Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show(); + finish(); + } + }); + } + }).start(); + } + +} \ No newline at end of file diff --git a/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/code.zip b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/code.zip new file mode 100644 index 0000000..ac5c439 Binary files /dev/null and b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/code.zip differ diff --git a/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/dao/StudentDAO.java b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/dao/StudentDAO.java new file mode 100644 index 0000000..fbfe2bf --- /dev/null +++ b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/dao/StudentDAO.java @@ -0,0 +1,82 @@ +package edu.hzuapps.softhomework.dao; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +import edu.hzuapps.softhomework.jdbc.JdbcHelper; +import edu.hzuapps.softhomework.model.Student; + +public class StudentDAO extends JdbcHelper { + + public List getAllData() { + Connection conn = null; + PreparedStatement pstmt = null; + ResultSet rs = null; + List studentList = new ArrayList<>(); + try { + conn = getConnection(); + String sql = "select * from student"; + pstmt = conn.prepareStatement(sql); + rs = pstmt.executeQuery(); + while(rs.next()) { + Student item = new Student(); + item.setId(rs.getString("id")); + item.setName(rs.getString("name")); + item.setSex(rs.getString("sex")); + item.setMajor(rs.getString("major")); + studentList.add(item); + } + } catch (SQLException throwables) { + throwables.printStackTrace(); + }finally { + closeAll(conn, pstmt, rs); + } + return studentList; + } + + public int addStudent(Student student) { + Connection conn = null; + PreparedStatement pstmt = null; + ResultSet rs = null; + int iRow = 0; + try { + conn = getConnection(); + String sql = "insert into student values(?,?,?,?)"; + pstmt = conn.prepareStatement(sql); + pstmt.setString(1, student.getId()); + pstmt.setString(2, student.getName()); + pstmt.setString(3, student.getSex()); + pstmt.setString(4, student.getMajor()); + iRow = pstmt.executeUpdate(); + } catch (SQLException throwables) { + throwables.printStackTrace(); + }finally { + closeAll(conn, pstmt, rs); + } + return iRow; + } + + public int delStudent(Student student) { + Connection conn = null; + PreparedStatement pstmt = null; + ResultSet rs = null; + int iRow = 0; + try { + conn = getConnection(); + String sql = "delete from student where id = ? and name = ?"; + pstmt = conn.prepareStatement(sql); + pstmt.setString(1, student.getId()); + pstmt.setString(2, student.getName()); + iRow = pstmt.executeUpdate(); + } catch (SQLException throwables) { + throwables.printStackTrace(); + }finally { + closeAll(conn, pstmt, rs); + } + return iRow; + } +} diff --git a/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/dao/UserDAO.java b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/dao/UserDAO.java new file mode 100644 index 0000000..770a490 --- /dev/null +++ b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/dao/UserDAO.java @@ -0,0 +1,80 @@ +package edu.hzuapps.softhomework.dao; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +import edu.hzuapps.softhomework.jdbc.JdbcHelper; +import edu.hzuapps.softhomework.model.User; + +public class UserDAO extends JdbcHelper { + + public List getAllData() { + Connection conn = null; + PreparedStatement pstmt = null; + ResultSet rs = null; + List userList = new ArrayList<>(); + try { + conn = getConnection(); + String sql = "select * from user"; + pstmt = conn.prepareStatement(sql); + rs = pstmt.executeQuery(); + while(rs.next()) { + User item = new User(); + item.setUsername(rs.getString("username")); + item.setPassword(rs.getString("password")); + userList.add(item); + } + } catch (SQLException throwables) { + throwables.printStackTrace(); + }finally { + closeAll(conn, pstmt, rs); + } + return userList; + } + + public int addUser(User user) { + Connection conn = null; + PreparedStatement pstmt = null; + ResultSet rs = null; + int iRow = 0; + try { + conn = getConnection(); + String sql = "insert into user values(?,?)"; + pstmt = conn.prepareStatement(sql); + pstmt.setString(1, user.getUsername()); + pstmt.setString(2, user.getPassword()); + iRow = pstmt.executeUpdate(); + } catch (SQLException throwables) { + throwables.printStackTrace(); + }finally { + closeAll(conn, pstmt, rs); + } + return iRow; + } + + public int checkUser(User user) { + Connection conn = null; + PreparedStatement pstmt = null; + ResultSet rs = null; + int iRow = 0; + try { + conn = getConnection(); + String sql = "select username from user where username = ? and password = ?"; + pstmt = conn.prepareStatement(sql); + pstmt.setString(1, user.getUsername()); + pstmt.setString(2, user.getPassword()); + rs = pstmt.executeQuery(); + while(rs.next()) iRow++; + } catch (SQLException throwables) { + throwables.printStackTrace(); + }finally { + closeAll(conn, pstmt, rs); + } + return iRow; + } + +} diff --git a/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/jdbc/JdbcHelper.java b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/jdbc/JdbcHelper.java new file mode 100644 index 0000000..830936f --- /dev/null +++ b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/jdbc/JdbcHelper.java @@ -0,0 +1,44 @@ +package edu.hzuapps.softhomework.jdbc; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; + +public class JdbcHelper { + + private static final String CLS = "com.mysql.jdbc.Driver"; + private static final String URL = "jdbc:mysql://10.77.169.109:3306/softhomework"; + private static final String USER = "sf"; + private static final String PWD = "123456"; + + public static Connection getConnection() { + try { + Class.forName(CLS); + return DriverManager.getConnection(URL, USER, PWD); + }catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static void closeAll(Connection conn, PreparedStatement pstmt, ResultSet rs) { + try { + if(rs != null) { + rs.close(); + rs = null; + } + if(pstmt != null) { + pstmt.close(); + pstmt = null; + } + if(conn != null) { + conn.close(); + conn = null; + } + }catch (Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/model/Student.java b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/model/Student.java new file mode 100644 index 0000000..9eacd1c --- /dev/null +++ b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/model/Student.java @@ -0,0 +1,53 @@ +package edu.hzuapps.softhomework.model; + +public class Student { + + private String id; + private String name; + private String sex; + private String major; + + public Student() { + + } + + public Student(String id, String name, String sex, String major) { + this.id = id; + this.name = name; + this.sex = sex; + this.major = major; + } + + public String getId() { + return id; + } + + public String getName() { + return name; + } + + public String getSex() { + return sex; + } + + public String getMajor() { + return major; + } + + public void setId(String id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public void setMajor(String major) { + this.major = major; + } + +} diff --git a/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/model/User.java b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/model/User.java new file mode 100644 index 0000000..541056b --- /dev/null +++ b/SoftHomework/app/src/main/java/edu/hzuapps/softhomework/model/User.java @@ -0,0 +1,32 @@ +package edu.hzuapps.softhomework.model; + +public class User { + + private String username; + private String password; + + public User() { + + } + + public User(String username, String password) { + this.username = username; + this.password = password; + } + + public String getUsername() { + return username; + } + + public String getPassword() { + return password; + } + + public void setUsername(String username) { + this.username = username; + } + + public void setPassword(String password) { + this.password = password; + } +} diff --git a/SoftHomework/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/SoftHomework/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/SoftHomework/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/SoftHomework/app/src/main/res/drawable/ic_launcher_background.xml b/SoftHomework/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/SoftHomework/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SoftHomework/app/src/main/res/layout/activity_add_student.xml b/SoftHomework/app/src/main/res/layout/activity_add_student.xml new file mode 100644 index 0000000..d664c7e --- /dev/null +++ b/SoftHomework/app/src/main/res/layout/activity_add_student.xml @@ -0,0 +1,52 @@ + + + + + + + +