当前位置: 首页 > news >正文

官方网站建设哪家公司好中国会议营销网站

官方网站建设哪家公司好,中国会议营销网站,百度竞价代理公司,成都旅游视频文章目录 1. 简介2. 快速入门2.1 前置准备2.2 要点解析 3. 辅助配置3.1 配置 SQL 提示3.2 配置 Mybatis 日志输出 4. 增删改查操作 (注解)4.1 删除 (Delete)4.2 增加 (Insert)4.3 修改 (Update)4.4 查询 (Select) 5. XML 映射配置5.1 概念5.2 使用方法 6. 为什么使用 Mybatis 1…

文章目录

      • 1. 简介
      • 2. 快速入门
        • 2.1 前置准备
        • 2.2 要点解析
      • 3. 辅助配置
        • 3.1 配置 SQL 提示
        • 3.2 配置 Mybatis 日志输出
      • 4. 增删改查操作 (注解)
        • 4.1 删除 (@Delete)
        • 4.2 增加 (@Insert)
        • 4.3 修改 (@Update)
        • 4.4 查询 (@Select)
      • 5. XML 映射配置
        • 5.1 概念
        • 5.2 使用方法
      • 6. 为什么使用 Mybatis

1. 简介

  • MyBatis 是一款优秀的 持久层 框架,用于简化 JDBC 的开发
  • MyBatis 是 Apeche 的一个开源项目 iBatis,2010 年迁移到了 google code,改名为 MyBatis,2013 年迁移到 Github
  • 官网:点击进入

2. 快速入门

2.1 前置准备
  • (1 )准备工作

    • 创建 SpringBoot 工程、引入 Mybatis 相关依赖 (SQL/MyBatis Framework 和相关数据库)
    • 在这里插入图片描述
  • ( 2 ) 准备对应的用户表对象

    • 在引导类所在包下创建一个 pojo
    • 创建 User 实体类,放在 pojo 包下,对标 SQL 表
    • 实体类:实体类的属性名与表中的字段名一一对应。实体类放在 pojo 包下。
@Data  
@NoArgsConstructor  
@AllArgsConstructor  
public class User {  private Integer id; //ID  private String username; //用户名  private String password; //密码  private String name; //姓名  private Integer age; //年龄}
  • ( 3 ) 重点:编写 Mybatis :编写 Mybatis 的持久层接口,定义 SQL (注解/XML)
    • 在引导类所在包下创建一个 mapper 包,在该包下创建接口 UserMapper
    • 命名规范:XxxMapper,也成为 Mapper 接口
@Mapper
public interface UserMapper {@Select("select * from user")public List<User> findAll();
}
  • (4 ) 重点:配置 Mybatis (在 application. Properties 中数据库连接信息)
    • 以 MySQL 为例 (端口号 3306)
#数据库访问的url地址
spring.datasource.url=jdbc:mysql://localhost:3306/‘数据库名’  
#数据库驱动类类名  
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver  
#访问数据库-用户名  
spring.datasource.username=root  
#访问数据库-密码  
spring.datasource.password=root@1234
  • ( 5 ):单元测试
    • src 底下的 test 目录下,已经创建好了测试类,改造即可
@SpringBootTest
class SpringbootMybatisQuickstartApplicationTests {@Autowiredprivate UserMapper userMapper;@Testpublic void testFindAll(){List<User> userList = userMapper.findAll();for (User user : userList) {System.out.println(user);}}
}
2.2 要点解析

编写 Mybatis 中

  • @Mapper 注解:表示是mybatis中的Mapper接口
    • 程序运行时,框架会自动生成接口的实现类对象(代理对象),并给交Spring的IOC容器管理
  • @Select 注解:代表的就是select查询,用于书写select查询语句

单元测试中

  • @SpringBootTest:表示的是已经与 SpringBoot 整合
  • 测试类运行时,会自动加载 IOC 容器,所以我们直接通过@Autowired 注解注入,即可进行测试

3. 辅助配置

  • 在 Mybatis 中,有两个普遍的辅助配置,一个是配置 SQL 提示 (提示 SQL 语句),一个是配置 Mybatis 日志输出 (运行时查看 SQL 语句执行日志)
3.1 配置 SQL 提示

注意:新版本 idea 已经自动配置,如果为新版,请自行跳过

  1. 打开右边的 Database,选择创建一个数据源
    在这里插入图片描述

  2. 连接对应数据库
    在这里插入图片描述

  3. 选择让 idea 给出提示
    在这里插入图片描述

3.2 配置 Mybatis 日志输出

application.properties 加入配置, 即可在控制台查看日志

mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

在这里插入图片描述

4. 增删改查操作 (注解)

  • 在 mybatis 中,有两种使用方法,一种是通过注解,一种是通过 XML 配置,注解一般是完成一些简单的增删改查功能
  • 注解主要通过在 Mapper 接口方法通过参数占位符 #{ } 占位来实现 SQL 预编译,在单元测试中编写具体逻辑来实现
  • 以下将增删改查的例子作为示例
4.1 删除 (@Delete)
  • 需求:根据 ID 删除用户信息
  • Mapper 接口
@Delete("delete from user where id =#{id}")
public void deleteById(Integer id);
  • 单元测试类
@Test
public void testDeleteById(){userMapper.deleteById(36);
}
4.2 增加 (@Insert)
  • 需求:添加一个用户
  • Mapper 接口
@Insert("insert into user(username,password,name,age) values(#{username},#{password},#{name},#{age})")
public void insert(User user);
  • 单元测试类
@Test
public void testInsert(){User user = new User();user.setUsername("admin");user.setPassword("123456");user.setName("管理员");user.setAge(30);userMapper.insert(user);
}
4.3 修改 (@Update)
  • 需求:根据 ID 更新用户信息
  • Mapper 接口
@Update("update user set username = #{username},password = #{password},name = #{name},age = #{age} where id = #{id}")
public void update(User user);
  • 单元测试类
@Test
public void testUpdate(){User user = new User();user.setId(6);user.setUsername("admin666");user.setPassword("123456");user.setName("管理员");user.setAge(30);userMapper.update(user);
}
4.4 查询 (@Select)
  • 需求:根据用户名和密码查询用户
  • Mapper 接口
@Select("select * from user where username = #{username} and password = #{password}")
public User findByUsernameAndPassword(@Param("username") String username, @Param("password") String password);
  • 单元测试类
@Test
public void testFindByUsernameAndPassword(){User user = userMapper.findByUsernameAndPassword("admin666", "123456");System.out.println(user);
}

细节:在 Mapper 接口中,我们通过 @Param 注解来指定参数的名称,是因为在字节码文件中,变量名不能保存,#{ } 查询不到信息。

  • 在官方骨架创建的 springboot 项目中,@Param 注解可以省略

5. XML 映射配置

5.1 概念

Mybatis 的开发的两种方式,第一种是注解,第二种就是 XML
XML 主要用于完成复杂的 SQL 功能

XML 配置文件规范

  1. XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名)
  2. XML映射文件的namespace属性为Mapper接口全限定名一致
  3. XML映射文件中sql语句的id与Mapper接口中的方法名一致,并保持返回类型一致。
5.2 使用方法
  1. 创建 XML 映射文件 (遵守规范 1 ,都在 com. backend. mapper 包下,都叫 Usermapper,只是为 xml 文件)
    在这里插入图片描述
  2. 编写并配置 XML 映射文件 (官方网站)
<?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=""></mapper>
  1. 配置 XML 映射文件 (以编写 select 方法为例)
  • namescpace 里面是 UserMapper 的全限定名
  • <select> 标签:用于编写 select 查询语句
    - id 里面是 UserMapper 里的方法名
    - resuletType 里面是 User 的全限定名
<?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.backend.mapper.UserMapper">  <!--    resultTyle : 查询返回的单条数据所封装的类型-->  <select id="findAll" resultType="com.backend.pojo.User">  select id,username,name,age from user  </select>  
</mapper>
  1. 此时 Mapper 演示
//这里没有注解
List<User> findAll();
  • 全限定名的获取方法:选中方法名,右键,选择 Copy->Copy Reference 即可复制
    在这里插入图片描述

6. 为什么使用 Mybatis

先看一下 JDBC 程序的缺点:

  • Url、username、password 等相关参数全部硬编码在 java 代码中。
  • 查询结果的解析、封装比较繁琐。
  • 每一次操作数据库之前,先获取连接,操作完毕之后,关闭连接。频繁的获取连接、释放连接造成资源浪费。

再看以下 Mybatis 是如何解决这些问题

  • 数据库连接四要素 (驱动、链接、用户名、密码),都配置在 springboot 默认的配置文件 application. Properties 中
  • 查询结果的解析及封装,由 mybatis 自动完成映射封装,我们无需关注
  • 在 mybatis 中使用了数据库连接池技术,从而避免了频繁的创建连接、销毁连接而带来的资源浪费。

这篇文章到此结束,感谢观看

http://www.dtcms.com/a/570245.html

相关文章:

  • 贵阳网站制作软件中国建设银行网站企业网银收费
  • kotlin常用语法点理解
  • STM32是什么?
  • 提高网站的访问速度网站后缀net
  • 安卓网站开发c 网站开发 书
  • 网站编辑 图片批量免费素材网站无版权
  • 给网站网站做优化重庆网站编辑职业学校
  • 【双机位A卷】华为OD笔试之【排序】双机位A-银行插队【Py/Java/C++/C/JS/Go六种语言】【欧弟算法】全网注释最详细分类最全的华子OD真题题解
  • 巴彦淖尔网站建设公司互联网服务公司有哪些
  • 国家建设部网站倪虹旅游公司的网站怎么做
  • 医院做网站备案都需要什么网站判断手机跳转代码
  • 荆门网站建设514885网站如何添加内容
  • 电子商务的网站建设分析建设银行东莞招聘网站
  • 杭州大型网站建设彩票网站建设 极云
  • Spring-cloud 主键loadbalance
  • 网页模板下载网站知乎教育机构网站建设方案书
  • 高端网站建设浩森宇特电气行业网站建设多少钱
  • php网站开发考试定制版app
  • 得到Class类的方法及所有类型的Class对象
  • 网站keywords中企动力做网站行吗
  • 友情链接中有个网站域名过期了会影响wordpress站内链接
  • 虚幻引擎5 GAS开发俯视角RPG游戏 P07-04 输入配置数据资产
  • 网站建设需要注意哪些内容电商o2o是什么意思
  • 反向传播在GAN训练中的作用
  • 架构进阶——解读50页大型集团企业IT基础架构应用运维体系解决方案【附全文阅读】
  • 电子商务网站建设编码广州微信网站建设平台
  • HTML炫酷烟花⑨
  • 网站评论怎么做的想做一个网站平台怎么做的
  • 网站模板制作与安装教程公司注册后每年的费用
  • 【java基础语法】------方法