java代码审计--之--常用框架了解

框架

框架:软件的半成品,为解决问题而指定的一套约束,在提供功能基础上进行扩充。
框架中一些不能被封装的代码(变量),需要新建xml文件,在文件中添加变量内容。

类库:没有封装逻辑

MyBatis

环境搭建

    1. 导入jar

    Cglib依赖的包
    动态代理包
    日志包
    MyBatis核心包
    驱动

    1. 全局配置文件

    在 src 下新建全局配置文件(编写 JDBC 四个变量)
    引入 DTD 或 schema

   
  DOCTYPE configuration 
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
  "http://mybatis.org/dtd/mybatis-3-config.dtd"> 
  <configuration> 
   
  <environments default="default"> 
   
  <environment id="default"> 
   
  <transactionManager type="JDBC">transactionManager> 
  <dataSource type="POOLED"> 
  <property name="driver" value="com.mysql.jdbc.Driver"/> 
  <property name="url" value="jdbc:mysql://localhost:3306/ssm"/> 
  <property name="username" value="root"/> 
  <property name="password" value="smallming"/> 
  dataSource> 
  environment> 
  environments>
  <mappers> 
  <mapper resource="com/bjsxt/mapper/FlowerMapper.xml"/> 
  mappers> 
  configuration> 
  
    1. 实体类名+Mapper.xml
    • 编写需要执行的SQL命令,可把xml文件理解为xxxdaoimpl实现类

   
	  
	  <select id="selAll"resultType="com.bjsxt.pojo.Flower"> 
	  select * from flower 
	  select> 

#{}

2.2.2.1 使用索引,从 0 开始 #{0}表示第一个参数
2.2.2.2 也可以使用#{param1}第一个参数
2.2.2.3 如果只有一个参数(基本数据类型或 String),mybatis
对#{}里面内容没有要求只要写内容即可.
2.2.2.4 如果参数是对象#{属性名}
2.2.2.5 如果参数是 map 写成#{key}

  <select id="selById" 
	  resultType="com.bjsxt.pojo.People" 
	  parameterType="int"> 
	  select * from people where id=#{0} 
	  select>

${}
-

在 xml 文件中出现 “<” , “>” ,双引号 等特殊字符时,可以使用 XML 文件转义标签
分页:?不允许在关键字,前后进行数学运算
- typeAliases 别名

  <typeAliases> 
  <typeAlias type="com.bjsxt.pojo.People" 
  alias="peo"/> 
  typeAliases>
    1. 测试结果

    只有在单独使用 mybatis 时使用,最后 ssm 整合时下面代
    码不需要编写

 InputStream is = 
  Resources.getResourceAsStream("myabtis.xml"); 
  //使用工厂设计模式 
  SqlSessionFactory factory = new 
  SqlSessionFactoryBuilder().build(is); 
  //生产 SqlSession 
  SqlSession session=factory.openSession(); 
  List<Flower> list = 
  session.selectList("a.b.selAll"); 
  for (Flower flower : list) { 
  System.out.println(flower.toString()); 
  }
  session.close();

三种查询方式

  • selectList()

    • 返回值为 List 适用于查询结果都需要遍历的需求
  List<Flower> list = session.selectList("a.b.selAll"); 
  for (Flower flower : list) { 
  System.out.println(flower.toString()); 
  }
  • selectOne()

    • 返回值 Object 适用于返回结果只是变量或一行数据时
  int count = session.selectOne("a.b.selById"); 
	  System.out.println(count);
  • selectMap()

    • 返回值 Map 适用于需要在查询结果中通过某列的值取到这行数据的需求. Map
Map<Object, Object> map = session.selectMap("a.b.c", 
	  "name123"); 
	  System.out.println(map);

注解

简化 xml 文件的开发
如果涉及动态 SQL 依然使用 mapper.xml
注解可以有属性,因为注解其实就是一个接口(类)
注解语法: @XXXX(属性名= 值)

6.1 如果值是基本数据类型或字符串: 属性名=值6.2 如果值是数组类型: 属性名={值,值}
6.2.1 如果只有一个值可以省略大括号
6.3 如果值是类类型,属性名=@名称

  • 路径

    1. 编写路径为了告诉编译器如何找到其他资源.

    2. 路径分类
      2.1 相对路径: 从当前资源出发找到其他资源的过程
      2.2 绝对路径: 从根目录(服务器根目录或项目根目录)出发找到其他资源的过程
      标志: 只要以/开头的都是绝对路径

    3. 绝对路径:
      3.1 如果是请求转发 / 表示项目根目录(WebContent)
      3.2 其他重定向,

你可能感兴趣的:(java,代码审计,java,开发语言,后端)