【简易版】HashMap(增删改查)
1.HashMap概述
(1)首先HashMap是基于哈希表的Map接口实现的。另外HashMap中存储的数据是按照键值跟键值对的关系来进行存储的。
(2)不同于ArrayList方法的是,ArrayList中的每个元素都是有序的,既然有序,那么每个元素都有它所对应的index。当我们想要查找元素时,就可以通过元素的index来进行查询。但是如果数据量庞大,我们想要从中取出一个或者几个元素的时候,那么就需要整个List遍历找出要取的index,这样就需要花费很长的时间而且耗资源效率不高效。而HashMap在这点上就大大减少了查找的负担。只需要通过查找key的方式就可以找到要查找对象的key和value。不用key跟value都去找它的index。
(3)HashMap中key,value是成对出现的,一个key对应一个value。key唯一。
(4)HashMap的key允许是null,但是null的情况只能1个。一般出现null都是出现bug的情况才会有,不推荐把key设置成null。
(5)HashMap无序。
2. HashMap的创建(添加)
注释:HashMap的创建跟其他类的创建以及ArrayList的方法创建是一样的都是通过new一个对象的方式创建。
而这里顺便强调一点的是.put(key, value);方法既是追加也是更改。如果list中没有该元素那么追加这个元素,如果list中已经含有这个元素那么就更改这个元素的值(因为key相同所以更改的都是value的内容)
package com.java.demo_9; import java.util.HashMap; public class HashTest1 { public static void main(String[] args) { HashMap map = new HashMap();
map.put("tony", "13962349564");
map.put("kevin","18615479975");
map.put("Vivian","15948759694"); System.out.println(map); //直接输出内容
System.out.println("===================================================="); String result =(String)map.get("tony"); //通过.get方法查找对应的value
System.out.println(result); System.out.println("====================================================");
/**
* 编例HashMap中所有key跟value的值
*/
for(Object key:map.keySet()){
String value = (String) map.get(key);
System.out.println(key+":"+value);
}
} }
结果:
(1){Vivian=15948759694, tony=13962349564, kevin=18615479975} 注释:直接打印
====================================================
(2)13962349564 注释:获取的是指定key的value
==================================================== (3)通过for循环遍历后的结果。(输出HashMap中所有key与value) Vivian:15948759694
tony:13962349564
kevin:18615479975
3. HashMap的修改
注释:上面已经说过了。.put的方法即是添加也是修改。它没有update方法,所以当要修改一个元素的时候首先一定要先判断这个元素是否存在于hashmap中然后再修改。不然一旦没有该元素,那么put就实现了添加的作用。
package com.java.demo_9; import java.util.HashMap; public class HashTest1 { public static void main(String[] args) { HashMap map = new HashMap();
map.put("tony", "13962349564");
map.put("kevin","18615479975");
map.put("Vivian","15948759694"); System.out.println("===================================================="); /**
* 编例HashMap中所有key跟value的值
*/
for(Object key:map.keySet()){
String value = (String) map.get(key);
System.out.println(key+":"+value);
} System.out.println("====================================================");
/**
* 修改
*/
System.out.println(map.containsKey("Vivian")); //通过containsKey()方法做判断如果list中包含查找key,返回值为true.
map.put("Vivian", "888888888"); for(Object key:map.keySet()){
String value = (String) map.get(key);
System.out.println(key+":"+value);
}
} }
结果:通过下面的输出结果可以看出Vivian的数据已经被替换掉了。所以.put在这里的方法起到了变更的作用并不是追加。但是建议在更改key前无论是通过if,else还是其他方法都要对目前hashmap中的元素做一个对比或者说查找是否有该元素。如果没有直接put就不是变更了变成了追加。这点一定要注意。
【修改前数据】 Vivian:15948759694
tony:13962349564
kevin:18615479975
====================================================
【判断是否包含查找key的返回值】 true 【修改后数据】
Vivian:888888888
tony:13962349564
kevin:18615479975
4. HashMap的删除
注释: HashMap中有.remove()方法。可以直接通过这种方法删除要删除元素。
package com.java.demo_9; import java.util.HashMap; public class HashTest1 { public static void main(String[] args) { HashMap map = new HashMap();
map.put("tony", "13962349564");
map.put("kevin","18615479975");
map.put("Vivian","15948759694"); System.out.println("====================================================");
/**
* 编例HashMap中所有key跟value的值
*/
for(Object key:map.keySet()){
String value = (String) map.get(key);
System.out.println(key+":"+value);
} System.out.println("===================================================="); map.remove("Vivian");
for(Object key:map.keySet()){
String value = (String) map.get(key);
System.out.println(key+":"+value);
}
} }
结果:
【修改前】
Vivian:15948759694
tony:13962349564
kevin:18615479975
==================================================== 【修改后】 tony:13962349564
kevin:18615479975
5. HashMap的查找【面向对象】
注释:对于HashMap的查找其实没有什么太大的意义。因为在HashMap中我们要查的是key,key是唯一的所以只要知道了key就能把对应的value一并查找出来。而查询一个字典中是否存在。通过上面的.containsKey(key))的方法也可以直接得到true,false的结果。因此关于查找我们不单一介绍。结合复杂案例再一并来看HashMap的查找。下面分享一个通过创建一个student类,并且根据student类中的studentName来查找的案例。
package com.java.demo_9; /**
* Student类
* @author liupeng
*
*/
public class Student { private String stuName;
private String classCord;
private String stuNumber;
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getClassCord() {
return classCord;
}
public void setClassCord(String classCord) {
this.classCord = classCord;
}
public String getStuNumber() {
return stuNumber;
}
public void setStuNumber(String stuNumber) {
this.stuNumber = stuNumber;
}
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(String stuName,String stuNumber,String classCord) {
super();
this.stuName = stuName;
this.classCord = classCord;
this.stuNumber = stuNumber;
}
@Override
public String toString() {
return "学员名称:" + stuName + ", 学员编号:"
+ stuNumber + ", 班级番号:" + classCord;
} }
Student类
package com.java.demo_9; import java.util.HashMap;
import java.util.Scanner; import com.java.demo_9.Student; public class HashMapTest {
public static void main(String[] args) {
HashMap map = new HashMap(); /**
* 通过for循环创建多位对象
*/
/* for(int i=1;i<=10;i++){
Student student = new Student("student"+i,"cn00"+i,"s100"+i);
map.put("student"+i, student); }*/ /**
* 逐一添加元素
*/
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
System.out.println("\t\t<学员信息一览表>\t\t");
System.out.println();
Student st1 = new Student("王小天", "cn0001", "class0001");
Student st2 = new Student("张天爱", "cn0002", "class0002");
Student st3 = new Student("武则天", "cn0003", "class0003");
Student st4 = new Student("小钢炮", "cn0004", "class0005"); map.put("王小天", st1);
map.put("张天爱", st2);
map.put("武则天", st3);
map.put("小钢炮", st4); for (Object key : map.keySet()) {
// System.out.println(key);
Student value = (Student) map.get(key);
System.out.println(key + ":" + value);
} System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
System.out.println(); /**
* 查询某个元素
*/ Scanner input = new Scanner(System.in);
System.out.print("请输入查找的学员名称:");
String stuName = input.next(); Student stu = (Student) map.get(stuName);
if (stu == null) {
System.out.println();
System.out.println("对不起,无此人信息.");
} else {
System.out.println();
System.out.println(stu); }
} }
HashMapTest(测试类)
结果:因为代码中运用了Scanner从键盘输出的方法,所以在下列“请输入查找的学员名称:”后的学生名是手动通过键盘输入进去的。输出完毕后会发现已经从列表中找到了我们要查找的对象。相反如果输入的学员姓名不包含在列表中。那么反馈的结果就是“对不起,无此人信息!”。
【反馈结果1】 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ <学员信息一览表> 张天爱:学员名称:张天爱, 学员编号:cn0002, 班级番号:class0002
小钢炮:学员名称:小钢炮, 学员编号:cn0004, 班级番号:class0005
王小天:学员名称:王小天, 学员编号:cn0001, 班级番号:class0001
武则天:学员名称:武则天, 学员编号:cn0003, 班级番号:class0003
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 请输入查找的学员名称:武则天 学员名称:武则天, 学员编号:cn0003, 班级番号:class0003 【反馈结果2】 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ <学员信息一览表> 张天爱:学员名称:张天爱, 学员编号:cn0002, 班级番号:class0002
小钢炮:学员名称:小钢炮, 学员编号:cn0004, 班级番号:class0005
王小天:学员名称:王小天, 学员编号:cn0001, 班级番号:class0001
武则天:学员名称:武则天, 学员编号:cn0003, 班级番号:class0003
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 请输入查找的学员名称:茨木童子 对不起,无此人信息.
注释:通过上例可以看出当一个字典,或者说一个列表中的元素非常多的时候,我们不能通过肉眼马上查找出我们要查询的对象。那么通过HashMap键值对查找的方式就很方便的查到我们要查找的对象了。
6. 【面向对象】HashMap的修改(结合Student类的案例来进行修改)
注释:HashMap中对于修改一个字典中的元素用的是上述所说的.put方法。如果该元素存在的情况下就修改,不存在的情况下添加。而下面这个结合Student类来进行修改的案例其实是通过调用Student类中getter,setter封装中.set的方法来进行修改的。一起来看一下代码。
package com.java.demo_9; import java.util.HashMap;
import java.util.Scanner; import com.java.demo_9.Student; public class HashMapTest {
public static void main(String[] args) {
HashMap map = new HashMap(); /**
* 通过for循环创建多位对象
*/
/* for(int i=1;i<=10;i++){
Student student = new Student("student"+i,"cn00"+i,"s100"+i);
map.put("student"+i, student); }*/ /**
* 逐一添加元素
*/
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
System.out.println("\t\t<学员信息一览表>\t\t");
System.out.println();
Student st1 = new Student("王小天", "cn0001", "class0001");
Student st2 = new Student("张天爱", "cn0002", "class0002");
Student st3 = new Student("武则天", "cn0003", "class0003");
Student st4 = new Student("小钢炮", "cn0004", "class0005");
Student st5 = new Student("屠龙刀", "cn0005", "class0006"); map.put("王小天", st1);
map.put("张天爱", st2);
map.put("武则天", st3);
map.put("小钢炮", st4);
map.put("屠龙刀", st5); for (Object key : map.keySet()) {
// System.out.println(key);
Student value = (Student) map.get(key);
System.out.println(key + ":" + value);
} System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); /**
* 修改
*
*/
Scanner input = new Scanner(System.in);
System.out.print("请输入查找的学员名称:");
String stuName = input.next(); Student stu = (Student) map.get(stuName);
if (stu == null) {
System.out.println();
System.out.println("对不起,无此人信息.");
} else {
System.out.println();
System.out.println(stu);
System.out.println();
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
System.out.print("请输入修改学员的学员编号:");
String stuNo = input.next(); stu.setStuNumber(stuNo); //通过getters,setters中的.setStuNumber()方法进行修改.()中传入的是键盘输入进来的内容.
map.put(stuName, stu); //修改完之后还要put到HashMap中去才可以.
}
System.out.println();
for (Object key : map.keySet()) {
// System.out.println(key);
Student value = (Student) map.get(key);
System.out.println(key + ":" + value);
} } }
HashMapTest(面向对象修改)
结果:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ <学员信息一览表> 屠龙刀:学员名称:屠龙刀, 学员编号:cn0005, 班级番号:class0006
张天爱:学员名称:张天爱, 学员编号:cn0002, 班级番号:class0002
小钢炮:学员名称:小钢炮, 学员编号:cn0004, 班级番号:class0005
王小天:学员名称:王小天, 学员编号:cn0001, 班级番号:class0001
武则天:学员名称:武则天, 学员编号:cn0003, 班级番号:class0003
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
请输入查找的学员名称:王小天 学员名称:王小天, 学员编号:cn0001, 班级番号:class0001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
请输入修改学员的学员编号:88888888 屠龙刀:学员名称:屠龙刀, 学员编号:cn0005, 班级番号:class0006
张天爱:学员名称:张天爱, 学员编号:cn0002, 班级番号:class0002
小钢炮:学员名称:小钢炮, 学员编号:cn0004, 班级番号:class0005
王小天:学员名称:王小天, 学员编号:88888888, 班级番号:class0001
武则天:学员名称:武则天, 学员编号:cn0003, 班级番号:class0003
注释:
对于变更而言。首先你应该先找到你要变更的那个键值对才可以。因此查询是不可缺少的步骤。当查到我们要修改的值时,再通过.set方法来进行变更。这里我们要变更的是“学员编号”。因此再次通过Scanner键盘输入要更改的学员编号,最后重新遍历出来更改后的结果。
(这里需要注意的是.set变更完后,一定要重新.put进HashMap 字典中去。不然原来的字典内容不会做任何的改变。这点一定要注意。另外HashMap中不推荐修改主键(key)。修改的都是value)
7. 【面向对象】HashMap的删除(结合Student类的案例来进行删除)
注释:查询,修改在上述的代码中已经呈现了。那么接下来就是删除跟添加了。首先来看删除。对于删除还是直接使用HashMap中.remove的方法。因为是删除所以在这里我没有做查找,直接做的删除。(当然不嫌麻烦的话你也可以加上查找。)
package com.java.demo_9; import java.util.HashMap;
import java.util.Scanner; import com.java.demo_9.Student; public class HashMapTest {
public static void main(String[] args) {
HashMap map = new HashMap(); /**
* 通过for循环创建多位对象
*/
/* for(int i=1;i<=10;i++){
Student student = new Student("student"+i,"cn00"+i,"s100"+i);
map.put("student"+i, student); }*/ /**
* 逐一添加元素
*/
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
System.out.println("\t\t<学员信息一览表>\t\t");
System.out.println();
Student st1 = new Student("王小天", "cn0001", "class0001");
Student st2 = new Student("张天爱", "cn0002", "class0002");
Student st3 = new Student("武则天", "cn0003", "class0003");
Student st4 = new Student("小钢炮", "cn0004", "class0004");
Student st5 = new Student("屠龙刀", "cn0005", "class0005"); map.put("王小天", st1);
map.put("张天爱", st2);
map.put("武则天", st3);
map.put("小钢炮", st4);
map.put("屠龙刀", st5); for (Object key : map.keySet()) {
// System.out.println(key);
Student value = (Student) map.get(key);
System.out.println(key + ":" + value);
} /**
* 删除
* 直接通过HashMap中的.remove方法删除.
*/ Scanner input = new Scanner(System.in);
System.out.print("请输入要开除的学员名称:");
String stuName = input.next(); Student stu = (Student) map.get(stuName);
if (stu == null) {
System.out.println();
System.out.println("对不起,无此人信息.");
return; //如果没有找到对象,直接退出整个循环.不走下面的代码.
} else {
System.out.println();
System.out.print("您确定要删除该学员吗? [确定]:y,[取消]:n");
String isok = input.next();
if(isok.equals("y")){
map.remove(stuName);
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
for (Object key : map.keySet()) {
// System.out.println(key);
Student value = (Student) map.get(key);
System.out.println(key + ":" + value);
}
}else{
System.out.println("该操作已被撤回!");
} } } }
HashMapTest(面向对象删除)
结果:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<学员信息一览表> 屠龙刀:学员名称:屠龙刀, 学员编号:cn0005, 班级番号:class0006
张天爱:学员名称:张天爱, 学员编号:cn0002, 班级番号:class0002
小钢炮:学员名称:小钢炮, 学员编号:cn0004, 班级番号:class0005
王小天:学员名称:王小天, 学员编号:cn0001, 班级番号:class0001
武则天:学员名称:武则天, 学员编号:cn0003, 班级番号:class0003
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 请输入要开除的学员名称:王小天 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
屠龙刀:学员名称:屠龙刀, 学员编号:cn0005, 班级番号:class0006
张天爱:学员名称:张天爱, 学员编号:cn0002, 班级番号:class0002
小钢炮:学员名称:小钢炮, 学员编号:cn0004, 班级番号:class0005
武则天:学员名称:武则天, 学员编号:cn0003, 班级番号:class0003
8. 【面向对象】HashMap的追加(结合Student类的案例来进行追加)
注释:最后来看一下面对对象方面的追加。(因为HashMap字典已经存在要想追加我们还是通过Scanner键盘输入的方式进行追加。那么问题来了,value的话在Student类中有3个参数。所以当我们追加的时候也同时需要通过键盘的方式输入3次不同的参数后,方可输入到原HashMap字典中。参数多的情况下不建议这种方法添加。)那么一起来看一下下面的代码吧。
package com.java.demo_9; import java.util.HashMap;
import java.util.Scanner; import com.java.demo_9.Student; public class HashMapTest {
public static void main(String[] args) {
HashMap map = new HashMap(); /**
* 通过for循环创建多位对象
*/
/* for(int i=1;i<=10;i++){
Student student = new Student("student"+i,"cn00"+i,"s100"+i);
map.put("student"+i, student); }*/ /**
* 逐一添加元素
*/
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
System.out.println("\t\t<学员信息一览表>\t\t");
System.out.println();
Student st1 = new Student("王小天", "cn0001", "class0001");
Student st2 = new Student("张天爱", "cn0002", "class0002");
Student st3 = new Student("武则天", "cn0003", "class0003");
Student st4 = new Student("小钢炮", "cn0004", "class0004");
Student st5 = new Student("屠龙刀", "cn0005", "class0005"); map.put("王小天", st1);
map.put("张天爱", st2);
map.put("武则天", st3);
map.put("小钢炮", st4);
map.put("屠龙刀", st5); for (Object key : map.keySet()) {
// System.out.println(key);
Student value = (Student) map.get(key);
System.out.println(key + ":" + value);
} System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
System.out.println(); /**
* 查询某个元素
*(通过stuName来查找)
*/ /* Scanner input = new Scanner(System.in);
System.out.print("请输入查找的学员名称:");
String stuName = input.next(); Student stu = (Student) map.get(stuName);
if (stu == null) {
System.out.println();
System.out.println("对不起,无此人信息.");
} else {
System.out.println();
System.out.println(stu); }*/ /**
* 修改
*
*//*
Scanner input = new Scanner(System.in);
System.out.print("请输入查找的学员名称:");
String stuName = input.next(); Student stu = (Student) map.get(stuName);
if (stu == null) {
System.out.println();
System.out.println("对不起,无此人信息.");
} else {
System.out.println();
System.out.println(stu);
System.out.println();
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
System.out.print("请输入修改学员的学员编号:");
String stuNo = input.next(); stu.setStuNumber(stuNo); //通过getters,setters中的.setStuNumber()方法进行修改.()中传入的是键盘输入进来的内容.
map.put(stuName, stu); //修改完之后还要put到HashMap中去才可以.
}
System.out.println();
for (Object key : map.keySet()) {
// System.out.println(key);
Student value = (Student) map.get(key);
System.out.println(key + ":" + value);
}
*/
/* *//**
* 删除
* 直接通过HashMap中的.remove方法删除.
*//* Scanner input = new Scanner(System.in);
System.out.print("请输入要开除的学员名称:");
String stuName = input.next(); Student stu = (Student) map.get(stuName);
if (stu == null) {
System.out.println();
System.out.println("对不起,无此人信息.");
return; //如果没有找到对象,直接退出整个循环.不走下面的代码.
} else {
System.out.println();
map.remove(stuName);
}
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
for (Object key : map.keySet()) {
// System.out.println(key);
Student value = (Student) map.get(key);
System.out.println(key + ":" + value);
}*/ /**
* 追加
*/ Scanner input = new Scanner(System.in);
System.out.print("请输入追加的学员名称:");
String stuName = input.next();
System.out.print("请输入追加的学员的学员编号:");
String stuNumber = input.next();
System.out.print("请输入追加的学员的教室:");
String classCord = input.next();
Student student = new Student(stuName, stuNumber, classCord); map.put(stuName, student); System.out.println();
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
for (Object key : map.keySet()) {
// System.out.println(key);
Student value = (Student) map.get(key);
System.out.println(key + ":" + value);
} } }
HashMapTest(面向对象追加)
结果:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<学员信息一览表> 屠龙刀:学员名称:屠龙刀, 学员编号:cn0005, 班级番号:class0006
张天爱:学员名称:张天爱, 学员编号:cn0002, 班级番号:class0002
小钢炮:学员名称:小钢炮, 学员编号:cn0004, 班级番号:class0005
王小天:学员名称:王小天, 学员编号:cn0001, 班级番号:class0001
武则天:学员名称:武则天, 学员编号:cn0003, 班级番号:class0003
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 请输入追加的学员名称:三胖
请输入追加的学员的学员编号:9999999
请输入追加的学员的教室:class0001 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
三胖:学员名称:三胖, 学员编号:9999999, 班级番号:class0001
屠龙刀:学员名称:屠龙刀, 学员编号:cn0005, 班级番号:class0006
张天爱:学员名称:张天爱, 学员编号:cn0002, 班级番号:class0002
小钢炮:学员名称:小钢炮, 学员编号:cn0004, 班级番号:class0005
王小天:学员名称:王小天, 学员编号:cn0001, 班级番号:class0001
武则天:学员名称:武则天, 学员编号:cn0003, 班级番号:class0003
总结:
以上就是对于HashMap的增删改查的方法。上述的方法仅仅是HashMap中简单的案例,后续会更新稍微复杂的版本,敬请期待。
【简易版】HashMap(增删改查)的更多相关文章
- MySQL初步理解,简易单表增删改查
什么是数据库? 存储数据的仓库,本质是一个文件系统,封装了算法和文件之前数据的存储模式 阶段1:集合 数组 变量 缺点:数据存储在内存中,不能实现数据的持久化存储 阶段2:IO流 结合文件 .txt ...
- Python Web实战:Python+Django+MySQL实现基于Web版的增删改查
前言 本篇使用Python Web框架Django连接和操作MySQL数据库学生信息管理系统(SMS),主要包含对学生信息增删改查功能,旨在快速入门Python Web,少走弯路.效果演示在项目实战最 ...
- Spring Boot入门系列(十八)整合mybatis,使用注解的方式实现增删改查
之前介绍了Spring Boot 整合mybatis 使用xml配置的方式实现增删改查,还介绍了自定义mapper 实现复杂多表关联查询.虽然目前 mybatis 使用xml 配置的方式 已经极大减轻 ...
- 【面向对象版】HashMap(增删改查)
前言: 关于什么是HashMap,HashMap可以用来做些什么,这些定义类的描述,请参照[简易版]HashMap(增删改查)的内容. 这章节主要是面向实例,直接进行HashMap(增删改查)的演示. ...
- 【简易版】Java ArrayList(增删改查)
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: (1)动态的增加和减少元素 (2)实现了ICollectio ...
- 安卓版php服务器的mysql数据库增删改查简单案例
界面: index.php文件: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
- 通过flask实现web页面简单的增删改查bootstrap美化版
通过flask实现web页面简单的增删改查bootstrap美化版 项目目录结构 [root@node1 python]# tree -L 2 . ├── animate.css ├── fileut ...
- idea社区版+第一个spring boot项目+增删改查+yml修改端口号
参考:https://www.cnblogs.com/tanlei-sxs/p/9855071.html 中途出现问题时参考了太多 1.下载idea社区版 2.在settings -> Plug ...
- NX二次开发-NX访问SqlServer数据库(增删改查)C#版
版本:NX9+VS2012+SqlServer2008r2 以前我写过一个NX访问MySQL数据库(增删改查)的文章https://www.cnblogs.com/nxopen2018/p/12297 ...
随机推荐
- 第一篇英文短文《It All Starts With A Dream》
http://www.ximalaya.com/#/17209107/sound/6883165 Dreaming. Do you or don’t you? Do you dream about t ...
- .net MVC3 页面和 action 传值问题
一.ViewData ViewData ViewBag 的特点和使用场景比较 1. TempData:类型是字典的键值对结构 特点:值只能取一次.保存在Session中,Controller每次执行 ...
- Esfog_UnityShader教程_UnityShader语法实例浅析
距离上次首篇前言已经有一段时间了,一直比较忙,今天是周末不可以再拖了,经过我一段时间的考虑,我决定这一系列的教程会避免过于深入细节,一来可以避免一些同学被误导,二来会避免文章过于冗长难读, 三来可以让 ...
- Xcode7打包,iOS9真机闪退,如何解决?
问:有些项目用xcode7打开运行,打包安装到iOS9设备上程序会闪退. 如果用xcode7以下编译,然后打包到iOS9的设备上就是正常的.这是为什么,关键是,怎么解决? 答:iOS9发布之后,有些a ...
- Swagger-API测试工具实战
初次通过swagger不知道这是一个什么东东. 一.拿到一个项目需要测试,打开地址一看有个大写的swagger,于是各种脑补: 我所理解的就是,swagger是一个API开发工具或者来说是一个框架,开 ...
- Robot Framework:RF中对时间操作的datetime库常用关键字
[转自:http://blog.csdn.net/r455678/article/details/52993765] 1.对固定日期进行操作,增加或减去单位时间或者时间段 2.对两个时间段进行操作 3 ...
- cx_Oracle 报错 Reason: image not found
(Study_env) ➜ DAL python -c "import cx_Oracle"Traceback (most recent call last): File &quo ...
- CSAPP学习笔记(第一,二章)
1:文本文件指的是ASCII码文件,二进制文件指的是除文本文件以外,其他文件. 2:区分数据对象的唯一判别方法是数据的上下文. 3:描述一下一个hello.c文件的处理过程.首先hello.c文件我们 ...
- 应用EF访问SQLite数据
创建项目,应用EF访问SQLite 1.创建项目 项目结构初始结构如下图所示,Netage.Data.SQLite 类库项目用于定义访问数据的接口和方法,Netage.SQLiteTest.UI 控制 ...
- JavaEE知识点总结
JavaEE知识点总结 什么是分层开发? 一种化大为小,分而治之的软件开发方法. 分层的特点: 1.每一层都有自己的责任. 2.上一层不用关心下一层的实现细节,上一层通过下一层 提供的对外接口来使用其 ...