MyBatis快速入门
? ? ? ? MyBatis是一款优秀的持久层框架,用于简化JDBC的开发。
JDBC:(java DataBase Connectivity), 就是使用Java语言操作关系型数据库的一套API
? ? ? ? 本质:
? ? ? ? ? ? ? ? sun公司官方定义的一套操作所有关系型数据库的规范,即接口。
? ? ? ? ? ? ? ? 各个数据库厂商去实现这套接口,提供数据库驱动jar包。
? ? ? ? ? ? ? ? 我们可以使用这套接口(JDBC)编程,真正执行的代码时驱动jar包中的实现类。
使用Mybatis查询所有用户数据
? ? ? ? 1.准备工作(创建springboot工程,数据库表user, 实体类User)
? ? ? ? 2.引入MYbatis的相关依赖,配置Mybatis? ? ? ?
? ? ? ?MyBatis依赖
<!-- mybatis的起步依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.0</version>
</dependency>
<!--mysql驱动包-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<!--老版本的驱动包-->
<!-- <dependency>-->
<!-- <groupId>com.mysql</groupId>-->
<!-- <artifactId>mysql-connector-j</artifactId>-->
<!-- <scope>runtime</scope>-->
<!-- </dependency>-->
<!--springboot单元测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
????????配置
#配置数据库的连接信息 - 四要素
#驱动类名称
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<User> list();
}
数据库连接池
? ? ? ? --数据库连接池是个容器,负责分配,管理数据库连接(Connection)
? ? ? ? --它允许应用程序重复使用一个现有的数据库连接,而不时重复建立一个
? ? ? ? --释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏?
? ? ? ? 资源重用
? ? ? ? 提升系统响应速度
? ? ? ? 避免数据库连接遗漏
? ? ? ? 切换Druid数据库连接池
? ? ? ? ? ? ? ? Hikari(springboot默认)??
? ? ? ? ? ? ? ? Druid (alibaba)
? ? ? ? ? ? ? ? 官网:druid/druid-spring-boot-starter at master · alibaba/druid (github.com)
? ? ? ? ? ? ? ? 1.导入maven依赖
<dependency>
<groupId>com.alibab</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<scope>1.2.8</scope>
</dependency>
? ? ? ? ? ? ? ? 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
? ? ? ? lombok是一个实用的Java类库,能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,并可以生成日志变量,简化java开发,提高效率。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
@Getter/@Setter
@ToString? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? =========>? ? ? ? ? ? ? ? @Date
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
Mybatis-基础操作
#指定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语句中,存在SQL注入问题
? ? ? ? 使用时机:如果对表名,列表进行动态设置时使用
????????
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!