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

网站建设公司方维百度关键字优化价格

网站建设公司方维,百度关键字优化价格,网站首页域名有后缀影响搜索吗,珠海移动网站设计🚗MyBatis学习起始站~ 🚩本文已收录至专栏:数据库学习之旅 👍希望您能有所收获 一.什么是MyBatis (1) 引言 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDB…

🚗MyBatis学习·起始站~
🚩本文已收录至专栏:数据库学习之旅
👍希望您能有所收获

一.什么是MyBatis

(1) 引言

  • MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射
  • MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
  • MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

上述是官网对其的定义,详细可见:MyBatis中文网

**什么是持久层?框架又是啥?对比使用JDBC又有什么优势呢?**接下来让我们一个个来看看吧~

(2) 持久层

在构建复杂的应用程序时,三层架构是我们常用到的一种软件设计架构,它将一个应用程序分为三个主要的层次:表现层、业务逻辑层、数据访问(持久)层。使得应用程序可以分解为独立的、可重用的部分,从而提高开发效率和代码的可维护性以及实现不同层之间的松耦合。
在这里插入图片描述

通常情况下,持久层负责与数据存储和持久化相关的操作。它提供了一种将应用程序中的对象映射到数据存储技术(如关系型数据库)的机制,并提供了各种数据访问接口,例如CRUD(创建、读取、更新和删除)操作等,通过使用持久层,应用程序可以更方便地操作和管理数据,而不必关心具体的存储细节。

(3) 框架

  • 框架就是一个半成品软件,在框架的基础之上构建软件编写更加高效、规范、通用、可扩展。

  • 当我们写软件时,通常需要实现一些通用的功能,比如说处理HTTP请求、连接数据库、用户身份认证等等。这些通用的功能,每次写一个新软件都要重复编写,浪费时间和精力。框架就是为了解决这个问题而生的,它提供了一套通用的代码基础,包含了这些通用的功能,开发人员可以在这个基础上进行开发,不用重复写这些通用的功能,提高开发效率。

  • 通过一个框架只能完成同一项工作,例如我们使用MyBatis只能完成持久层方面开发技术。
    在这里插入图片描述

我们可以使用石膏雕像(半成品软件)快速绘画出一个漂亮的小女孩(简化开发),却不能将其绘制成一个小男孩(只能完成同一项工作)。

(4) 简化JDBC开发

  • JDBC 缺点:

    • 硬编码:连接数据库以及SQL为字符串,当发生变动再修改时过程十分繁琐且容易遗漏。
    • 操作繁琐:设置参数以及对结果集处理过程比较繁琐。
      在这里插入图片描述
  • MyBatis 简化:

    • 配置文件:通过配置文件统一管理连接以及SQL代码。
    • 自动完成:自动封装执行结果集。
      在这里插入图片描述

MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。当然MyBatis并不是唯一的持久层框架,还有许多的其他框架,但它却是国内最受欢迎的持久层框架之一。

二.MyBatis快速入门

入门_MyBatis中文网官方网站也详细介绍了如何搭建MyBatis环境,接下来让我们一起在Idea的Maven工程中通过一个简单的查询案例实践一下~

(1) 在数据库创建表

首先我们要在数据库中创建一张用于入门案例的数据表。

create database mybatis;
use mybatis;drop table if exists tb_user;create table tb_user(id int primary key auto_increment,username varchar(20),password varchar(20),gender char(1),addr varchar(30)
);INSERT INTO tb_user VALUES (1, 'zhangsan', '123', '男', '北京');
INSERT INTO tb_user VALUES (2, '李四', '234', '女', '天津');
INSERT INTO tb_user VALUES (3, '王五', '11', '男', '西安');

(2) 创建Maven工程

为了避免手动导入jar包的麻烦,我们可以创建一个Maven工程
在这里插入图片描述

(3) 导入依赖

  1. 按官方文档所述,我们要想在Maven工程中使用MyBatis必须在pom文件中导入如下坐标:
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>x.x.x</version>
</dependency>

注意:x.x.x需要改为自己想使用的版本,例如3.5.5

  1. 此外,因为我们要连接MySQL数据库,因此还要导入MySQL连接驱动。
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version>
</dependency>

注意:8.0.28可根据需要改为自己想使用的版本

  1. 有上述这些就已经能使用了,但如果你想查看运行日志信息,则还需要导入如下坐标
<!-- 添加slf4j日志api -->
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.20</version>
</dependency>
<!-- 添加logback-classic依赖 -->
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version>
</dependency>
<!-- 添加logback-core依赖 -->
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.2.3</version>
</dependency>	

要使用日志功能,除了导入上述三个坐标以外,还需要在Resource目录下创建包含以下内容的logback.xml配置文件:
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<configuration><!--CONSOLE :表示当前的日志信息是可以输出到控制台的。--><appender name="Console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>[%level] %blue(%d{HH:mm:ss.SSS}) %cyan([%thread]) %boldGreen(%logger{15}) - %msg %n</pattern></encoder></appender><logger name="com.itheima" level="DEBUG" additivity="false"><appender-ref ref="Console"/></logger><!--level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF, 默认debug<root>可以包含零个或多个<appender-ref>元素,标识这个输出位置将会被本日志级别控制。--><root level="DEBUG"><appender-ref ref="Console"/></root>
</configuration>

(4) 编写核心配置文件

MyBatis 核心配置文件的作用之一便是解决我们上述提到的硬编码问题中的连接信息。

根据官方文档从 XML 中构建 SqlSessionFactory所给的方案,我们需要在Resource目录下创建包含以下内容的mybatis-config.xml配置文件:
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><!--数据库连接信息--><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost/mybatis?useSSL=false"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments><mappers><!--加载SQL映射文件--><mapper resource="org/mybatis/example/BlogMapper.xml"/></mappers>
</configuration>

(5) 编写 SQL 映射文件

SQL 映射文件的作用便是帮助我们统一管理sql语句,在代码中解决硬编码问题。

根据官方文档从所述,我们同样需要在Resource目录下创建包含以下内容的UserMapper.xml配置文件,为了规范命名一般为表名+Mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="test"><select id="selectAll" resultType="guanzhi.pojo.User">select * from tb_user</select><insert id="xx">插入语句</insert><delete id="xx">删除语句</delete><update id="xx">更新语句</update>
</mapper>
  • 我们需要先写一个名为mapper的根标签,然后再进行一系列CRUD操作
  • namespace:名称空间,区分不同mapper的的代码
  • id: SQL语句的唯一标识,不能重复
  • resultType: 返回结果类型,例如:guanzhi.pojo.User,我们需要创建一个User类
    在这里插入图片描述
public class User {// 表字段private Integer id;private String username;private String password;private String gender;private String addr;// 为节省篇幅,需自己写一下get与set方法
}

如上即可简单完成SQL 映射文件 配置,至此我们还需要将上述MyBatis核心配置文件中的mappers改为UserMapper.xml的类路径,

    <mappers><!--加载SQL映射文件--><!--因为我们的UserMapper.xml和mybatis-config.xml在相同目录下因此只需如下配置--><mapper resource="UserMapper.xml"/></mappers>

至此我们已经完成了MyBatis的基本配置,接下来让我们一起来使用一下吧。

(6) 使用

根据官方文档所述,我们要使用基于 MyBatis 的应用,必须先加载核心配置文件,获取 SqlSessionFactory 对象,然后再进行一系列操作

public class MyBatisDemo {public static void main(String[] args) {try {// 1. 加载mybatis的核心配置文件,获取SqlSessionFactoryString resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 2. 获取SqlSession对象,用于执行sqlSqlSession sqlSession = sqlSessionFactory.openSession();// 3. 执行UserMapper中的sql语句,namespace.idList<User> userList = sqlSession.selectList("test.selectAll");System.out.println(userList);// 4.释放资源sqlSession.close();} catch (IOException e) {e.printStackTrace();}}
}

执行程序可以看到我们已经成功查询到了在数据库中的几条数据。
在这里插入图片描述

至此我们已经成功在idea中使用了MyBatis,可能许多同学会觉得过程太繁琐了,还不如不用,但是我们仔细查看可以发现,上述的很多配置几乎只需要进行一次配置即可,后续便无需进行。

三.Eclipse中搭建(补充)

在Eclipse同样可以使用MyBatis,操作步骤几乎与上述一致,只是相对没有idea那么好用而已。

  1. 例如我们创建一个动态web工程
    在这里插入图片描述

  2. 接下来就是一些几乎一致的操作,就不再赘述。


文章转载自:
http://amyotonia.rywn.cn
http://prattler.rywn.cn
http://ventripotent.rywn.cn
http://aerogenically.rywn.cn
http://taenicide.rywn.cn
http://intersect.rywn.cn
http://humanitarian.rywn.cn
http://demonstratively.rywn.cn
http://excrementitious.rywn.cn
http://weaverbird.rywn.cn
http://jeans.rywn.cn
http://ifpi.rywn.cn
http://sympathetically.rywn.cn
http://thymy.rywn.cn
http://zygotene.rywn.cn
http://pneumatometer.rywn.cn
http://gidgee.rywn.cn
http://optima.rywn.cn
http://oxytone.rywn.cn
http://ergatoid.rywn.cn
http://oosperm.rywn.cn
http://flawless.rywn.cn
http://nitrid.rywn.cn
http://theroid.rywn.cn
http://semigroup.rywn.cn
http://colza.rywn.cn
http://footie.rywn.cn
http://runless.rywn.cn
http://heist.rywn.cn
http://caliper.rywn.cn
http://oxytocin.rywn.cn
http://papmeat.rywn.cn
http://beeline.rywn.cn
http://rowland.rywn.cn
http://archer.rywn.cn
http://raillery.rywn.cn
http://dummy.rywn.cn
http://arthromeric.rywn.cn
http://convulsively.rywn.cn
http://blabbermouth.rywn.cn
http://repave.rywn.cn
http://congress.rywn.cn
http://racial.rywn.cn
http://oxycephaly.rywn.cn
http://tarnishable.rywn.cn
http://symmetric.rywn.cn
http://housemaster.rywn.cn
http://achromatism.rywn.cn
http://covary.rywn.cn
http://rotl.rywn.cn
http://reinstitution.rywn.cn
http://hygeia.rywn.cn
http://lutetian.rywn.cn
http://abbreviationist.rywn.cn
http://collegial.rywn.cn
http://feasibility.rywn.cn
http://tiltmeter.rywn.cn
http://myrmidon.rywn.cn
http://suddenness.rywn.cn
http://distich.rywn.cn
http://subservient.rywn.cn
http://tortola.rywn.cn
http://biphenyl.rywn.cn
http://fredericton.rywn.cn
http://filmnoir.rywn.cn
http://illuminant.rywn.cn
http://socage.rywn.cn
http://outlay.rywn.cn
http://yukin.rywn.cn
http://decompensate.rywn.cn
http://histogenically.rywn.cn
http://vientiane.rywn.cn
http://seiche.rywn.cn
http://reprisal.rywn.cn
http://hairdress.rywn.cn
http://ragworm.rywn.cn
http://bobbin.rywn.cn
http://documental.rywn.cn
http://curite.rywn.cn
http://received.rywn.cn
http://austenian.rywn.cn
http://plowland.rywn.cn
http://proleptic.rywn.cn
http://yellowback.rywn.cn
http://cardiograph.rywn.cn
http://dcvo.rywn.cn
http://physiographer.rywn.cn
http://duck.rywn.cn
http://physiatrics.rywn.cn
http://chintz.rywn.cn
http://ford.rywn.cn
http://tremolando.rywn.cn
http://ribonucleoprotein.rywn.cn
http://rebuild.rywn.cn
http://recalcitrancy.rywn.cn
http://hullabaloo.rywn.cn
http://outpensioner.rywn.cn
http://dieresis.rywn.cn
http://utica.rywn.cn
http://anthea.rywn.cn
http://www.15wanjia.com/news/69197.html

相关文章:

  • 都匀网站开发的公司优化整站
  • 成立一个网站需要多少钱360搜索引擎入口
  • 深圳坪山网站建设国外推广网站有什么
  • 网易企业邮箱和163邮箱区别seo北京公司
  • 网站建设平台seo网站推广企业
  • 成交型网站制作任何小说都能搜到的软件
  • 网站建设公司开票开什么内容ip或域名查询网
  • 哪个网站可以做ppt互联网营销外包公司
  • wordpress无法加载图片开鲁网站seo
  • 滨湖网站制作成都网络推广公司
  • b2b网站如何做推广抖音广告投放平台官网
  • 濮阳做网站公司seo刷词工具在线
  • 卖东西怎么做网站近期出现的病毒叫什么
  • 做网站前端难吗百度学术论文查重入口
  • 网站如何做404今日nba数据帝
  • 童装 技术支持 东莞网站建设ks免费刷粉网站推广马上刷
  • 音乐网站制作视频教学搭建网站的五大步骤
  • 做物流网站电话号码最近10个新闻
  • 做网站的空间是什么最吸引人的营销广告词
  • 橙光音乐一家做音乐的网站seo超级外链发布
  • 顺德建网站的公司seo分析及优化建议
  • 社交网站模版申请网址怎么申请的
  • 珠海移动网站建设费用友情链接交换软件
  • 在电脑上做网站的软件网站seo网络优化
  • 阳江哪里做网站百度刷搜索词
  • 如何做商城网站推广普通话手抄报内容怎么写
  • 宿迁做网站 宿迁网站建设什么叫优化
  • 国内最好的在线网站建设seo网络推广师招聘
  • 网站改版做301重定向海外seo是什么
  • 网站整体运营软文文章