Java笔记

一、Java小知识点

1、Aop相关术语中,用于表示切面与程序流程的交叉点的是:pointcut

2、spring的Aop的意思是面向切面编程

3、Mybatis的主配文件:

      Mybatis-config.xml

      spring:applicationContext.xml

      spring  mvc : spring  mvc-config.xml

4、中间JAR:mybatis-spring-1.3.1.jar

5、为了防止前端传入的中文乱码,只需要在web.xml文件中添加代码:

<init-param>

     <param-name>encoding</param-name>

     <param-value>UTF-8<param-value>

</init-param>

6、RESTful风格就是把请求参数变成请求路径的一种风格。

7、Spring  MVC中的拦截器类似于Servlet中的过滤器,主要用于拦截用户请求并作相应处理

8、编程式事务管理:是通过编写代码实现的事务管理,包括定义事务的开始,正常执行后的事务提交和异常时的事务回滚。

9、mybatis:mybatis(前身是iBatis),是一个支持普通SQL查询,存储过程以及高级映射的持久层框架,它消除了几乎所有的JDBC代码和参数的手动设置以及对结果集的检索,并使用简单的xml或注解进行配置和原始映射,用以将接口和Java的POJO(普遍Java对象)映射成数据库中的纪录,使得Java开发人员可以使用面向对象的编程思想来操作数据库。

10、准备所需JAR包,整合环境搭建

1)Spring框架所需的JAR包

2)MyBatis框架所需的JAR包

3)MyBatis与Spring整合的中间JAR

4)数据库驱动JAR包

5)数据源所需JAR包

11、配置spring  mvc步骤

1)创建项目,引入JAR包

2)配置前端控制器

3)创建Controller类

4)配置spring  mvc的配置文件,配置控制器映射信息

5)创建视图(view)页面

6)启动项目,测试应用

12、绑定默认参数类型

HttpServlet  Request       //通过Request对象获取请求信息
HttpServlet  Response       //通过response处理相应信息
HttpSession                 //通过Session对象得到Session中存储的对象
Model/ModelMap             //Model是一个接口,ModelMap是一个接口实现,作用是将Model数据填充到request域 

二、相关代码

1、更新客户(MyBatis)

MyBatis的更新操作在映射文件中是通过配置<update>元素实现的。如果需要更新用户数据,可以通过如下代码配置来实现。

1 <!--更新客户信息-->
2 <update id="updateCustomer"  parameterType="com.itheima.po.Customer">
3        update  t_customer  set
4        username=#{username},jobs=#{jobs},phone=#{phone}
5        where  id=#{id}
6 </update>

 2、ViewResolver(视图解析器)

Spring  MVC中的视图解析器负责解析视图,可以通过在配置文件中定义一个ViewResolver来配置视图解析器,其配置示例如下:

1 <!--定义视图解析器-->
2 <bean id="viewResolver"  class=
3           "org.springframework.web.servlet.view.InternalResourceViewResolver">
4           <!--设置前缀-->
5           <property  name="prefix"  value="/WEB-INF/jsp/"  />
6           <!--设置后缀-->
7           <property  name="suffix"  value=".jsp"  />
8 </bean>

3、JSON结构

例如:一个person对象包含name、hobby和address对象,其代码表现形式如下:

1 2        "name": "zhangsan"
3        "hobby": ["篮球","羽毛球","游泳"]     //数组
4        "address":{
5               "city":"Beijing"
6               "street":"Xisanqi"           //对象
7               "postcode":"100096"
8       }
9

4、拦截器的定义

  public boolearn preHandle

 public void postHandle

 public void afterCompletion 

5、<if元素>

在文件中使用<if>元素编写根据客户姓名和职业组和条件查询客户信息列表的动态SQL语句:

在文件中使用<if>元素的test属性分别对username和jobs进行了非空判断,如果传入的查询条件非空就进行动态SQL组装。

1 <if test="username !=null and username !='' ">
2       and username like concat('%',#{username}, '&')
3 </if>
4 <if test="jobs !=null and jobs !='' ">
5        and jobs= #{jobs}
6 </if>

6、在OrdersMapper.xml文件中使用嵌套查询方式(用inner join改写)

 1 <select id="findOrdersWithPorduct2" parameterType="Integer" 
 2                  resultMap="OrdersWithPorduct2">
 3      select o.*,p.id as pid,p.name,p.price
 4      from (tb_orders o inner join tb_ordersitem oi on p.id=oi.orders_id)
 5      inner join tb_product p on oi.product_id=p.id
 6      WHERE oi.orders_id=o.id
 7      and oi.product_id=p.id
 8      and o.id=#{id}
 9 </select>      
愿你以后风生水起,敬我余生波澜不惊
原文地址:https://www.cnblogs.com/Blockblogs/p/11106834.html