SSM框架-mybites框架
配置
步骤:
创建maven工程并且引入坐标
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11 </version>
</dependency>
创建实体类和dao的接口
创建Mybatis的主配置文件(SqlMapConfig.xml)
1
2
public List<User> getAll();
1 |
|
创建映射配置文件(IUserDao.xml)
1
2
3
4
5
6
7
8
9
<mapper namespace="org.mybatis.example.BlogMapper">
<select id="selectBlog" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>
注意事项:
- 创建映射配置文件时,文件的目录结构要和dao层的目录结构相同,方便mybatis的自动寻找。
- 映射配置文件的mapper标签namespace属性取值dao接口的权限定类名
- 映射配置文件的操作配置(select),id属性取值dao接口类的方法名
使用
1 | // 配置文件 |
读取配置文件
- 使用类加载器读取,他只能读取类路径下的配置文件。
- 使用ServletContext对象的getRealPath()方法读取配置文件。
mybatis使用代理dao的方式实现的增删改查方式
创建代理对象(可以使用dom4j的技术来解析xml文件)
连接数据库的信息(xml文件中)connection
mapper映射配置信息
通过mapper配置信息找到所对应的sql语句 和 封装的实体类限定名 prepareStatement
- 使用代理对象调用增删改查方法
——————————东软
dispatchServlet 是 springmvc的核心拦截器,拦截所有的请求
handlerMapping 相当于MAP , key 为 url ,value 为 Handler
- Handler 里面有类名,方法名,参数列表
handlerMapping 将 Handler 返回给 dispatchServlet
dispatchServlet 将获取到的对象给 HandlerAdapter
HandlerAdapter 解析 Handler 里面的类名,方法名,参数列表 并进行调用
HandlerAdapter 调用完的返回值给 dispatchServlet
dispatchServlet 将返回值 给 视图解析器
视图解析器 通过返回值找到相应的页面进行转发。
handlerMapping
注意 :需要配置handlerMapping的配置文件 namespace 或者(servlet名字-service) WEB-INF目录下面
1 | 1.开启注解驱动 |
向作用域里放入变量
1 | // 1、使用HttpServletRequest |
使用springmvc 重定向 return “redirect:xxx”
AJAX
使用了前后端分离,就不能进行转发和重定向了,应该向前台发送json或者xml来传送字符流。
可以使用fastJson来进行对象与json之间的转换。
使用 JSONObject.toJSONString()
如果想直接返回json数组,而不想转发或者重定向到jsp页面上。可以使用@ResponseBody注解或者使用response.getWriter().write(json字符串)
前后端分离会产生跨域请求问题:解决方法(使用filter)filter所在包org.catalina.filters.CorsFilter
VUEJS
vuejs是分区域进行控制的,可以绑定数据
1 | var Vue = new VUE({“el”:"#app","data":{"abcd":"123456"}) |
数据使用
使用for循环或if 要在标签里面写,与jstl不同,jstl是进行包裹。
1 | <tr v-for="student in list"> |
使用v-model进行双向绑定
1 | // @click 代表使用vue里面的方法,如果使用vue作用域中的内容,则不再需要{{}} eg:@click=del(student.id) |
数据库
模糊查询 添加条件 用concat函数进行字符串拼接
IOC控制反转 使用setting注入和构造注入,建造xml文件,每一个对象是一个bean (要有id 和 class)
1 | <bean id="i3" class="com.neuedu.test.I3"> |
使用配置文件实现工厂模式
导包 spring-context (applicationContext.xml 是写bean的xml,名字随便取)
1 | ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml") |
使用spring的IOC(控制反转)
1 | <context:component-scan base-package="com.neuedu.test" ></context:component-scan> |
类上添加@Component @Repository @Service @Controller 这四种注解的其中一种都能被扫描进去
依赖的属性要写上@Autowired @Resource 注解
main方法无法提前解析配置文件,所以只能使用JUNIT进行测试。还要导入spring的测试包。spring testContex framework, 而且需要在测试类上加上@RunWith(SpringJUnit4ClassRunner.class) 为了告诉启动时加载xml配置文件。@contextConfiguration(locations=”classpath:applicationContext.xml”) 为了告诉配置文件在哪里。
监听器(可以实现服务器启动解析配置文件)需要在web.xml文件中配置listener节点
创建过程 实现 listener接口
web.xml中配置listener(org.springframework.web.context.ContextLoaderListener)
还要配置一个参数告诉监听器配置文件是哪一个。
1 | <context-param> |
stringUtils类可是判断是否字符串为空,需要导包 org.apache.commons.lang3.StringUtils