MyBatis是一款优秀的持久层框架,用于简化JDBC的开发。
JDBC:(java DataBase Connectivity), 就是使用Java语言操作关系型数据库的一套API
本质:
sun公司官方定义的一套操作所有关系型数据库的规范,即接口。
各个数据库厂商去实现这套接口,提供数据库驱动jar包。
我们可以使用这套接口(JDBC)编程,真正执行的代码时驱动jar包中的实现类。
使用Mybatis查询所有用户数据
1.准备工作(创建springboot工程,数据库表user, 实体类User)
2.引入MYbatis的相关依赖,配置Mybatis
MyBatis依赖
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.3.0
com.mysql
mysql-connector-j
runtime
org.springframework.boot
spring-boot-starter-test
test
配置
#配置数据库的连接信息 - 四要素
#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/itcast
#连接数据库的名用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=123456
3.编写SQL语句(注解/XML)
UserMapper
@Mapper // 在运行时,会制动的生成该接口的实现类对象(代理对象),并且将该对象交给IOC容器管理
public interface UserMapper {
//查询全部用户信息
@Select("select * from user")
public List list();
}
--数据库连接池是个容器,负责分配,管理数据库连接(Connection)
--它允许应用程序重复使用一个现有的数据库连接,而不时重复建立一个
--释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏
资源重用
提升系统响应速度
避免数据库连接遗漏
Hikari(springboot默认)
Druid (alibaba)
官网:druid/druid-spring-boot-starter at master · alibaba/druid (github.com)
1.导入maven依赖
com.alibab
druid-spring-boot-starter
1.2.8
2. 配置数据库连接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/itcast
spring.datasource.username=root
spring.datasource.password=123456
lombok是一个实用的Java类库,能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,并可以生成日志变量,简化java开发,提高效率。
org.projectlombok
lombok
@Getter/@Setter
@ToString =========> @Date
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
#指定mybatis输出日志的位置,输出控制台
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
接口方法:
删除
//根据ID删除数据
@Delete("delete from emp where id = #{id}")
public void delete(Integer id);
SQL注入是通过操作输入的数据来修改事先定义好的SQL语句,以达到执行代码对服务器进行攻击的方法。
#{...}:执行SQL时,会将#{...}替换为?,生成预编译SQL,会自动设置参数值。
使用时机: 参数传递,都使用#{...}
${...}:拼接SQL。直接将参数拼接在SQL语句中,存在SQL注入问题
使用时机:如果对表名,列表进行动态设置时使用