今天学习时遇到的一些卡壳的问题:
1、MVC分层的原理及使用
2、设计模式的六大原则:
3、Ajax
4、Json、gson及xml
5、工厂模式,什么叫Connectionfactory
6、Sql语句,左连接右连接
7、什么叫DHCP创建连接池
一点一点抽时间空闲去解决吧。
1、MVC结构
答:Model模型:逻辑处理
View视图:页面的显示和样式展示
Controller控制器:用户与系统之间的连接
2、Dao层,Service层,Controller层,View层
答:①Dao层:接口,负责与数据库进行联络的一些任务都封装于此,在Spring的配置文件中定义此接口的实现类、数据源配置、有关数据库连接的参数。【比如增,删,改,查以及一些特殊的数据库访问方法】
②Service层:接口,负责业务模块的逻辑应用设计。也是在Spring配置文件中配置其实现的关联。【既调用Dao层的接口,又提供接口给Controller层的类调用,每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。】
③Controller层:负责具体的业务模块的流程控制。会调用到Service层的接口。也是在Spring的配置文件中配置控制。
④View层:负责前台的页面的表示。
注意事项:
①Dao层、Service层单独开发,Controller层、View层耦合度比较高,结合在一起开发。
②尽管Service层没有使用在Dao层定义的一些操作方法,但是Dao层操作方法还是要定义完全,因为经过抽象后基本上都是通用的,好处是在对Service层进行扩展的时候不需要再对Dao层进行修改,提高了程序的可扩展性。
3、Action层、Service层、Dao层:
答:Action层:管理业务调度和业务跳转,服务员
Service层:管理具体的功能,厨师,按照服务员送上来的菜单做菜
Dao层:增删改查,小工,和原材料打交道
4、json:
答:(1)定义:
json就是用JavaScript语法写的一个特殊的标记字符串,用于数据交换,JSON 是存储和交换文本信息的语法。类似 XML。JSON 比 XML 更小、更快,更易解析。
(2)语法:
①数据在名称/值对中 eg. name : “dengqinyi”
②数据由逗号分隔 eg. name : “dengqinyi”, nickname : “remoa”
③花括号保存对象 eg. {name : “dengqinyi”, nickname : “remoa”}
④方括号保存数组
Eg {
people: [
{name : “dengqinyi”, nickname : “remoa”},
{name : “dengqinyi”, nickname : “remoa”},
{name : “dengqinyi”, nickname : “remoa”}
]}
(3)示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>json测试</title>
<script type="text/javascript">
document.write("1、常规Javascript对象定义<br />");
function Student(name, studentId, sex){
this.name = name;
this.studentId = studentId;
this.sex = sex;
};
var s1 = new Student("remoa", "3114005847", "boy");
document.write("姓名:" + s1.name + "<br />");
document.write("学号:" + s1.studentId + "<br />");
document.write("性别:" + s1.sex + "<br />");
document.write("2、使用json方式定义<br />");
var s2={
name : "remoa",
studentId : 3114005847,
sex : "boy"
};
document.write("姓名:" + s2.name + "<br />");
document.write("学号:" + s2.studentId + "<br />");
document.write("性别:" + s2.sex + "<br />");
</script>
<script type="text/javascript">
document.write("3、用json定义数组<br />");
var array = {
course:[
{subject1 : "语文 Chinese", subject2 : "数学 Math", subject3 : "英语 English"},
{subject1 : "软件工程 Software Engineering", subject2 : "操作系统 Operating System", },
{subject1 : "人工智能 Artificial Intelligence", subject3 : "数据库 Database"}
]
}
for(var i = 0; i < array.course.length; i++){
document.write(array.course[i].subject1 + " " + array.course[i].subject2 + " " + array.course[i].subject3 + "<br />");
}
document.write("数组未定义完整部分则显示undefined<br />");
</script>
</head>
<body>
</body>
</html>
运行结果:
5、fastJson:
答:(1)fastjson是Java语言编写的json处理器。
(2)示例:
①Person.java实体类
package domain;
public class Person {
private String name;
private String id;
private String sex;
public Person(){
}
public Person(String name, String id, String sex){
this.name = name;
this.id = id;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Person [name=" + name + ",id=" + id +"]";
}
}
②JsonLearn.java常用方法测试类
package json;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;
import domain.Person;
public class JsonLearn {
public static void main(String[] args) {
Person person = new Person("remoa", "3114005847", "boy");
String json1 = JSON.toJSONString(person);//将实体类解析为json格式
System.out.println(json1);
System.out.println("--------------------------------");
System.out.println(JSON.parseObject(json1, Person.class));//反序列化,将我们的str类型转换为class类型的对象
System.out.println();
List<Person> list = new ArrayList<Person>();
for(int i = 0; i < 5; i++){
Person per = new Person("person" + i, "311300584" + i, "boy");
list.add(per);
}
String json2 = JSON.toJSONString(list);//将列表解析成json格式的数组
System.out.println(json2);
System.out.println("--------------------------------");
String json3 = JSON.toJSONString(list, true);//将其按照标准的json格式输出
System.out.println(json3);
System.out.println("--------------------------------");
SimplePropertyPreFilter filter = new SimplePropertyPreFilter(Person.class, "id", "sex");//此处只序列化id和sex的字段,获得字段为我们需要序列化的字段,如果实体类中没有该字段则不解析放弃该字段而不会报错。
String json4 = JSON.toJSONString(list, filter);
System.out.println(json4);
}
}
运行结果: