mysql书写规范,iBatis和MyBatis SQL映射文件编码规范

iBatis和MyBatis SQL映射文件编码规范

目录

1 XML注释注意事项 (2)

1.1 使用注释,前后至少留出一个半角空格 (2)

1.2 避免注释出现在SQL语句中 (2)

2 防止SQL注入 (2)

2.1 变量引用的两种写法 (2)

2.1.1 $写法,存在SQL注入风险 (2)

2.1.2 #写法,数据库预编译,防止SQL注入 (3)

2.2 LIKE 操作符 (3)

2.2.1 $写法 (3)

2.2.2 #写法 (3)

2.3 IN 操作符 (4)

2.3.1 $写法 (4)

2.3.2 #写法 (4)

2.4 TOP 子句 (5)

2.4.1 $写法 (5)

2.4.2 #写法 (5)

2.5 ORDER BY 子句 (5)

2.5.1 $写法 (5)

2.5.2 #写法 (6)

2.6 GROUP BY 语句 (6)

2.6.1 $写法 (6)

2.6.2 #写法 (6)

3 避免使用SELECT *查询物理表 (7)

3.1 避免使用SELECT * 查询物理表 (7)

4 避免WHERE/ON语句中列类型隐式转换 (7)

4.1 变量类型优先级应不高于数据库中的列类型 (7)

4.2 指定字符串变量的JDBC类型 (8)

5 避免WHERE/ON语句中对字段使用函数运算 (9)

5.1 日期类型字段 (9)

5.1.1 查询条件和日期字段的精确度一致 (9)

5.1.2 如果查询条件和日期字段的精确度不一致 (10)

5.2 字符串类型字段 (12)

6 指定别名(Alias) (12)

6.1 建议使用AS关键字指定别名,而不是空格 (12)

6.2 建议子查询中应指定表的别名 (13)

6.3 建议避免使用a、b、c、d等无意义的别名 (13)

7 建议使用WITH (NOLOCK)(涉及金融、财务、支付和会计成本等等的SQL语句不要使用该关键词) (14)

7.1 建议SELECT语句使用WITH (NOLOCK) (关键业务除外) (14)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot中使用MyBatis,需要按照以下步骤进行配置和编写SQL映射文件: 1. 添加MyBatisMyBatis-Spring依赖: ```xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> ``` 2. 配置数据源: 在application.properties文件中添加数据库连接信息,例如: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver ``` 3. 配置MyBatis: 在application.properties文件中添加MyBatis配置信息,例如: ```properties mybatis.mapper-locations=classpath:mapper/*.xml mybatis.type-aliases-package=com.example.demo.entity ``` 其中,mapper-locations指定了SQL映射文件的路径,type-aliases-package指定了实体类的包路径。 4. 编写SQL映射文件: 在mapper目录下创建一个XML文件,例如UserMapper.xml,编写SQL语句和对应的映射关系,例如: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.demo.mapper.UserMapper"> <select id="getUserById" resultType="com.example.demo.entity.User"> select * from user where id=#{id} </select> <insert id="addUser" parameterType="com.example.demo.entity.User"> insert into user(name, age) values(#{name}, #{age}) </insert> <update id="updateUser" parameterType="com.example.demo.entity.User"> update user set name=#{name}, age=#{age} where id=#{id} </update> <delete id="deleteUserById" parameterType="int"> delete from user where id=#{id} </delete> </mapper> ``` 其中,namespace指定了Mapper接口的全路径,id指定了方法名,parameterType指定了方法参数类型,resultType指定了返回值类型。 5. 编写Mapper接口: 在com.example.demo.mapper包下创建一个UserMapper.java接口,例如: ```java package com.example.demo.mapper; import com.example.demo.entity.User; import org.apache.ibatis.annotations.*; @Mapper public interface UserMapper { @Select("select * from user where id=#{id}") User getUserById(int id); @Insert("insert into user(name, age) values(#{name}, #{age})") @Options(useGeneratedKeys = true, keyProperty = "id") int addUser(User user); @Update("update user set name=#{name}, age=#{age} where id=#{id}") int updateUser(User user); @Delete("delete from user where id=#{id}") int deleteUserById(int id); } ``` 其中,@Mapper注解标识了该接口是MyBatis的Mapper接口,@Select/@Insert/@Update/@Delete注解分别对应了SQL映射文件中的select/insert/update/delete标签。 至此,MyBatis的配置和SQL映射文件的编写完成。在业务代码中使用UserMapper的方法即可操作数据库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值