diff --git a/Job_Management/.gitignore b/Job_Management/.gitignore
new file mode 100644
index 0000000..aa724b7
--- /dev/null
+++ b/Job_Management/.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/Job_Management/.idea/.gitignore b/Job_Management/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/Job_Management/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Job_Management/.idea/compiler.xml b/Job_Management/.idea/compiler.xml
new file mode 100644
index 0000000..61a9130
--- /dev/null
+++ b/Job_Management/.idea/compiler.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/.idea/gradle.xml b/Job_Management/.idea/gradle.xml
new file mode 100644
index 0000000..b617266
--- /dev/null
+++ b/Job_Management/.idea/gradle.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/.idea/jarRepositories.xml b/Job_Management/.idea/jarRepositories.xml
new file mode 100644
index 0000000..2370474
--- /dev/null
+++ b/Job_Management/.idea/jarRepositories.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/.idea/misc.xml b/Job_Management/.idea/misc.xml
new file mode 100644
index 0000000..d5d35ec
--- /dev/null
+++ b/Job_Management/.idea/misc.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/app/.gitignore b/Job_Management/app/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/Job_Management/app/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/Job_Management/app/build.gradle b/Job_Management/app/build.gradle
new file mode 100644
index 0000000..e0e3dfd
--- /dev/null
+++ b/Job_Management/app/build.gradle
@@ -0,0 +1,41 @@
+plugins {
+ id 'com.android.application'
+}
+
+android {
+ compileSdkVersion 30
+ buildToolsVersion "30.0.3"
+
+ defaultConfig {
+ applicationId "com.hong.job_management"
+ 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 'com.github.PhilJay:MPAndroidChart:v3.0.3'
+ testImplementation 'junit:junit:4.+'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.1'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
+ implementation 'com.baoyz.swipemenulistview:library:1.3.0'
+}
\ No newline at end of file
diff --git a/Job_Management/app/src/androidTest/java/com/hong/job_management/ExampleInstrumentedTest.java b/Job_Management/app/src/androidTest/java/com/hong/job_management/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..4578ce7
--- /dev/null
+++ b/Job_Management/app/src/androidTest/java/com/hong/job_management/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.hong.job_management;
+
+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("com.hong.job_management", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/Job_Management/app/src/main/AndroidManifest.xml b/Job_Management/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..345d9de
--- /dev/null
+++ b/Job_Management/app/src/main/AndroidManifest.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/app/src/main/java/com/hong/job_management/Homework.java b/Job_Management/app/src/main/java/com/hong/job_management/Homework.java
new file mode 100644
index 0000000..ed902eb
--- /dev/null
+++ b/Job_Management/app/src/main/java/com/hong/job_management/Homework.java
@@ -0,0 +1,75 @@
+package com.hong.job_management;
+
+import android.widget.DatePicker;
+
+public class Homework {
+ private String homework_name;//用来放作业名称的
+ private String homework_subject;//用来放作业科目的
+ private String homework_rank;//用来放作业难度的
+ private String homework_time;//用来放作业截止时间的
+ public int isfinish;//1为已经完成,0为未完成
+ private String homework_finish;//完成标记
+
+ public Homework(String homework_name,String homework_subject,String homework_rank,String homework_time,int isfinish) {
+ this.homework_name = homework_name;
+ this.homework_rank = homework_rank;
+ this.homework_subject=homework_subject;
+ this.homework_time=homework_time;
+ this.isfinish=isfinish;
+ }
+
+ public String getHomework_finish() {
+
+ return homework_finish;
+ }
+
+ public void setHomework_finish(String homework_finish) {
+
+ this.homework_finish = homework_finish;
+ }
+
+ public String getHomework_name() {
+
+ return homework_name;
+ }
+
+ public void setHomework_name(String homework_name) {
+
+ this.homework_name = homework_name;
+ }
+
+ public String getHomework_subject() {
+
+ return homework_subject;
+ }
+
+ public void setHomework_subject(String homework_subject) {
+
+ this.homework_subject = homework_subject;
+ }
+
+ public String getHomework_rank() {
+
+ return homework_rank;
+ }
+
+ public void setHomework_rank(String homework_rank) {
+
+ this.homework_rank= homework_rank;
+ }
+
+ public String getHomework_time() {
+
+ return homework_time;
+ }
+
+ public void setHomework_time(String homework_rank) {
+
+ this.homework_time= homework_time;
+ }
+}
+
+
+
+
+
diff --git a/Job_Management/app/src/main/java/com/hong/job_management/JsonParse.java b/Job_Management/app/src/main/java/com/hong/job_management/JsonParse.java
new file mode 100644
index 0000000..7dad43f
--- /dev/null
+++ b/Job_Management/app/src/main/java/com/hong/job_management/JsonParse.java
@@ -0,0 +1,40 @@
+package com.hong.job_management;
+
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+public class JsonParse {
+ public static byte[] readParse(String urlPath) throws Exception {
+ ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+ byte[] data = new byte[1024];
+ int len = 0;
+ URL url = new URL(urlPath);
+ HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+ InputStream inStream = conn.getInputStream();
+ while ((len = inStream.read(data)) != -1) {
+ outStream.write(data, 0, len);
+ }
+ inStream.close();
+ return outStream.toByteArray();//通过out.Stream.toByteArray获取到写的数据
+ }
+
+ public static List getList(String urlPath) throws Exception {
+ List url_backgroud = new ArrayList();
+ byte[] data = readParse(urlPath);
+ JSONArray array = new JSONArray(new String(data));
+ for (int i = 0; i < array.length(); i++) {
+ JSONObject item = array.getJSONObject(i);
+ String icon = item.getString("icon");
+ url_backgroud.add(icon);
+ }
+ return url_backgroud;
+ }
+}
diff --git a/Job_Management/app/src/main/java/com/hong/job_management/MainActivity.java b/Job_Management/app/src/main/java/com/hong/job_management/MainActivity.java
new file mode 100644
index 0000000..13a1f5f
--- /dev/null
+++ b/Job_Management/app/src/main/java/com/hong/job_management/MainActivity.java
@@ -0,0 +1,1263 @@
+package com.hong.job_management;
+
+import androidx.annotation.ContentView;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.loader.content.CursorLoader;
+import androidx.loader.content.Loader;
+
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.ContentProvider;
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.StrictMode;
+import android.provider.Telephony;
+import android.text.Editable;
+import android.text.Layout;
+import android.text.TextWatcher;
+import android.util.Log;
+import android.util.TypedValue;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.BaseAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.baoyz.swipemenulistview.SwipeMenu;
+import com.baoyz.swipemenulistview.SwipeMenuCreator;
+import com.baoyz.swipemenulistview.SwipeMenuItem;
+import com.baoyz.swipemenulistview.SwipeMenuListView;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.sql.Array;
+import java.util.ArrayList;
+import java.util.List;
+
+
+
+public class MainActivity extends AppCompatActivity {
+ private static final String urlPath = "http://192.168.56.1:8080/backgroud.json";
+ private RelativeLayout main_layout;
+ public List homework = new ArrayList();
+ private List url_backgroud = new ArrayList<>();
+ public myAdapter_Homework adapter_homework;
+ public SwipeMenuListView listView;
+ MyHelper myHelper=new MyHelper(MainActivity.this);
+ private ImageView change;
+ private int background_index=1;
+ private SensorManager sensorManager;
+ private Sensor tempertureSensor;
+ private TextView temp;
+
+ public static int chinese;
+ public static int chinese_finish;
+ public static int math;
+ public static int math_finish;
+ public static int english;
+ public static int english_finish;
+ public static int biology;
+ public static int biology_finish;
+ public static int chemistry;
+ public static int chemistry_finish;
+ public static int physics;
+ public static int physics_finish;
+ public static int history;
+ public static int history_finish;
+ public static int politics;
+ public static int politics_finish;
+ public static int geography;
+ public static int geography_finish;
+ public static int other;
+ public static int other_finish;
+ public static int sum;
+ public static int sum_finish;
+
+ @SuppressLint("WrongViewCast")
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ requestWindowFeature(Window.FEATURE_NO_TITLE);//除去标题(得放在setContentView之前)
+ if (getSupportActionBar() != null) { //除去标题
+ getSupportActionBar().hide(); //除去标题
+ }
+ setContentView(R.layout.activity_main);
+
+ change=findViewById(R.id.change_background);
+ temp=findViewById(R.id.temp);
+ sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
+ tempertureSensor = sensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE);
+ if (tempertureSensor == null) {
+ Toast.makeText(MainActivity.this, "你的设备不支持测温功能", Toast.LENGTH_SHORT).show();
+ }else{
+ sensorManager.registerListener(sensorEventListener, tempertureSensor, SensorManager.SENSOR_DELAY_NORMAL);
+ }
+
+ SharedPreferences myprefs=getSharedPreferences("homework_jd",MODE_PRIVATE);
+ chinese=myprefs.getInt("chinese",0);
+ chinese_finish=myprefs.getInt("chinese_finish",0);
+ math=myprefs.getInt("math",0);
+ math_finish=myprefs.getInt("math_finish",0);
+ english=myprefs.getInt("english",0);
+ english_finish=myprefs.getInt("english_finish",0);
+ biology=myprefs.getInt("biology",0);
+ biology_finish=myprefs.getInt("biology_finish",0);
+ chemistry=myprefs.getInt("chemistry",0);
+ chemistry_finish=myprefs.getInt("chemistry_finish",0);
+ physics=myprefs.getInt("physics",0);
+ physics_finish=myprefs.getInt("physics_finish",0);
+ history=myprefs.getInt("history",0);
+ history_finish=myprefs.getInt("history_finish",0);
+ politics=myprefs.getInt("politics",0);
+ politics_finish=myprefs.getInt("politics_finish",0);
+ geography=myprefs.getInt("geography",0);
+ geography_finish=myprefs.getInt("geography_finish",0);
+ other=myprefs.getInt("other",0);
+ other_finish=myprefs.getInt("other_finish",0);
+ sum=myprefs.getInt("sum",0);
+ sum_finish=myprefs.getInt("sum_finish",0);
+
+ //网络设置 会秒退
+ StrictMode.setThreadPolicy(new
+ StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());
+ StrictMode.setVmPolicy(
+ new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());
+
+ change.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if(background_index==0)background_index=1;
+ else background_index=0;
+ Bitmap bitmap = null;
+ try {
+ url_backgroud = JsonParse.getList(urlPath);
+ bitmap = getBitmap(url_backgroud.get(background_index));
+ BitmapDrawable bd=new BitmapDrawable(bitmap);
+ main_layout=(RelativeLayout)findViewById(R.id.main_layout);
+ main_layout.setBackground(bd);
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+
+ Button btn_dj = (Button) findViewById(R.id.btn_dj);
+ //View view_dj = findViewById(R.id.btn_dj);
+ Button btn_jd = (Button) findViewById(R.id.btn_jd);
+ //View view_jd = findViewById(R.id.btn_jd);
+ Button btn_tj = (Button) findViewById(R.id.btn_tj);
+ //View view_tj = findViewById(R.id.btn_tj);
+ final MainActivity thisActivity = this;
+ adapter_homework = new myAdapter_Homework(MainActivity.this, homework);
+ listView = (SwipeMenuListView) findViewById(R.id.homework_list);
+ listView.setAdapter(adapter_homework);
+
+ btn_dj.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(thisActivity, RegisterActivity.class);
+ thisActivity.startActivity(intent);
+ }
+ });
+ btn_jd.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(thisActivity, ScheduleActivity.class);
+ thisActivity.startActivity(intent);
+ }
+ });
+ btn_tj.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent intent = new Intent(thisActivity, StatisticsActivity.class);
+ thisActivity.startActivity(intent);
+ }
+ });
+
+ listView.setOnMenuItemClickListener(new SwipeMenuListView.OnMenuItemClickListener() {
+ public boolean onMenuItemClick(int position, SwipeMenu menu, int index) {
+ int id =menu.getMenuItem(index).getId();
+ SQLiteDatabase db=myHelper.getWritableDatabase();
+ switch (id) {
+ case 0:
+ case 1:
+ // is_finish
+ // no_finish
+ is_finish(position);
+ createMenue();
+ break;
+ case 2:
+ // delete
+ delete(position);
+ break;
+ }
+ createMenue();
+ return false;
+ }
+ });
+
+ //set SwipeListener
+ listView.setOnSwipeListener(new SwipeMenuListView.OnSwipeListener() {
+ @Override
+ public void onSwipeStart(int position) {
+ // swipe start
+ }
+ @Override
+ public void onSwipeEnd(int position) {
+ // swipe end
+ }
+ });
+ }
+
+ public Bitmap getBitmap(String path) throws IOException {
+ try {
+ URL url = new URL(path);
+ HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+ conn.setConnectTimeout(5000);
+ conn.setRequestMethod("GET");
+ if (conn.getResponseCode() == 200) {
+ InputStream inputStream = conn.getInputStream();
+ Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
+ return bitmap;
+ }
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ //温度传感器
+ private SensorEventListener sensorEventListener = new SensorEventListener() {
+ @Override
+ public void onSensorChanged(SensorEvent event) {
+ float[] values = event.values;
+ temp.setText(values[0]+"℃");
+ }
+
+ @Override
+ public void onAccuracyChanged(Sensor sensor, int accuracy) {
+ }
+ };
+
+ @Override
+ protected void onDestroy() {
+ // TODO Auto-generated method stub
+ super.onDestroy();
+ sensorManager.unregisterListener(sensorEventListener);
+ }
+ //温度以上
+
+ @Override
+ protected void onStart() {
+ super.onStart();
+ initHomework();
+ listView.setAdapter(adapter_homework);
+ createMenue();
+ }
+
+ private void createMenue (){
+ SwipeMenuCreator creator = new SwipeMenuCreator() {
+ @Override
+ public void create(SwipeMenu menu) {
+ switch (menu.getViewType())
+ {
+ case 0: //未完成作业 用已经完成按钮
+ createMenu1(menu);
+ break;
+ case 1://已经完成作业 用未完成按钮
+ createMenu2(menu);
+ break;
+ }
+ }
+ };
+ listView.setMenuCreator(creator);
+ }
+
+ private void createMenu1 (SwipeMenu menu) {
+ // create "no_finish" item
+ SwipeMenuItem no_finishItem = new SwipeMenuItem(getApplicationContext());
+ no_finishItem.setId(0);
+ // set item background
+ no_finishItem.setBackground(new ColorDrawable(Color.rgb(0xC9, 0xC9, 0xCE)));
+ // set item width
+ no_finishItem.setWidth(dp2px(90));
+ // set item title
+ no_finishItem.setTitle("已完成");
+ // set item title fontsize
+ no_finishItem.setTitleSize(18);
+ // set item title font color
+ no_finishItem.setTitleColor(Color.WHITE);
+ // add to menu
+ menu.addMenuItem(no_finishItem);
+
+ // create "delete" item
+ SwipeMenuItem deleteItem = new SwipeMenuItem(getApplicationContext());
+ deleteItem.setId(2);
+ // set item background
+ deleteItem.setBackground(new ColorDrawable(Color.rgb(0xF9, 0x3F, 0x25)));
+ // set item width
+ deleteItem.setWidth(dp2px(90));
+ // set a icon
+ deleteItem.setTitle("删除");
+ deleteItem.setTitleSize(18);
+ deleteItem.setTitleColor(Color.WHITE);
+ // add to menu
+ menu.addMenuItem(deleteItem);
+ }
+
+ private void createMenu2 (SwipeMenu menu) {
+ // create "finish" item
+ SwipeMenuItem finishItem = new SwipeMenuItem(getApplicationContext());
+ finishItem.setId(1);
+ // set item background
+ finishItem.setBackground(new ColorDrawable(Color.rgb(0xC9, 0xC9, 0xCE)));
+ // set item width
+ finishItem.setWidth(dp2px(90));
+ // set item title
+ finishItem.setTitle("未完成");
+ // set item title fontsize
+ finishItem.setTitleSize(18);
+ // set item title font color
+ finishItem.setTitleColor(Color.WHITE);
+ // add to menu
+ menu.addMenuItem(finishItem);
+
+ // create "delete" item
+ SwipeMenuItem deleteItem = new SwipeMenuItem(getApplicationContext());
+ deleteItem.setId(2);
+ // set item background
+ deleteItem.setBackground(new ColorDrawable(Color.rgb(0xF9, 0x3F, 0x25)));
+ // set item width
+ deleteItem.setWidth(dp2px(90));
+ // set a icon
+ deleteItem.setTitle("删除");
+ deleteItem.setTitleSize(18);
+ deleteItem.setTitleColor(Color.WHITE);
+ // add to menu
+ menu.addMenuItem(deleteItem);
+ }
+
+ private void is_finish ( int position){
+ Homework h = homework.get(position);
+ int pd=h.isfinish;
+ SQLiteDatabase db =myHelper.getWritableDatabase();
+ ContentValues values= new ContentValues();
+
+ Cursor cursor = db.query("homework",null,null,null,null,null,null);
+ cursor.moveToPosition(position);
+ int itemid=cursor.getInt(cursor.getColumnIndex("_id"));
+
+ if (h != null)
+ {
+ if(pd==1)
+ {
+ values.put("isfinish",0);
+ db.update("homework",values,"_id=?",new String[]{itemid+""});
+ homework.get(position).isfinish =0;
+ Toast.makeText(MainActivity.this, "未完成 : " + h.getHomework_name(), Toast.LENGTH_SHORT).show();
+ switch (h.getHomework_subject())
+ {
+ case "语文":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ chinese_finish=chinese_finish-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ chinese_finish=chinese_finish-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ chinese_finish=chinese_finish-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "数学":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ math_finish=math_finish-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ math_finish=math_finish-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ math_finish=math_finish-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "英语":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ english_finish=english_finish-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ english_finish=english_finish-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ english_finish=english_finish-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "生物":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ biology_finish=biology_finish-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ biology_finish=biology_finish-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ biology_finish=biology_finish-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "物理":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ physics_finish=physics_finish-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ physics_finish=physics_finish-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ physics_finish=physics_finish-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "化学":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ chemistry_finish=chemistry_finish-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ chemistry_finish=chemistry_finish-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ chemistry_finish=chemistry_finish-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "历史":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ history_finish=history_finish-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ history_finish=history_finish-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ history_finish=history_finish-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "政治":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ politics_finish=politics_finish-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ politics_finish=politics_finish-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ politics_finish=politics_finish-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "地理":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ geography_finish=geography_finish-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ geography_finish=geography_finish-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ geography_finish=geography_finish-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "其他":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ other_finish=other_finish-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ other_finish=other_finish-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ other_finish=other_finish-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ }
+ }else {
+ values.put("isfinish",1);
+ db.update("homework",values,"_id=?",new String[]{itemid+""});
+ homework.get(position).isfinish = 1;
+ Toast.makeText(MainActivity.this, "已完成 : " + h.getHomework_name(), Toast.LENGTH_SHORT).show();
+ switch (h.getHomework_subject())
+ {
+ case "语文":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ chinese_finish=chinese_finish+1;
+ sum_finish=sum_finish+1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ chinese_finish=chinese_finish+2;
+ sum_finish=sum_finish+2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ chinese_finish=chinese_finish+3;
+ sum_finish=sum_finish+3;
+ }
+ break;
+ case "数学":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ math_finish=math_finish+1;
+ sum_finish=sum_finish+1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ math_finish=math_finish+2;
+ sum_finish=sum_finish+2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ math_finish=math_finish+3;
+ sum_finish=sum_finish+3;
+ }
+ break;
+ case "英语":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ english_finish=english_finish+1;
+ sum_finish=sum_finish+1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ english_finish=english_finish+2;
+ sum_finish=sum_finish+2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ english_finish=english_finish+3;
+ sum_finish=sum_finish+3;
+ }
+ break;
+ case "生物":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ biology_finish=biology_finish+1;
+ sum_finish=sum_finish+1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ biology_finish=biology_finish+2;
+ sum_finish=sum_finish+2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ biology_finish=biology_finish+3;
+ sum_finish=sum_finish+3;
+ }
+ break;
+ case "物理":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ physics_finish=physics_finish+1;
+ sum_finish=sum_finish+1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ physics_finish=physics_finish+2;
+ sum_finish=sum_finish+2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ physics_finish=physics_finish+3;
+ sum_finish=sum_finish+3;
+ }
+ break;
+ case "化学":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ chemistry_finish=chemistry_finish+1;
+ sum_finish=sum_finish+1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ chemistry_finish=chemistry_finish+2;
+ sum_finish=sum_finish+2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ chemistry_finish=chemistry_finish+3;
+ sum_finish=sum_finish+3;
+ }
+ break;
+ case "历史":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ history_finish=history_finish+1;
+ sum_finish=sum_finish+1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ history_finish=history_finish+2;
+ sum_finish=sum_finish+2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ history_finish=history_finish+3;
+ sum_finish=sum_finish+3;
+ }
+ break;
+ case "政治":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ politics_finish=politics_finish+1;
+ sum_finish=sum_finish+1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ politics_finish=politics_finish+2;
+ sum_finish=sum_finish+2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ politics_finish=politics_finish+3;
+ sum_finish=sum_finish+3;
+ }
+ break;
+ case "地理":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ geography_finish=geography_finish+1;
+ sum_finish=sum_finish+1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ geography_finish=geography_finish+2;
+ sum_finish=sum_finish+2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ geography_finish=geography_finish+3;
+ sum_finish=sum_finish+3;
+ }
+ break;
+ case "其他":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ other_finish=other_finish+1;
+ sum_finish=sum_finish+1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ other_finish=other_finish+2;
+ sum_finish=sum_finish+2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ other_finish=other_finish+3;
+ sum_finish=sum_finish+3;
+ }
+ break;
+ }
+ }
+ cursor.close();
+ db.close();
+ adapter_homework.notifyDataSetChanged();
+ SharedPreferences myprefs=getSharedPreferences("homework_jd",MODE_PRIVATE);
+ SharedPreferences.Editor editor=myprefs.edit();
+ editor.putInt("chinese_finish",chinese_finish);
+ editor.putInt("math_finish",math_finish);
+ editor.putInt("english_finish",english_finish);
+ editor.putInt("biology_finish",biology_finish);
+ editor.putInt("chemistry_finish",chemistry_finish);
+ editor.putInt("physics_finish",physics_finish);
+ editor.putInt("history_finish",history_finish);
+ editor.putInt("politics_finish",politics_finish);
+ editor.putInt("geography_finish",geography_finish);
+ editor.putInt("other_finish",other_finish);
+ editor.putInt("sum_finish",sum_finish);
+ editor.commit();
+ editor.apply();
+ }
+ }
+
+ private void delete(int position) {
+ SQLiteDatabase db=myHelper.getWritableDatabase();
+ Homework h = homework.get(position);
+ Cursor cursor = db.query("homework",null,null,null,null,null,null);
+ cursor.moveToPosition(position);
+ int itemid=cursor.getInt(cursor.getColumnIndex("_id"));
+ if (h != null) {
+ int delete_pd=db.delete("homework","_id=?",new String []{itemid+""});
+ if(delete_pd==1) //删除成功为1 不成功为0
+ {
+ homework.remove(h);
+ adapter_homework.notifyDataSetChanged();
+ Toast.makeText(MainActivity.this, "删除 : " + h.getHomework_name(), Toast.LENGTH_SHORT).show();
+ int pd=h.isfinish;
+ if(pd==1)
+ {
+ switch (h.getHomework_subject())
+ {
+ case "语文":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ chinese=chinese-1;
+ chinese_finish=chinese_finish-1;
+ sum=sum-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ chinese=chinese-2;
+ chinese_finish=chinese_finish-2;
+ sum=sum-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ chinese=chinese-3;
+ chinese_finish=chinese_finish-3;
+ sum=sum-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "数学":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ math=math-1;
+ math_finish=math_finish-1;
+ sum=sum-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ math=math-2;
+ math_finish=math_finish-2;
+ sum=sum-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ math=math-3;
+ math_finish=math_finish-3;
+ sum=sum-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "英语":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ english=english-1;
+ english_finish=english_finish-1;
+ sum=sum-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ english=english-2;
+ english_finish=english_finish-2;
+ sum=sum-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ english=english-3;
+ english_finish=english_finish-3;
+ sum=sum-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "生物":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ biology=biology-1;
+ biology_finish=biology_finish-1;
+ sum=sum-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ biology=biology-2;
+ biology_finish=biology_finish-2;
+ sum=sum-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ biology=biology-3;
+ biology_finish=biology_finish-3;
+ sum=sum-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "物理":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ physics=physics-1;
+ physics_finish=physics_finish-1;
+ sum=sum-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ physics=physics-2;
+ physics_finish=physics_finish-2;
+ sum=sum-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ physics=physics-3;
+ physics_finish=physics_finish-3;
+ sum=sum-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "化学":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ chemistry=chemistry-1;
+ chemistry_finish=chemistry_finish-1;
+ sum=sum-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ chemistry=chemistry-2;
+ chemistry_finish=chemistry_finish-2;
+ sum=sum-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ chemistry=chemistry-3;
+ chemistry_finish=chemistry_finish-3;
+ sum=sum-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "历史":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ history=history-1;
+ history_finish=history_finish-1;
+ sum=sum-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ history=history-2;
+ history_finish=history_finish-2;
+ sum=sum-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ history=history-3;
+ history_finish=history_finish-3;
+ sum=sum-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "政治":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ politics=politics-1;
+ politics_finish=politics_finish-1;
+ sum=sum-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ politics=politics-2;
+ politics_finish=politics_finish-2;
+ sum=sum-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ politics=politics-3;
+ politics_finish=politics_finish-3;
+ sum=sum-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "地理":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ geography=geography-1;
+ geography_finish=geography_finish-1;
+ sum=sum-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ geography=geography-2;
+ geography_finish=geography_finish-2;
+ sum=sum-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ geography=geography-3;
+ geography_finish=geography_finish-3;
+ sum=sum-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ case "其他":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ other=other-1;
+ other_finish=other_finish-1;
+ sum=sum-1;
+ sum_finish=sum_finish-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ other=other-2;
+ other_finish=other_finish-2;
+ sum=sum-2;
+ sum_finish=sum_finish-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ other=other-3;
+ other_finish=other_finish-3;
+ sum=sum-3;
+ sum_finish=sum_finish-3;
+ }
+ break;
+ }
+ }else {
+ switch (h.getHomework_subject())
+ {
+ case "语文":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ chinese=chinese-1;
+ sum=sum-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ chinese=chinese-2;
+ sum=sum-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ chinese=chinese-3;
+ sum=sum-3;
+ }
+ break;
+ case "数学":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ math=math-1;
+ sum=sum-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ math=math-2;
+ sum=sum-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ math=math-3;
+ sum=sum-3;
+ }
+ break;
+ case "英语":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ english=english-1;
+ sum=sum-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ english=english-2;
+ sum=sum-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ english=english-3;
+ sum=sum-3;
+ }
+ break;
+ case "生物":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ biology=biology-1;
+ sum=sum-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ biology=biology-2;
+ sum=sum-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ biology=biology-+3;
+ sum=sum-3;
+ }
+ break;
+ case "物理":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ physics=physics-1;
+ sum=sum-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ physics=physics-2;
+ sum=sum-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ physics=physics-3;
+ sum=sum-3;
+ }
+ break;
+ case "化学":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ chemistry=chemistry-1;
+ sum=sum-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ chemistry=chemistry-2;
+ sum=sum-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ chemistry=chemistry-3;
+ sum=sum-3;
+ }
+ break;
+ case "历史":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ history=history-1;
+ sum=sum-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ history=history-2;
+ sum=sum-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ history=history-3;
+ sum=sum-3;
+ }
+ break;
+ case "政治":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ politics=politics-1;
+ sum=sum-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ politics=politics-2;
+ sum=sum-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ politics=politics-3;
+ sum=sum-3;
+ }
+ break;
+ case "地理":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ geography=geography-1;
+ sum=sum-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ geography=geography-2;
+ sum=sum-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ geography=geography-3;
+ sum=sum-3;
+ }
+ break;
+ case "其他":
+ if(h.getHomework_rank().equals("简单"))
+ {
+ other=other-1;
+ sum=sum-1;
+ }
+ else if(h.getHomework_rank().equals("中等"))
+ {
+ other=other-2;
+ sum=sum-2;
+ }
+ else if(h.getHomework_rank().equals("困难"))
+ {
+ other=other-3;
+ sum=sum-3;
+ }
+ break;
+ }
+ }
+ SharedPreferences myprefs=getSharedPreferences("homework_jd",MODE_PRIVATE);
+ SharedPreferences.Editor editor=myprefs.edit();
+ editor.putInt("chinese",chinese);
+ editor.putInt("chinese_finish",chinese_finish);
+ editor.putInt("math",math);
+ editor.putInt("math_finish",math_finish);
+ editor.putInt("english",english);
+ editor.putInt("english_finish",english_finish);
+ editor.putInt("biology",biology);
+ editor.putInt("biology_finish",biology_finish);
+ editor.putInt("chemistry",chemistry);
+ editor.putInt("chemistry_finish",chemistry_finish);
+ editor.putInt("physics",physics);
+ editor.putInt("physics_finish",physics_finish);
+ editor.putInt("history",history);
+ editor.putInt("history_finish",history_finish);
+ editor.putInt("politics",politics);
+ editor.putInt("politics_finish",politics_finish);
+ editor.putInt("geography",geography);
+ editor.putInt("geography_finish",geography_finish);
+ editor.putInt("other",other);
+ editor.putInt("other_finish",other_finish);
+ editor.putInt("sum",sum);
+ editor.putInt("sum_finish",sum_finish);
+ editor.commit();
+ editor.apply();
+ }else
+ {
+ Toast.makeText(MainActivity.this, "删除失败", Toast.LENGTH_SHORT).show();
+ }
+ cursor.close();
+ db.close();
+ }
+ }
+
+ private int dp2px(int dp) {
+ return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp,
+ getResources().getDisplayMetrics());
+ }
+
+ public void initHomework()
+ {
+ String name;
+ String rank;
+ String time;
+ String subject;
+ int isfinish;
+ SQLiteDatabase db;
+ db=myHelper.getReadableDatabase();
+ Cursor cursor=db.query("homework",null,null,null,null,null,null,null);
+ homework.clear();
+ if(cursor.getCount()==0){
+ Toast.makeText(MainActivity.this,"请添加作业",Toast.LENGTH_SHORT).show();
+ }else{
+ while(cursor.moveToNext())
+ {
+ name=cursor.getString(cursor.getColumnIndex("name"));
+ subject=cursor.getString(cursor.getColumnIndex("subject"));
+ rank=cursor.getString(cursor.getColumnIndex("rank"));
+ time=cursor.getString(cursor.getColumnIndex("time"));
+ isfinish=cursor.getInt(cursor.getColumnIndex("isfinish"));
+ Homework h=new Homework(name,subject,rank,time,isfinish);
+ homework.add(h);
+ }
+ cursor.close();
+ db.close();
+ }
+ }
+ }
\ No newline at end of file
diff --git a/Job_Management/app/src/main/java/com/hong/job_management/MyHelper.java b/Job_Management/app/src/main/java/com/hong/job_management/MyHelper.java
new file mode 100644
index 0000000..6397851
--- /dev/null
+++ b/Job_Management/app/src/main/java/com/hong/job_management/MyHelper.java
@@ -0,0 +1,23 @@
+package com.hong.job_management;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+
+import androidx.annotation.Nullable;
+
+public class MyHelper extends SQLiteOpenHelper {
+
+ public MyHelper(@Nullable Context context) {
+ super(context,"Homework.db",null,2);
+ }
+
+ @Override
+ public void onCreate(SQLiteDatabase db) {
+ db.execSQL("CREATE TABLE homework(_id INTEGER PRIMARY KEY AUTOINCREMENT,subject VARCHAR(6),name VARCHAR(30),time VARCHAR(12),rank VARCHAR(6),isfinish INT(20))");
+ }
+
+ @Override
+ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
+ }
+}
diff --git a/Job_Management/app/src/main/java/com/hong/job_management/RegisterActivity.java b/Job_Management/app/src/main/java/com/hong/job_management/RegisterActivity.java
new file mode 100644
index 0000000..a476e02
--- /dev/null
+++ b/Job_Management/app/src/main/java/com/hong/job_management/RegisterActivity.java
@@ -0,0 +1,356 @@
+package com.hong.job_management;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.database.sqlite.SQLiteDatabase;
+import android.os.Bundle;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.AdapterView;
+import android.widget.Button;
+import android.widget.DatePicker;
+import android.widget.EditText;
+import android.widget.Spinner;
+import android.widget.Toast;
+
+import static com.hong.job_management.MainActivity.chinese;
+import static com.hong.job_management.MainActivity.chinese_finish;
+import static com.hong.job_management.MainActivity.biology;
+import static com.hong.job_management.MainActivity.biology_finish;
+import static com.hong.job_management.MainActivity.chemistry;
+import static com.hong.job_management.MainActivity.chemistry_finish;
+import static com.hong.job_management.MainActivity.english;
+import static com.hong.job_management.MainActivity.english_finish;
+import static com.hong.job_management.MainActivity.geography;
+import static com.hong.job_management.MainActivity.geography_finish;
+import static com.hong.job_management.MainActivity.history;
+import static com.hong.job_management.MainActivity.history_finish;
+import static com.hong.job_management.MainActivity.math;
+import static com.hong.job_management.MainActivity.math_finish;
+import static com.hong.job_management.MainActivity.other;
+import static com.hong.job_management.MainActivity.other_finish;
+import static com.hong.job_management.MainActivity.physics;
+import static com.hong.job_management.MainActivity.physics_finish;
+import static com.hong.job_management.MainActivity.politics;
+import static com.hong.job_management.MainActivity.politics_finish;
+import static com.hong.job_management.MainActivity.sum;
+import static com.hong.job_management.MainActivity.sum_finish;
+
+
+public class RegisterActivity extends AppCompatActivity {
+ private Button bt_register;
+ private Spinner subject;
+ private String subject_select;
+ private Spinner rank;
+ private String rank_select;
+ private DatePicker time;
+ private String time_select;
+ private EditText name;
+ private String name_editext;
+ private int isfinish=0;
+ private RegisterActivity ScreenUtil;
+
+ MyHelper myHelper;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_register);
+ bt_register=(Button)findViewById(R.id.btn_homework_dj);
+ subject=(Spinner)findViewById(R.id.subject);
+ rank=(Spinner)findViewById(R.id.rank);
+ time=(DatePicker)findViewById((R.id.time));
+ name=(EditText)findViewById(R.id.name);
+ myHelper=new MyHelper(this);
+
+ rank.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView> parent, View view, int position, long id) {
+ if(position!=0)
+ Toast.makeText(RegisterActivity.this, "您选择了 :" +parent.getItemAtPosition(position).toString() , Toast.LENGTH_SHORT).show();
+ }
+ @Override
+ public void onNothingSelected(AdapterView> parent) {
+
+ }
+ });
+
+ subject.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView> parent, View view, int position, long id) {
+ if(position!=0)
+ Toast.makeText(RegisterActivity.this, "您选择了 :" +parent.getItemAtPosition(position).toString() , Toast.LENGTH_SHORT).show();
+ }
+ @Override
+ public void onNothingSelected(AdapterView> parent) {
+
+ }
+ });
+
+ bt_register.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ ScreenUtil.closeSoftInput(RegisterActivity.this, v);//关闭输入法
+
+ SQLiteDatabase db;
+ ContentValues values;
+ name_editext=name.getText().toString().trim();
+ subject_select=subject.getSelectedItem().toString();
+ rank_select=rank.getSelectedItem().toString();
+ int year=time.getYear();
+ int month=time.getMonth()+1;
+ int day=time.getDayOfMonth();
+ time_select=(String.valueOf(year)+"."+String.format("%02d",month)+"."+String.format("%02d",day));
+ if(name_editext.length()==0||subject_select.equals("科目")||rank_select.equals("难度"))
+ {
+// db=myHelper.getWritableDatabase();
+// db.delete("homework",null,null);
+// db.close();
+ if(subject_select.equals("科目"))
+ Toast.makeText(RegisterActivity.this, "请选择作业科目", Toast.LENGTH_SHORT).show();
+ else if(name_editext.length()==0)
+ Toast.makeText(RegisterActivity.this, "请填写作业名称", Toast.LENGTH_SHORT).show();
+ else if (rank_select.equals("难度"))
+ Toast.makeText(RegisterActivity.this, "请选择作业难度", Toast.LENGTH_SHORT).show();
+ }else{
+ name_editext=name.getText().toString();
+ switch (subject_select)
+ {
+ case "语文":
+ if(rank_select.equals("简单"))
+ {
+ chinese=chinese+1;
+ sum=sum+1;
+ }
+ else if(rank_select.equals("中等"))
+ {
+ chinese=chinese+2;
+ sum=sum+2;
+ }
+ else if(rank_select.equals("困难"))
+ {
+ chinese=chinese+3;
+ sum=sum+3;
+ }
+ Toast.makeText(RegisterActivity.this, "作业登记成功!", Toast.LENGTH_SHORT).show();
+ break;
+ case "数学":
+ if(rank_select.equals("简单"))
+ {
+ math=math+1;
+ sum=sum+1;
+ }
+ else if(rank_select.equals("中等"))
+ {
+ math=math+2;
+ sum=sum+2;
+ }
+ else if(rank_select.equals("困难"))
+ {
+ math=math+3;
+ sum=sum+3;
+ }
+ break;
+ case "英语":
+ if(rank_select.equals("简单"))
+ {
+ english=english+1;
+ sum=sum+1;
+ }
+ else if(rank_select.equals("中等"))
+ {
+ english=english+2;
+ sum=sum+2;
+ }
+ else if(rank_select.equals("困难"))
+ {
+ english=english+3;
+ sum=sum+3;
+ }
+ break;
+ case "生物":
+ if(rank_select.equals("简单"))
+ {
+ biology=biology+1;
+ sum=sum+1;
+ }
+ else if(rank_select.equals("中等"))
+ {
+ biology=biology+2;
+ sum=sum+2;
+ }
+ else if(rank_select.equals("困难"))
+ {
+ biology=biology+3;
+ sum=sum+3;
+ }
+ break;
+ case "物理":
+ if(rank_select.equals("简单"))
+ {
+ physics=physics+1;
+ sum=sum+1;
+ }
+ else if(rank_select.equals("中等"))
+ {
+ physics=physics+2;
+ sum=sum+2;
+ }
+ else if(rank_select.equals("困难"))
+ {
+ physics=physics+3;
+ sum=sum+3;
+ }
+ break;
+ case "化学":
+ if(rank_select.equals("简单"))
+ {
+ chemistry=chemistry+1;
+ sum=sum+1;
+ }
+ else if(rank_select.equals("中等"))
+ {
+ chemistry=chemistry+2;
+ sum=sum+2;
+ }
+ else if(rank_select.equals("困难"))
+ {
+ chemistry=chemistry+3;
+ sum=sum+3;
+ }
+ break;
+ case "历史":
+ if(rank_select.equals("简单"))
+ {
+ history=history+1;
+ sum=sum+1;
+ }
+ else if(rank_select.equals("中等"))
+ {
+ history=history+2;
+ sum=sum+2;
+ }
+ else if(rank_select.equals("困难"))
+ {
+ history=history+3;
+ sum=sum+3;
+ }
+ break;
+ case "政治":
+ if(rank_select.equals("简单"))
+ {
+ politics=politics+1;
+ sum=sum+1;
+ }
+ else if(rank_select.equals("中等"))
+ {
+ politics=politics+2;
+ sum=sum+2;
+ }
+ else if(rank_select.equals("困难"))
+ {
+ politics=politics+3;
+ sum=sum+3;
+ }
+ break;
+ case "地理":
+ if(rank_select.equals("简单"))
+ {
+ geography=geography+1;
+ sum=sum+1;
+ }
+ else if(rank_select.equals("中等"))
+ {
+ geography=geography+2;
+ sum=sum+2;
+ }
+ else if(rank_select.equals("困难"))
+ {
+ geography=geography+3;
+ sum=sum+3;
+ }
+ break;
+ case "其他":
+ if(rank_select.equals("简单"))
+ {
+ other=other+1;
+ sum=sum+1;
+ }
+ else if(rank_select.equals("中等"))
+ {
+ other=other+2;
+ sum=sum+2;
+ }
+ else if(rank_select.equals("困难"))
+ {
+ other=other+3;
+ sum=sum+3;
+ }
+ break;
+ }
+
+ SharedPreferences myprefs=getSharedPreferences("homework_jd",MODE_PRIVATE);
+ SharedPreferences.Editor editor=myprefs.edit();
+ editor.putInt("chinese",chinese);
+ editor.putInt("math",math);
+ editor.putInt("english",english);
+ editor.putInt("biology",biology);
+ editor.putInt("chemistry",chemistry);
+ editor.putInt("physics",physics);
+ editor.putInt("history",history);
+ editor.putInt("politics",politics);
+ editor.putInt("geography",geography);
+ editor.putInt("other",other);
+ editor.putInt("sum",sum);
+ editor.commit();
+ editor.apply();
+
+ //储存后清零
+ name.setText("");
+ rank.setSelection(0);
+ subject.setSelection(0);
+
+ values=new ContentValues();
+ values.put("subject",subject_select);
+ values.put("name",name_editext);
+ values.put("time",time_select);
+ values.put("rank",rank_select);
+ //values.put("isfinish",isfinish);
+ db=myHelper.getWritableDatabase();
+ long insert_pd=db.insert("homework",null,values);
+ db.close();
+ if(insert_pd!=-1)//插入失败为-1
+ Toast.makeText(RegisterActivity.this, "作业登记成功!", Toast.LENGTH_SHORT).show();
+ else
+ Toast.makeText(RegisterActivity.this, "作业登记失败!", Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+
+
+ }
+
+ public boolean onTouchEvent(MotionEvent event) {
+ closeKeyBoard();
+ return super.onTouchEvent(event);
+ }
+
+ public void closeKeyBoard() {
+ if (getCurrentFocus() != null && getCurrentFocus().getWindowToken() != null) {
+ View v = getCurrentFocus();
+ ScreenUtil.closeSoftInput(this, v);
+ }
+ }
+
+ public static void closeSoftInput(Context context, View v) {
+ if (v != null) {
+ InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/Job_Management/app/src/main/java/com/hong/job_management/ScheduleActivity.java b/Job_Management/app/src/main/java/com/hong/job_management/ScheduleActivity.java
new file mode 100644
index 0000000..28a026d
--- /dev/null
+++ b/Job_Management/app/src/main/java/com/hong/job_management/ScheduleActivity.java
@@ -0,0 +1,107 @@
+package com.hong.job_management;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+import java.util.List;
+import static com.hong.job_management.MainActivity.chinese;
+import static com.hong.job_management.MainActivity.chinese_finish;
+import static com.hong.job_management.MainActivity.biology;
+import static com.hong.job_management.MainActivity.biology_finish;
+import static com.hong.job_management.MainActivity.chemistry;
+import static com.hong.job_management.MainActivity.chemistry_finish;
+import static com.hong.job_management.MainActivity.english;
+import static com.hong.job_management.MainActivity.english_finish;
+import static com.hong.job_management.MainActivity.geography;
+import static com.hong.job_management.MainActivity.geography_finish;
+import static com.hong.job_management.MainActivity.history;
+import static com.hong.job_management.MainActivity.history_finish;
+import static com.hong.job_management.MainActivity.math;
+import static com.hong.job_management.MainActivity.math_finish;
+import static com.hong.job_management.MainActivity.other;
+import static com.hong.job_management.MainActivity.other_finish;
+import static com.hong.job_management.MainActivity.physics;
+import static com.hong.job_management.MainActivity.physics_finish;
+import static com.hong.job_management.MainActivity.politics;
+import static com.hong.job_management.MainActivity.politics_finish;
+import static com.hong.job_management.MainActivity.sum;
+import static com.hong.job_management.MainActivity.sum_finish;
+
+public class ScheduleActivity extends AppCompatActivity {
+ public List subject_schedule=new ArrayList();
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_schedule);
+ final ScheduleActivity thisActivity=this;
+ initSubject_schedule();
+ update_Schedule(subject_schedule);
+ myAdapter_Schedule myAdapter_schedule= new myAdapter_Schedule(ScheduleActivity.this,subject_schedule);
+ ListView listView=(ListView)findViewById(R.id.schedule_list);
+ listView.setAdapter(myAdapter_schedule);
+ }
+ private void initSubject_schedule()
+ {
+ Subject_schedule subject_schedule1= new Subject_schedule("语文");
+ subject_schedule.add(subject_schedule1);
+ Subject_schedule subject_schedule2= new Subject_schedule("数学");
+ subject_schedule.add(subject_schedule2);
+ Subject_schedule subject_schedule3= new Subject_schedule("英语");
+ subject_schedule.add(subject_schedule3);
+ Subject_schedule subject_schedule4= new Subject_schedule("历史");
+ subject_schedule.add(subject_schedule4);
+ Subject_schedule subject_schedule5= new Subject_schedule("地理");
+ subject_schedule.add(subject_schedule5);
+ Subject_schedule subject_schedule6= new Subject_schedule("政治");
+ subject_schedule.add(subject_schedule6);
+ Subject_schedule subject_schedule7= new Subject_schedule("物理");
+ subject_schedule.add(subject_schedule7);
+ Subject_schedule subject_schedule8= new Subject_schedule("化学");
+ subject_schedule.add(subject_schedule8);
+ Subject_schedule subject_schedule9= new Subject_schedule("生物");
+ subject_schedule.add(subject_schedule9);
+ Subject_schedule subject_schedule10= new Subject_schedule("其他");
+ subject_schedule.add(subject_schedule10);
+ Subject_schedule subject_schedule11= new Subject_schedule("总");
+ subject_schedule.add(subject_schedule11);
+ }
+ private void update_Schedule (List subject_schedule)
+ {
+ subject_schedule.get(0).max=chinese;
+ subject_schedule.get(0).progress=chinese_finish;
+ subject_schedule.get(1).max=math;
+ subject_schedule.get(1).progress=math_finish;
+ subject_schedule.get(2).max=english;
+ subject_schedule.get(2).progress=english_finish;
+ subject_schedule.get(3).max=history;
+ subject_schedule.get(3).progress=history_finish;
+ subject_schedule.get(4).max=geography;
+ subject_schedule.get(4).progress=geography_finish;
+ subject_schedule.get(5).max=politics;
+ subject_schedule.get(5).progress=politics_finish;
+ subject_schedule.get(6).max=physics;
+ subject_schedule.get(6).progress=physics_finish;
+ subject_schedule.get(7).max=chemistry;
+ subject_schedule.get(7).progress=chemistry_finish;
+ subject_schedule.get(8).max=biology;
+ subject_schedule.get(8).progress=biology_finish;
+ subject_schedule.get(9).max=other;
+ subject_schedule.get(9).progress=other_finish;
+ subject_schedule.get(10).max=sum;
+ subject_schedule.get(10).progress=sum_finish;
+ }
+}
+
+
diff --git a/Job_Management/app/src/main/java/com/hong/job_management/StatisticsActivity.java b/Job_Management/app/src/main/java/com/hong/job_management/StatisticsActivity.java
new file mode 100644
index 0000000..d496c63
--- /dev/null
+++ b/Job_Management/app/src/main/java/com/hong/job_management/StatisticsActivity.java
@@ -0,0 +1,152 @@
+package com.hong.job_management;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.graphics.Color;
+import android.os.Bundle;
+
+import com.github.mikephil.charting.animation.Easing;
+import com.github.mikephil.charting.charts.PieChart;
+import com.github.mikephil.charting.components.Legend;
+import com.github.mikephil.charting.data.PieData;
+import com.github.mikephil.charting.data.PieDataSet;
+import com.github.mikephil.charting.data.PieEntry;
+import com.github.mikephil.charting.formatter.PercentFormatter;
+import com.github.mikephil.charting.utils.ColorTemplate;
+
+import java.util.ArrayList;
+
+import static com.hong.job_management.MainActivity.chinese;
+import static com.hong.job_management.MainActivity.chinese_finish;
+import static com.hong.job_management.MainActivity.biology;
+import static com.hong.job_management.MainActivity.biology_finish;
+import static com.hong.job_management.MainActivity.chemistry;
+import static com.hong.job_management.MainActivity.chemistry_finish;
+import static com.hong.job_management.MainActivity.english;
+import static com.hong.job_management.MainActivity.english_finish;
+import static com.hong.job_management.MainActivity.geography;
+import static com.hong.job_management.MainActivity.geography_finish;
+import static com.hong.job_management.MainActivity.history;
+import static com.hong.job_management.MainActivity.history_finish;
+import static com.hong.job_management.MainActivity.math;
+import static com.hong.job_management.MainActivity.math_finish;
+import static com.hong.job_management.MainActivity.other;
+import static com.hong.job_management.MainActivity.other_finish;
+import static com.hong.job_management.MainActivity.physics;
+import static com.hong.job_management.MainActivity.physics_finish;
+import static com.hong.job_management.MainActivity.politics;
+import static com.hong.job_management.MainActivity.politics_finish;
+import static com.hong.job_management.MainActivity.sum;
+import static com.hong.job_management.MainActivity.sum_finish;
+
+public class StatisticsActivity extends AppCompatActivity {
+
+ private PieChart pic_chart;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_statistics);
+ initView();
+ }
+
+ private void initView(){
+ pic_chart = (PieChart) findViewById(R.id.pic_chart);
+ pic_chart.setUsePercentValues(true);//设置为显示百分比
+ pic_chart.getDescription().setEnabled(false);//设置pieChart图表的描述
+ pic_chart.setExtraOffsets(5,0,5,5);//设置pieChart图表上下左右的偏移,类似于外边距
+ pic_chart.setDragDecelerationFrictionCoef(0.95f);//设置pieChart图表转动阻力摩擦系数[0,1]
+ pic_chart.animateY(1400, Easing.EasingOption.EaseInOutBack);//设置pieChart图表展示动画效果
+
+ //设置圆环内部属性
+ pic_chart.setDrawCenterText(true);//是否绘制PieChart内部中心文本(true:下面属性才有意义)
+ pic_chart.setCenterText("作业统计");//设置PieChart内部圆文字的内容
+ pic_chart.setCenterTextSize(27);
+ //pic_chart.setCenterTextTypeface(Typeface.defaultFromStyle(Typeface.BOLD));//设置PieChart内部圆文字的字体样式
+ pic_chart.setDrawHoleEnabled(true);//是否显示PieChart内部圆环(true:下面属性才有意义)
+ pic_chart.setHoleColor(Color.WHITE);//设置PieChart内部圆的颜色
+ pic_chart.setTransparentCircleColor(Color.WHITE);//设置PieChart内部透明圆与内部圆间距的填充颜色
+ pic_chart.setTransparentCircleAlpha(110);//设置PieChart内部透明圆与内部圆间距透明度[0~255]数值越小越透明
+ pic_chart.setHoleRadius(58f);//设置PieChart内部圆的半径
+ pic_chart.setTransparentCircleRadius(61f);//设置PieChart内部透明圆的半径
+
+ pic_chart.setRotationAngle(0);//设置pieChart图表起始角度
+ // 触摸旋转
+ pic_chart.setRotationEnabled(true);//设置pieChart图表是否可以手动旋转
+ pic_chart.setHighlightPerTapEnabled(true);//设置pieChart图表点击Item高亮是否可用
+
+ //模拟数据
+ ArrayList entries = new ArrayList();
+ entries.clear();
+ PieEntry pieEntry =new PieEntry(3,"模板");
+ if(chinese!=0)
+ entries.add(new PieEntry(chinese,"语文"));
+ if(math!=0)
+ entries.add(new PieEntry(math, "数学"));
+ if(english!=0)
+ entries.add(new PieEntry(english, "英语"));
+ if(biology!=0)
+ entries.add(new PieEntry(biology, "生物"));
+ if(chemistry!=0)
+ entries.add(new PieEntry(chemistry, "化学"));
+ if(physics!=0)
+ entries.add(new PieEntry(physics, "物理"));
+ if(history!=0)
+ entries.add(new PieEntry(history, "历史"));
+ if(politics!=0)
+ entries.add(new PieEntry(politics, "政治"));
+ if(geography!=0)
+ entries.add(new PieEntry(geography, "地理"));
+ if(other!=0)
+ entries.add(new PieEntry(other, "其他"));
+
+ //pieEntry.setData(10); //重复传入同个科目时重新设置其值
+ //pieEntry.setLabel("chensh");
+ //entries.set(0,pieEntry);
+
+ //设置数据
+ setDate(entries);
+
+ // 获取pieChart图列
+ Legend l=pic_chart.getLegend();
+ l.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);
+ l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT);
+ l.setOrientation(Legend.LegendOrientation.VERTICAL);
+ l.setDrawInside(false);
+ l.setXEntrySpace(7f);
+ l.setYEntrySpace(0f);
+ l.setYOffset(0f);
+
+ // 输入标签样式
+ pic_chart.setEntryLabelColor(Color.WHITE);
+ pic_chart.setEntryLabelTextSize(16f);
+ }
+
+ private void setDate(ArrayList entries) {
+ PieDataSet dataSet = new PieDataSet(entries, "科目类别");
+ dataSet.setSliceSpace(3f);
+ dataSet.setSelectionShift(5f);
+
+ //数据和颜色
+ ArrayList colors = new ArrayList();
+ for (int c : ColorTemplate.VORDIPLOM_COLORS)
+ colors.add(c);
+ for (int c : ColorTemplate.JOYFUL_COLORS)
+ colors.add(c);
+ for (int c : ColorTemplate.COLORFUL_COLORS)
+ colors.add(c);
+ for (int c : ColorTemplate.LIBERTY_COLORS)
+ colors.add(c);
+ for (int c : ColorTemplate.PASTEL_COLORS)
+ colors.add(c);
+ colors.add(ColorTemplate.getHoloBlue());
+ dataSet.setColors(colors);
+ PieData data = new PieData(dataSet);
+ data.setValueFormatter(new PercentFormatter());
+ data.setValueTextSize(14f);
+ data.setValueTextColor(Color.WHITE);
+ pic_chart.setData(data);
+ pic_chart.highlightValues(null);
+ //刷新
+ pic_chart.invalidate();
+ }
+}
\ No newline at end of file
diff --git a/Job_Management/app/src/main/java/com/hong/job_management/Subject_schedule.java b/Job_Management/app/src/main/java/com/hong/job_management/Subject_schedule.java
new file mode 100644
index 0000000..f052177
--- /dev/null
+++ b/Job_Management/app/src/main/java/com/hong/job_management/Subject_schedule.java
@@ -0,0 +1,47 @@
+package com.hong.job_management;
+
+public class Subject_schedule {
+ private String subject;//用来放科目的
+ public int max=0;//用来放科目总共的进度
+ public int progress=0;//用来放已经完成进度
+
+ public Subject_schedule(String subject) {
+ this.subject = subject;
+ }
+
+ public String getSubject() {
+
+ return subject;
+ }
+
+ public void setSubject(String subject) {
+
+ this.subject = subject;
+ }
+
+ public int getMax() {
+
+ return max;
+ }
+
+ public void setMax(int max) {
+
+ this.max = max;
+ }
+
+ public int getProgress() {
+
+ return progress;
+ }
+
+ public void setProgress(int progress) {
+
+ this.progress= progress;
+ }
+
+}
+
+
+
+
+
diff --git a/Job_Management/app/src/main/java/com/hong/job_management/myAdapter_Homework.java b/Job_Management/app/src/main/java/com/hong/job_management/myAdapter_Homework.java
new file mode 100644
index 0000000..46138b5
--- /dev/null
+++ b/Job_Management/app/src/main/java/com/hong/job_management/myAdapter_Homework.java
@@ -0,0 +1,88 @@
+package com.hong.job_management;
+
+import android.app.Activity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import java.util.List;
+
+public class myAdapter_Homework extends BaseAdapter {
+ private Activity mContext;
+ private LayoutInflater mInflater;
+ private List mDatas;
+ private class ViewHolder{
+ private TextView homework_name;
+ private TextView homework_subject;
+ private TextView homework_time;
+ private TextView homework_rank;
+ private TextView homework_finish;
+ }
+
+ @Override
+ public int getItemViewType(int position) {
+ int Isfinish=mDatas.get(position).isfinish;
+ if(Isfinish==1){
+ return 1;
+ }else{
+ return 0;
+ }
+ }
+
+ public myAdapter_Homework(Activity context , List data) {
+ mContext=context;
+ mDatas=data;
+ mInflater=LayoutInflater.from(mContext);
+ }
+
+ @Override
+ public int getCount() {
+ return (mDatas != null ? mDatas.size() : 0);
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return (mDatas != null ? mDatas.get(position) : null);
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
+ @NonNull
+ @Override
+ public View getView(final int position, @Nullable View convertView, @NonNull ViewGroup parent) {
+ ViewHolder viewHolder=null;
+ if(convertView == null){
+ convertView =mInflater.inflate(R.layout.homework_item,null);
+ viewHolder =new ViewHolder();
+ viewHolder.homework_name=(TextView)convertView.findViewById(R.id.homework_name);
+ viewHolder.homework_subject=(TextView)convertView.findViewById(R.id.homework_subject);
+ viewHolder.homework_rank=(TextView)convertView.findViewById(R.id.homework_rank);
+ viewHolder.homework_time=(TextView)convertView.findViewById(R.id.homework_time);
+ viewHolder.homework_finish=(TextView)convertView.findViewById(R.id.homework_finish);
+ convertView.setTag(viewHolder);
+ } else {
+ viewHolder =(ViewHolder)convertView.getTag();
+ }
+ Homework homework= (Homework) getItem(position);
+ viewHolder.homework_name.setText(homework.getHomework_name());
+ viewHolder.homework_subject.setText(homework.getHomework_subject());
+ viewHolder.homework_rank.setText(homework.getHomework_rank());
+ viewHolder.homework_time.setText(homework.getHomework_time());
+ if(homework.isfinish==0)
+ {
+ viewHolder.homework_finish.setText("×");
+ }else{
+ viewHolder.homework_finish.setText("√");
+ }
+ return convertView;
+ }
+
+}
diff --git a/Job_Management/app/src/main/java/com/hong/job_management/myAdapter_Schedule.java b/Job_Management/app/src/main/java/com/hong/job_management/myAdapter_Schedule.java
new file mode 100644
index 0000000..cd64ad5
--- /dev/null
+++ b/Job_Management/app/src/main/java/com/hong/job_management/myAdapter_Schedule.java
@@ -0,0 +1,69 @@
+package com.hong.job_management;
+
+import android.app.Activity;
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.BaseAdapter;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import java.util.List;
+
+class myAdapter_Schedule extends BaseAdapter {
+ private Activity mContext;
+ private LayoutInflater mInflater;
+ private List mDatas;
+ private class ViewHolder{
+ private TextView subject_name;
+ private TextView subject_value;
+ private ProgressBar subject_progress;
+ }
+
+ public myAdapter_Schedule(Activity context ,List data){
+ mContext=context;
+ mDatas=data;
+ mInflater=LayoutInflater.from(mContext);
+ }
+
+ @Override
+ public int getCount() {
+ return (mDatas != null ? mDatas.size() : 0);
+ }
+ @Override
+ public Object getItem(int position) {
+ return (mDatas != null ? mDatas.get(position) : null);
+ }
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
+
+ @NonNull
+ @Override
+ public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
+ ViewHolder viewHolder=null;
+ if(convertView==null)
+ {
+ convertView =mInflater.inflate(R.layout.schedule_item,null);
+ viewHolder=new ViewHolder();
+ viewHolder.subject_name=(TextView) convertView.findViewById(R.id.subject_name);
+ viewHolder.subject_value=(TextView)convertView.findViewById(R.id.subject_value);
+ viewHolder.subject_progress=(ProgressBar)convertView.findViewById((R.id.subject_progress));
+ convertView.setTag(viewHolder);
+ }else{
+ viewHolder=(ViewHolder) convertView.getTag();
+ }
+ Subject_schedule subject_schedule=(Subject_schedule) getItem(position);
+ viewHolder.subject_name.setText(subject_schedule.getSubject());
+ viewHolder.subject_progress.setMax(subject_schedule.getMax());
+ viewHolder.subject_progress.setProgress(subject_schedule.getProgress());
+ viewHolder.subject_value.setText(String.valueOf((int)(((float)subject_schedule.getProgress()/(float)subject_schedule.getMax())*1000)/10.0+"%"));
+ return convertView;
+ }
+}
\ No newline at end of file
diff --git a/Job_Management/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/Job_Management/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..2b068d1
--- /dev/null
+++ b/Job_Management/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/app/src/main/res/drawable/a.jpg b/Job_Management/app/src/main/res/drawable/a.jpg
new file mode 100644
index 0000000..f7c4ea7
Binary files /dev/null and b/Job_Management/app/src/main/res/drawable/a.jpg differ
diff --git a/Job_Management/app/src/main/res/drawable/add_circle.xml b/Job_Management/app/src/main/res/drawable/add_circle.xml
new file mode 100644
index 0000000..a1c721d
--- /dev/null
+++ b/Job_Management/app/src/main/res/drawable/add_circle.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/Job_Management/app/src/main/res/drawable/ic_launcher_background.xml b/Job_Management/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..07d5da9
--- /dev/null
+++ b/Job_Management/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Job_Management/app/src/main/res/layout/activity_main.xml b/Job_Management/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..1e4477b
--- /dev/null
+++ b/Job_Management/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/app/src/main/res/layout/activity_register.xml b/Job_Management/app/src/main/res/layout/activity_register.xml
new file mode 100644
index 0000000..355a4c3
--- /dev/null
+++ b/Job_Management/app/src/main/res/layout/activity_register.xml
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/app/src/main/res/layout/activity_schedule.xml b/Job_Management/app/src/main/res/layout/activity_schedule.xml
new file mode 100644
index 0000000..b06d05a
--- /dev/null
+++ b/Job_Management/app/src/main/res/layout/activity_schedule.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/app/src/main/res/layout/activity_statistics.xml b/Job_Management/app/src/main/res/layout/activity_statistics.xml
new file mode 100644
index 0000000..8f934db
--- /dev/null
+++ b/Job_Management/app/src/main/res/layout/activity_statistics.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/app/src/main/res/layout/homework_item.xml b/Job_Management/app/src/main/res/layout/homework_item.xml
new file mode 100644
index 0000000..1275d99
--- /dev/null
+++ b/Job_Management/app/src/main/res/layout/homework_item.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/app/src/main/res/layout/schedule_item.xml b/Job_Management/app/src/main/res/layout/schedule_item.xml
new file mode 100644
index 0000000..1a8d141
--- /dev/null
+++ b/Job_Management/app/src/main/res/layout/schedule_item.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Job_Management/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/Job_Management/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/Job_Management/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..eca70cf
--- /dev/null
+++ b/Job_Management/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/app/src/main/res/mipmap-hdpi/ic_launcher.png b/Job_Management/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..a571e60
Binary files /dev/null and b/Job_Management/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/Job_Management/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/Job_Management/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000..61da551
Binary files /dev/null and b/Job_Management/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/Job_Management/app/src/main/res/mipmap-mdpi/ic_launcher.png b/Job_Management/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..c41dd28
Binary files /dev/null and b/Job_Management/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/Job_Management/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/Job_Management/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000..db5080a
Binary files /dev/null and b/Job_Management/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/Job_Management/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/Job_Management/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..6dba46d
Binary files /dev/null and b/Job_Management/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/Job_Management/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/Job_Management/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..da31a87
Binary files /dev/null and b/Job_Management/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/Job_Management/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/Job_Management/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..15ac681
Binary files /dev/null and b/Job_Management/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/Job_Management/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/Job_Management/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..b216f2d
Binary files /dev/null and b/Job_Management/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/Job_Management/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/Job_Management/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..f25a419
Binary files /dev/null and b/Job_Management/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/Job_Management/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/Job_Management/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..e96783c
Binary files /dev/null and b/Job_Management/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/Job_Management/app/src/main/res/values-night/themes.xml b/Job_Management/app/src/main/res/values-night/themes.xml
new file mode 100644
index 0000000..7541efc
--- /dev/null
+++ b/Job_Management/app/src/main/res/values-night/themes.xml
@@ -0,0 +1,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/app/src/main/res/values/arrays.xml b/Job_Management/app/src/main/res/values/arrays.xml
new file mode 100644
index 0000000..3d67b93
--- /dev/null
+++ b/Job_Management/app/src/main/res/values/arrays.xml
@@ -0,0 +1,27 @@
+
+
+
+ - 科目
+ - 语文
+ - 数学
+ - 英语
+ - 历史
+ - 地理
+ - 政治
+ - 物理
+ - 化学
+ - 生物
+ - 其他
+
+
+
+
+ - 难度
+ - 简单
+ - 中等
+ - 困难
+
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/app/src/main/res/values/colors.xml b/Job_Management/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..f8c6127
--- /dev/null
+++ b/Job_Management/app/src/main/res/values/colors.xml
@@ -0,0 +1,10 @@
+
+
+ #FFBB86FC
+ #FF6200EE
+ #FF3700B3
+ #FF03DAC5
+ #FF018786
+ #FF000000
+ #FFFFFFFF
+
\ No newline at end of file
diff --git a/Job_Management/app/src/main/res/values/strings.xml b/Job_Management/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..cb569b9
--- /dev/null
+++ b/Job_Management/app/src/main/res/values/strings.xml
@@ -0,0 +1,6 @@
+
+ Job_Management
+ 登记
+ 进度
+ 统计
+
\ No newline at end of file
diff --git a/Job_Management/app/src/main/res/values/themes.xml b/Job_Management/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..57541e9
--- /dev/null
+++ b/Job_Management/app/src/main/res/values/themes.xml
@@ -0,0 +1,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/Job_Management/app/src/test/java/com/hong/job_management/ExampleUnitTest.java b/Job_Management/app/src/test/java/com/hong/job_management/ExampleUnitTest.java
new file mode 100644
index 0000000..2bef065
--- /dev/null
+++ b/Job_Management/app/src/test/java/com/hong/job_management/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package com.hong.job_management;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/Job_Management/build.gradle b/Job_Management/build.gradle
new file mode 100644
index 0000000..f605f32
--- /dev/null
+++ b/Job_Management/build.gradle
@@ -0,0 +1,24 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+buildscript {
+ repositories {
+ google()
+ jcenter()
+ }
+ dependencies {
+ classpath "com.android.tools.build:gradle:4.1.3"
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ }
+}
+
+allprojects {
+ repositories {
+ google()
+ jcenter()
+ maven { url "https://jitpack.io" }
+ }
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
diff --git a/Job_Management/gradle.properties b/Job_Management/gradle.properties
new file mode 100644
index 0000000..52f5917
--- /dev/null
+++ b/Job_Management/gradle.properties
@@ -0,0 +1,19 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app"s APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Automatically convert third-party libraries to use AndroidX
+android.enableJetifier=true
\ No newline at end of file
diff --git a/Job_Management/gradle/wrapper/gradle-wrapper.jar b/Job_Management/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..f6b961f
Binary files /dev/null and b/Job_Management/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/Job_Management/gradle/wrapper/gradle-wrapper.properties b/Job_Management/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..57d2a5e
--- /dev/null
+++ b/Job_Management/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Sun Apr 11 19:05:04 CST 2021
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
diff --git a/Job_Management/gradlew b/Job_Management/gradlew
new file mode 100644
index 0000000..cccdd3d
--- /dev/null
+++ b/Job_Management/gradlew
@@ -0,0 +1,172 @@
+#!/usr/bin/env sh
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+ cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"
diff --git a/Job_Management/gradlew.bat b/Job_Management/gradlew.bat
new file mode 100644
index 0000000..f955316
--- /dev/null
+++ b/Job_Management/gradlew.bat
@@ -0,0 +1,84 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/Job_Management/settings.gradle b/Job_Management/settings.gradle
new file mode 100644
index 0000000..d27c37e
--- /dev/null
+++ b/Job_Management/settings.gradle
@@ -0,0 +1,2 @@
+include ':app'
+rootProject.name = "Job_Management"
\ No newline at end of file
diff --git a/spring-boot-usejpa/.gitignore b/spring-boot-usejpa/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/spring-boot-usejpa/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/spring-boot-usejpa/.mvn/wrapper/MavenWrapperDownloader.java b/spring-boot-usejpa/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100644
index 0000000..a45eb6b
--- /dev/null
+++ b/spring-boot-usejpa/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2007-present the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.net.*;
+import java.io.*;
+import java.nio.channels.*;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+ private static final String WRAPPER_VERSION = "0.5.6";
+ /**
+ * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+ */
+ private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+ + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
+
+ /**
+ * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+ * use instead of the default one.
+ */
+ private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+ ".mvn/wrapper/maven-wrapper.properties";
+
+ /**
+ * Path where the maven-wrapper.jar will be saved to.
+ */
+ private static final String MAVEN_WRAPPER_JAR_PATH =
+ ".mvn/wrapper/maven-wrapper.jar";
+
+ /**
+ * Name of the property which should be used to override the default download url for the wrapper.
+ */
+ private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+ public static void main(String args[]) {
+ System.out.println("- Downloader started");
+ File baseDirectory = new File(args[0]);
+ System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+ // If the maven-wrapper.properties exists, read it and check if it contains a custom
+ // wrapperUrl parameter.
+ File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+ String url = DEFAULT_DOWNLOAD_URL;
+ if (mavenWrapperPropertyFile.exists()) {
+ FileInputStream mavenWrapperPropertyFileInputStream = null;
+ try {
+ mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+ Properties mavenWrapperProperties = new Properties();
+ mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+ url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+ } catch (IOException e) {
+ System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+ } finally {
+ try {
+ if (mavenWrapperPropertyFileInputStream != null) {
+ mavenWrapperPropertyFileInputStream.close();
+ }
+ } catch (IOException e) {
+ // Ignore ...
+ }
+ }
+ }
+ System.out.println("- Downloading from: " + url);
+
+ File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+ if (!outputFile.getParentFile().exists()) {
+ if (!outputFile.getParentFile().mkdirs()) {
+ System.out.println(
+ "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+ }
+ }
+ System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+ try {
+ downloadFileFromURL(url, outputFile);
+ System.out.println("Done");
+ System.exit(0);
+ } catch (Throwable e) {
+ System.out.println("- Error downloading");
+ e.printStackTrace();
+ System.exit(1);
+ }
+ }
+
+ private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+ if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
+ String username = System.getenv("MVNW_USERNAME");
+ char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
+ Authenticator.setDefault(new Authenticator() {
+ @Override
+ protected PasswordAuthentication getPasswordAuthentication() {
+ return new PasswordAuthentication(username, password);
+ }
+ });
+ }
+ URL website = new URL(urlString);
+ ReadableByteChannel rbc;
+ rbc = Channels.newChannel(website.openStream());
+ FileOutputStream fos = new FileOutputStream(destination);
+ fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+ fos.close();
+ rbc.close();
+ }
+
+}
diff --git a/spring-boot-usejpa/.mvn/wrapper/maven-wrapper.jar b/spring-boot-usejpa/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..2cc7d4a
Binary files /dev/null and b/spring-boot-usejpa/.mvn/wrapper/maven-wrapper.jar differ
diff --git a/spring-boot-usejpa/.mvn/wrapper/maven-wrapper.properties b/spring-boot-usejpa/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..abd303b
--- /dev/null
+++ b/spring-boot-usejpa/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.2/apache-maven-3.8.2-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
diff --git a/spring-boot-usejpa/mvnw b/spring-boot-usejpa/mvnw
new file mode 100644
index 0000000..a16b543
--- /dev/null
+++ b/spring-boot-usejpa/mvnw
@@ -0,0 +1,310 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+# JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+# M2_HOME - location of maven2's installed home dir
+# MAVEN_OPTS - parameters passed to the Java VM when running Maven
+# e.g. to debug Maven itself, use
+# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+ if [ -f /etc/mavenrc ] ; then
+ . /etc/mavenrc
+ fi
+
+ if [ -f "$HOME/.mavenrc" ] ; then
+ . "$HOME/.mavenrc"
+ fi
+
+fi
+
+# OS specific support. $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+ CYGWIN*) cygwin=true ;;
+ MINGW*) mingw=true;;
+ Darwin*) darwin=true
+ # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+ # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+ if [ -z "$JAVA_HOME" ]; then
+ if [ -x "/usr/libexec/java_home" ]; then
+ export JAVA_HOME="`/usr/libexec/java_home`"
+ else
+ export JAVA_HOME="/Library/Java/Home"
+ fi
+ fi
+ ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+ if [ -r /etc/gentoo-release ] ; then
+ JAVA_HOME=`java-config --jre-home`
+ fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+ ## resolve links - $0 may be a link to maven's home
+ PRG="$0"
+
+ # need this for relative symlinks
+ while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG="`dirname "$PRG"`/$link"
+ fi
+ done
+
+ saveddir=`pwd`
+
+ M2_HOME=`dirname "$PRG"`/..
+
+ # make it fully qualified
+ M2_HOME=`cd "$M2_HOME" && pwd`
+
+ cd "$saveddir"
+ # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME=`cygpath --unix "$M2_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME="`(cd "$M2_HOME"; pwd)`"
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+ javaExecutable="`which javac`"
+ if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+ # readlink(1) is not available as standard on Solaris 10.
+ readLink=`which readlink`
+ if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+ if $darwin ; then
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+ else
+ javaExecutable="`readlink -f \"$javaExecutable\"`"
+ fi
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+ JAVA_HOME="$javaHome"
+ export JAVA_HOME
+ fi
+ fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+ if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ else
+ JAVACMD="`which java`"
+ fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+ echo "Error: JAVA_HOME is not defined correctly." >&2
+ echo " We cannot execute $JAVACMD" >&2
+ exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+ echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+ if [ -z "$1" ]
+ then
+ echo "Path not specified to find_maven_basedir"
+ return 1
+ fi
+
+ basedir="$1"
+ wdir="$1"
+ while [ "$wdir" != '/' ] ; do
+ if [ -d "$wdir"/.mvn ] ; then
+ basedir=$wdir
+ break
+ fi
+ # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+ if [ -d "${wdir}" ]; then
+ wdir=`cd "$wdir/.."; pwd`
+ fi
+ # end of workaround
+ done
+ echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+ if [ -f "$1" ]; then
+ echo "$(tr -s '\n' ' ' < "$1")"
+ fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+ exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+ if [ "$MVNW_VERBOSE" = true ]; then
+ echo "Found .mvn/wrapper/maven-wrapper.jar"
+ fi
+else
+ if [ "$MVNW_VERBOSE" = true ]; then
+ echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+ fi
+ if [ -n "$MVNW_REPOURL" ]; then
+ jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+ else
+ jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+ fi
+ while IFS="=" read key value; do
+ case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+ esac
+ done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+ if [ "$MVNW_VERBOSE" = true ]; then
+ echo "Downloading from: $jarUrl"
+ fi
+ wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+ if $cygwin; then
+ wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+ fi
+
+ if command -v wget > /dev/null; then
+ if [ "$MVNW_VERBOSE" = true ]; then
+ echo "Found wget ... using wget"
+ fi
+ if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+ wget "$jarUrl" -O "$wrapperJarPath"
+ else
+ wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
+ fi
+ elif command -v curl > /dev/null; then
+ if [ "$MVNW_VERBOSE" = true ]; then
+ echo "Found curl ... using curl"
+ fi
+ if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+ curl -o "$wrapperJarPath" "$jarUrl" -f
+ else
+ curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
+ fi
+
+ else
+ if [ "$MVNW_VERBOSE" = true ]; then
+ echo "Falling back to using Java to download"
+ fi
+ javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+ # For Cygwin, switch paths to Windows format before running javac
+ if $cygwin; then
+ javaClass=`cygpath --path --windows "$javaClass"`
+ fi
+ if [ -e "$javaClass" ]; then
+ if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+ if [ "$MVNW_VERBOSE" = true ]; then
+ echo " - Compiling MavenWrapperDownloader.java ..."
+ fi
+ # Compiling the Java class
+ ("$JAVA_HOME/bin/javac" "$javaClass")
+ fi
+ if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+ # Running the downloader
+ if [ "$MVNW_VERBOSE" = true ]; then
+ echo " - Running MavenWrapperDownloader.java ..."
+ fi
+ ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+ fi
+ fi
+ fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+ echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME=`cygpath --path --windows "$M2_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+ MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+ $MAVEN_OPTS \
+ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+ "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/spring-boot-usejpa/mvnw.cmd b/spring-boot-usejpa/mvnw.cmd
new file mode 100644
index 0000000..c8d4337
--- /dev/null
+++ b/spring-boot-usejpa/mvnw.cmd
@@ -0,0 +1,182 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM https://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+ IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+ if "%MVNW_VERBOSE%" == "true" (
+ echo Found %WRAPPER_JAR%
+ )
+) else (
+ if not "%MVNW_REPOURL%" == "" (
+ SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+ )
+ if "%MVNW_VERBOSE%" == "true" (
+ echo Couldn't find %WRAPPER_JAR%, downloading it ...
+ echo Downloading from: %DOWNLOAD_URL%
+ )
+
+ powershell -Command "&{"^
+ "$webclient = new-object System.Net.WebClient;"^
+ "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+ "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+ "}"^
+ "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+ "}"
+ if "%MVNW_VERBOSE%" == "true" (
+ echo Finished downloading %WRAPPER_JAR%
+ )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/spring-boot-usejpa/pom.xml b/spring-boot-usejpa/pom.xml
new file mode 100644
index 0000000..092c28e
--- /dev/null
+++ b/spring-boot-usejpa/pom.xml
@@ -0,0 +1,72 @@
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.5.5
+
+
+ cn.hzxy
+ spring-boot-usejpa
+ 0.0.1-SNAPSHOT
+ spring-boot-usejpa
+ spring-boot-usejpa
+
+ 1.8
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jdbc
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ com.alibaba
+ druid
+ 1.1.12
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ mysql
+ mysql-connector-java
+ runtime
+
+
+ org.springframework.boot
+ spring-boot-starter-thymeleaf
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
diff --git a/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/SpringBootUsejpaApplication.java b/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/SpringBootUsejpaApplication.java
new file mode 100644
index 0000000..344073b
--- /dev/null
+++ b/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/SpringBootUsejpaApplication.java
@@ -0,0 +1,16 @@
+package cn.hzxy.springbootusejpa;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+
+
+@SpringBootApplication
+public class SpringBootUsejpaApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(SpringBootUsejpaApplication.class, args);
+ }
+
+}
diff --git a/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/controller/NewTeacherController.java b/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/controller/NewTeacherController.java
new file mode 100644
index 0000000..d8e1845
--- /dev/null
+++ b/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/controller/NewTeacherController.java
@@ -0,0 +1,22 @@
+package cn.hzxy.springbootusejpa.controller;
+import cn.hzxy.springbootusejpa.entity.NewTeacher;
+import cn.hzxy.springbootusejpa.service.NewTeacherService;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Controller
+@RequestMapping("/newTeacher")
+public class NewTeacherController {
+ @Resource
+ private NewTeacherService newTeacherService;
+ @RequestMapping("/test")
+ public String test(Model model){
+ List newTeacherList=newTeacherService.findAll();
+ model.addAttribute("newTeachers",newTeacherList);
+ return "newTeacher";
+ }
+}
diff --git a/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/entity/NewTeacher.java b/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/entity/NewTeacher.java
new file mode 100644
index 0000000..f46d4be
--- /dev/null
+++ b/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/entity/NewTeacher.java
@@ -0,0 +1,38 @@
+package cn.hzxy.springbootusejpa.entity;
+
+import javax.persistence.*;
+
+@Entity
+@Table(name="teacher")
+public class NewTeacher {
+ @Id
+ private String id;
+ @Column(name="name",length=32)
+ private String name;
+ @Column
+ private String password;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+}
diff --git a/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/repository/TeacherRepository.java b/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/repository/TeacherRepository.java
new file mode 100644
index 0000000..57a14ef
--- /dev/null
+++ b/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/repository/TeacherRepository.java
@@ -0,0 +1,15 @@
+package cn.hzxy.springbootusejpa.repository;
+
+import cn.hzxy.springbootusejpa.entity.NewTeacher;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import java.util.Collection;
+import java.util.List;
+
+
+public interface TeacherRepository extends JpaRepository {
+ List findByName(String name);
+ List findByNameLike(String name);
+ List findByIdIn(Collection ids);
+
+}
diff --git a/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/service/NewTeacherService.java b/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/service/NewTeacherService.java
new file mode 100644
index 0000000..39c393a
--- /dev/null
+++ b/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/service/NewTeacherService.java
@@ -0,0 +1,22 @@
+package cn.hzxy.springbootusejpa.service;
+
+import cn.hzxy.springbootusejpa.entity.NewTeacher;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+
+import java.awt.print.Pageable;
+import java.util.Collection;
+import java.util.List;
+
+public interface NewTeacherService {
+ NewTeacher findById(String id);
+ List findAll();
+ NewTeacher sava(NewTeacher newTeacher);
+ void delete(String id);
+
+ Page findAll(PageRequest pageRequest);
+ List findByName(String name);
+ List findByNameLike(String name);
+ List findByIdIn(Collection ids);
+
+}
diff --git a/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/service/impl/Assert.java b/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/service/impl/Assert.java
new file mode 100644
index 0000000..554e100
--- /dev/null
+++ b/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/service/impl/Assert.java
@@ -0,0 +1,11 @@
+package cn.hzxy.springbootusejpa.service.impl;
+
+public class Assert extends org.springframework.util.Assert {
+ public static void isTrue(boolean expression,String message){
+ if(!expression)
+ {
+ throw new IllegalArgumentException(message);
+ }
+ }
+
+}
diff --git a/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/service/impl/NewTeacherServiceImpl.java b/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/service/impl/NewTeacherServiceImpl.java
new file mode 100644
index 0000000..97de825
--- /dev/null
+++ b/spring-boot-usejpa/src/main/java/cn/hzxy/springbootusejpa/service/impl/NewTeacherServiceImpl.java
@@ -0,0 +1,60 @@
+package cn.hzxy.springbootusejpa.service.impl;
+
+import cn.hzxy.springbootusejpa.entity.NewTeacher;
+import cn.hzxy.springbootusejpa.repository.TeacherRepository;
+import cn.hzxy.springbootusejpa.service.NewTeacherService;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.awt.print.Pageable;
+import java.util.Collection;
+import java.util.List;
+
+@Service
+public class NewTeacherServiceImpl implements NewTeacherService {
+ @Resource
+ private TeacherRepository teacherRepository;
+ @Override
+ public NewTeacher findById(String id) {
+ return teacherRepository.findById(id).orElse(null);
+ }
+
+ @Override
+ public List findAll() {
+ List newTeacherList=teacherRepository.findAll();
+ return newTeacherList;
+ }
+
+ @Override
+ public NewTeacher sava(NewTeacher newTeacher) {
+ return teacherRepository.save(newTeacher);
+ }
+
+ @Override
+ public void delete(String id) {
+ teacherRepository.deleteById(id);
+ }
+
+ @Override
+ public Page findAll(PageRequest pageRequest) {
+ return teacherRepository.findAll(pageRequest);
+ }
+
+
+ @Override
+ public List findByName(String name) {
+ return teacherRepository.findByName(name);
+ }
+
+ @Override
+ public List findByNameLike(String name) {
+ return teacherRepository.findByNameLike(name);
+ }
+
+ @Override
+ public List findByIdIn(Collection ids) {
+ return teacherRepository.findByIdIn(ids);
+ }
+}
diff --git a/spring-boot-usejpa/src/main/resources/application.properties b/spring-boot-usejpa/src/main/resources/application.properties
new file mode 100644
index 0000000..bd9326e
--- /dev/null
+++ b/spring-boot-usejpa/src/main/resources/application.properties
@@ -0,0 +1,26 @@
+spring.datasource.username=root
+spring.datasource.password=123456
+spring.datasource.url=jdbc:mysql://127.0.0.1:3306/teacher
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
+spring.datasource.initialSize=5
+spring.datasource.minIdle=5
+spring.datasource.maxActive=20
+spring.datasource.maxWait=6000
+spring.datasource.timeBetweenEvictionRunsMillis=60000
+spring.datasource.minEvictableIdleTimeMills=300000
+spring.datasource.validationQuery=SELECT 1 FROM DUAL
+spring.datasource.testWhileIdle=true
+spring.datasource.testOnBorrow=false
+spring.datasource.testOnReturn=false
+spring.datasource.poolPreparedStatements=true
+spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
+spring.datasource.filters=stat,wall,log4j
+spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
+spring.jpa.hibernate.naming.physical-strategy= org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
+
+spring.thymeleaf.mode=HTML5
+spring.thymeleaf.encoding=UTF-8
+spring.thymeleaf.servlet.content-type=text/html
+spring.thymeleaf.cache=false
+spring.thymeleaf.prefix=classpath:/templates/
\ No newline at end of file
diff --git a/spring-boot-usejpa/src/main/resources/static/1.jfif b/spring-boot-usejpa/src/main/resources/static/1.jfif
new file mode 100644
index 0000000..cd72128
Binary files /dev/null and b/spring-boot-usejpa/src/main/resources/static/1.jfif differ
diff --git a/spring-boot-usejpa/src/main/resources/templates/newTeacher.html b/spring-boot-usejpa/src/main/resources/templates/newTeacher.html
new file mode 100644
index 0000000..51ca9a3
--- /dev/null
+++ b/spring-boot-usejpa/src/main/resources/templates/newTeacher.html
@@ -0,0 +1,27 @@
+
+
+
+
+ teacher
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-boot-usejpa/src/test/java/cn/hzxy/springbootusejpa/SpringBootUsejpaApplicationTests.java b/spring-boot-usejpa/src/test/java/cn/hzxy/springbootusejpa/SpringBootUsejpaApplicationTests.java
new file mode 100644
index 0000000..9846cb1
--- /dev/null
+++ b/spring-boot-usejpa/src/test/java/cn/hzxy/springbootusejpa/SpringBootUsejpaApplicationTests.java
@@ -0,0 +1,52 @@
+package cn.hzxy.springbootusejpa;
+
+import cn.hzxy.springbootusejpa.entity.NewTeacher;
+import cn.hzxy.springbootusejpa.service.NewTeacherService;
+import cn.hzxy.springbootusejpa.service.impl.Assert;
+import org.junit.jupiter.api.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import javax.annotation.Resource;
+import java.awt.print.Pageable;
+import java.util.ArrayList;
+import java.util.List;
+@RunWith(SpringRunner.class)
+@SpringBootTest
+class SpringBootUsejpaApplicationTests {
+ @Resource
+ private NewTeacherService newTeacherService;
+ @Test
+ public void testRepository(){
+// List teacherList=newTeacherService.findAll();
+// System.out.println("findAll():"+teacherList.size());
+ List teacherList2=newTeacherService.findByName("马驰");
+ System.out.println("findByName():"+teacherList2.size());
+ Assert.isTrue(teacherList2.get(0).getName().equals("马驰"),"data error");
+ List teacherList3=newTeacherService.findByNameLike("%张%");
+ System.out.println("findByNameLike():"+teacherList3.size());
+ System.out.println("第一条记录是:"+teacherList3.get(0).getName());
+ System.out.println("第二条记录是:"+teacherList3.get(1).getName());
+ Assert.isTrue(teacherList3.get(0).getName().equals("张晓欢"),"data error");
+ List ids=new ArrayList();
+ ids.add("1");
+ ids.add("3");
+ List teacherList4=newTeacherService.findByIdIn(ids);
+ System.out.println("findByIdIn():"+teacherList4.size());
+ PageRequest pageRequest =PageRequest.of(0,10);
+ Page teacherList5=newTeacherService.findAll(pageRequest);
+ System.out.println("page findAll():"+teacherList5.getTotalPages()+"/"+teacherList5.getSize());
+ NewTeacher newTeacher=new NewTeacher();
+ newTeacher.setId("4");
+ newTeacher.setName("彭晓刚");
+ newTeacher.setPassword("000000");
+ newTeacherService.sava(newTeacher);
+ }
+ @Test
+ void contextLoads() {
+ }
+
+}