您的位置:首页 > 新闻 > 热点要闻 > 免费发布信息的网站平台有哪些_平面设计软件学哪个比较好_淘宝推广方法有哪些_新站整站优化

免费发布信息的网站平台有哪些_平面设计软件学哪个比较好_淘宝推广方法有哪些_新站整站优化

2025/7/12 12:31:18 来源:https://blog.csdn.net/weixin_74799820/article/details/145091591  浏览:    关键词:免费发布信息的网站平台有哪些_平面设计软件学哪个比较好_淘宝推广方法有哪些_新站整站优化
免费发布信息的网站平台有哪些_平面设计软件学哪个比较好_淘宝推广方法有哪些_新站整站优化

MyBatis

简介:

Mybatis是一款优秀的持久层框架,用于简化JDBC的开发。

Mybatis本是Apache的一个开源项目ibatis,2010年这个项目由apache迁移到了google code,并且改名为Mybatis。2013年11月迁移到github

官网:https://mybatis.org/mybatis-3/zh/index.html

01.入门程序:

使用Mybatis查询所有用户数据:

准备工作:

1.创建springboot工程、引入Mybatis相关依赖

2.准备数据库表user、实体类User

3.配置Mybatis(在application.properties中数据库连接信息)

#配置数据库的连接信息
#数据库访问的url地址
spring.datasource.url=jdbc:mysql://localhost:3306/web01
#数据库驱动类类名
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#访问数据库-用户名
spring.datasource.username=root
#访问数据库-密码
spring.datasource.password=1234

编写Mybatis程序:编写Mybatis的持久层接口,定义SQL(注解/XML)

(提示:Mybatis的持久层接口命名规范为:XxxxMapper,也称为Mapper接口。)

(注意:SpringBoot的单元测试类上需要加上@SpringBootTest,会在单元测试运行时,加载springboot的环境,测试类所在包需要与引导类包名相同或放在引导类所在包的子包下)

辅助配置
1.配置SQL提示

默认我们在UserMapper接口上加的 @Select 注解中编写SQL语句是没有提示的。 如果想让idea给我们提示对应的SQL语句,我们需要在IDEA中配置与MySQL数据库的链接。

默认我们在UserMapper接口上的 @Select 注解中编写SQL语句是没有提示的。如果想让idea给出提示,可以做如下配置:

2.配置Mybatis日志输出

默认情况下,在Mybatis中,SQL语句执行时,我们并看不到SQL语句的执行日志。 在application.properties加入如下配置,即可查看日志:

#mybatis的配置
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

02.JDBC vs Mybatis:

使用SpringBoot+Mybatis的方式操作数据库,能够提升开发效率、降低资源浪费

JDBC程序的缺点

  • url、username、password 等相关参数全部硬编码在java代码中。

  • 查询结果的解析、封装比较繁琐。

  • 每一次操作数据库之前,先获取连接,操作完毕之后,关闭连接。 频繁的获取连接、释放连接造成资源浪费

分析了JDBC的缺点之后,我们再来看一下在mybatis中,是如何解决这些问题的:

  • 数据库连接四要素(驱动、链接、用户名、密码),都配置在springboot默认的配置文件 application.properties中

  • 查询结果的解析及封装,由mybatis自动完成映射封装,我们无需关注

  • 在mybatis中使用了数据库连接池技术,从而避免了频繁的创建连接、销毁连接而带来的资源浪费。

03.数据库连接池:

数据库连接池:

  • 数据库连接池是一个容器,负责分配、管理数据库连接(Connection)。

  • 它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个

  • 释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏。

  • 优势

    • 资源重用

    • 提升系统下响应速度

    • 避免数据库连接遗漏

  • 标准接口:DataSource

    • 官方(sun)提供的数据库连接池,由第三方组织实现此接口。

    • 功能:获取连接 Connection getConnection() throws SQLException;

  • 常见产品:C3P0 DBCP Druid Hikari(SpringBoot默认)

  • Druid(德鲁伊)

    • Druid连接池是阿里巴巴开源的数据库连接池项目

    • 功能强大、性能优秀,是Java语言最好的数据库连接池之一

  • 切换连接池:

    • 引入依赖:

             <dependency><!-- Druid连接池依赖 --><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.19</version></dependency>

    • 修改配置(除四要素外加上):

      spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

04.增删改查操作:

删除用户-delete

需求:根据ID删除用户信息

SQL:delete from user where id = 5;

Mapper接口:

/*** 根据id删除数据*/
@Delete("delete from user where id = #{id}")
//可以有返回值,把void改成Integer
public void deleteById(Integer id);

(注意:DML语句执行完毕的返回值,表示该DML语句执行完毕影响的行数。)

Mybatis中的#与$:

新增用户-insert

需求:添加一个用户

SQL:insert into user(username,password,name,age) values('zhouyu','123456','周瑜',20);

Mapper接口:

/*** 新增用户*/
@Delete("insert into user(username, password, name, age) VALUES (#{username},#{password},#{name},#{age})")
public void insert(User user);
修改用户-update

需求:根据ID更新用户信息

SQL:update user set username = 'zhouyu',password = '123456',name = '周瑜',age = 20 where id = 1;

Mapper接口:

/*** 修改用户信息*/
@Update("update user set username=#{username},password=#{password},name=#{name},age=#{age} where id=#{id}")
public void update(User user);
查询用户-select

需求:根据用户名和密码查询用户信息。

SQL:select * from user where username = 'zhouyu' and password = '123456';

Mapper接口:

/*** 查询用户信息*/
@Select("select * from user where username = #{username} and password = #{password}")
public User findByUsernameAndPassword(@Param("username") String username,@Param("password") String password);

@Param注解的作用是为接口的方法形参起名字的。

说明:基于官方骨架创建的springboot项目中,接口编译时会保留方法形参名,@Param注解可以省略(#{形参名})

@Select("select * from user where username = #{uname} and password = #{pwd}")
public User findByUsernameAndPassword(String uname,String pwd);
05.XML映射配置:

在Mybatis中,既可以通过注解配置SQL语句,也可以通过XML配置文件配置SQL语句。

默认规则:

1.XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名)。

2.XML映射文件的namespace属性为Mapper接口全限定名一致。

3.XML映射文件中sql语句的id与Mapper接口中的方法名一致,并保持方法类型一致。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.mapper.UserMapper">
<!--resultType:查询返回的单条记录所封装的类型--><select id="findAll" resultType="com.itheima.pojo.User">select * from user</select>
​
</mapper>

使用Mybatis的注解,主要是来完成一些简单的增删改查功能。如果需要实现复杂的SQL功能,建议使用XML来配置映射语句。

辅助配置:

1.配置XML映射文件的位置:

#指定XML映射配置文件的位置(没有按上面的规范,XML映射配置在mapper下,不是同包同名)
mybatis.mapper-locations=classpath:mapper/*.xml

2.MybatisX是一款基于IDEA的快速开发Mybatis的插件,为效率而生。

SpringBoot配置文件

01.配置文件格式

SpringBoot项目提供了多种属性配置方式(properties、yaml、yml)

properties:臃肿、层级结构不清晰; yaml与yml:简洁、数据为中心

02.yml配置文件

格式:

1.数值前边必须有空格,作为分隔符

2.使用缩进表示层级关系,缩进时,不允许使用Tab键,只能用空格(idea中会自动将Tab转为空格)

3.缩进的空格数目不重要,只要相同层级的元素左侧对其即可

4.# 表示注释,从这个字符一直到行尾,都会被解析器忽略

(注意:在yml格式的配置文件中,如果配置项的值以0开头,值需要使用‘’引起来,因为以0开头在yml中表示8进制的数据。)

# 定义对象/Map集合
user:name: Tomage: 18gender: 男
​
#定义数组/List/Set集合
hobby:- Java- Game- Sport
​
#数据库的配置信息
spring:application:name: springboot-mybatis-quickstartdatasource:type:  com.alibaba.druid.pool.DruidDataSourceurl: jdbc:mysql://localhost:3306/web01driver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: 1234
#mybatis的相关配置
mybatis:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplmapper-locations: classpath:mapper/*.xml

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com