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

MybatisWebApp

如何构建一个有关Mybatis的Web?

 

 

 

在这里给出我自己的一些配置。我的TomCat版本:10.1.28 ,IDEA版本:2024.1.4

Pom.XML文件

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>Mybatis-001-web</artifactId><packaging>war</packaging><version>1.0</version><name>Mybatis-001-web Maven Webapp</name><url>http://maven.apache.org</url><dependencies><!-- MyBatis 依赖 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.16</version></dependency><!-- MySQL 连接驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><!-- Logback 日志依赖 --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.11</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.2.11</version></dependency><dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifactId><version>5.0.0</version><scope>provided</scope></dependency></dependencies><build><finalName>Mybatis-001-web</finalName></build>
</project>

JDBC.properties文件

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/testmybatis
jdbc.username=root
jdbc.password=gege5211314

Mybatis-config核心文件

通过JDBC.properties来动态获取

<?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><properties resource="jdbc.properties" /><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><!--           jdbc:mysql://localhost:3306/     数据库的名称--><property name="url" value="${jdbc.url}"/><!--                自己管理的账号密码--><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments><!--执行XxxMapper.xml文件的路径--><!--resource属性自动会从类的根路径下开始查找资源。--><!--    <mapper resource="AccountMapper.XML"/>:告诉 MyBatis 从类路径的根目录加载名为 Mapper.XML 的 SQL 映射文件--><mappers><mapper resource="AccountMapper.XML"/></mappers>
</configuration>

日志的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false"><!-- 控制台输出 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!-- 格式化信息: 始终显示线程名, %thread表示线程名, %-5level: 级别从左显示5个字符宽度的msg,日志消息。%n是换行符 --><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder></appender><!-- mybatis log 配置 --><logger name="com.apache.ibatis" level="TRACE"/><logger name="java.sql.Connection" level="DEBUG"/><logger name="java.sql.Statement" level="DEBUG"/><logger name="java.sql.PreparedStatement" level="DEBUG"/><!-- 日志输出级别,logback日志级别依次存在:TRACE < DEBUG < INFO < WARN < ERROR --><root level="DEBUG"><appender-ref ref="STDOUT"/><appender-ref ref="FILE"/></root>
</configuration>

web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"version="6.0"><display-name>Archetype Created Web Application</display-name>
<!--  <servlet>-->
<!--    <servlet-name>test</servlet-name>-->
<!--    <servlet-class>web.AccountServlet</servlet-class>-->
<!--  </servlet>-->
<!--  <servlet-mapping>-->
<!--    <servlet-name>test</servlet-name>-->
<!--    <url-pattern>/transfer</url-pattern>-->
<!--  </servlet-mapping>-->
</web-app>

映射文件

负责写sql语句

<?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="account">
<select id="selectByActno" resultType="pojo.Account">select * from t_act where actno = #{actno}
</select>
<!--    insert语句 id 是sql语句的唯一标识,这个id就代表了这条sql语句--><update id="updateByActno">update t_act set balance = #{balance} where actno = #{actno}</update></mapper>

Mybatis的webapp和JavaWeb的webapp有什么区别?

关键区别在于使用的技术栈:

  1. JavaWeb 的 Web 应用:

    • 传统的 JavaWeb 应用 是基于 Servlet/JSP 的应用,直接使用 Java Servlet API 处理 HTTP 请求和响应,通常包括:
      • Servlet
      • JSP(JavaServer Pages)
      • HTML/CSS/JavaScript
      • 数据库访问通常通过 JDBC 完成,直接在 Java 代码中执行 SQL 语句。
  2. MyBatis 的 Web 应用:

    •  MyBatis 的 Web 应用 也是基于 JavaWeb 应用的,但 MyBatis 被引入作为 ORM(对象关系映射)框架,简化了数据库操作。相比传统的 JDBC,MyBatis 提供了更好的 SQL 映射机制,并将 SQL 映射文件与 Java 方法进行绑定。

    • 在 MyBatis 应用中,你不再需要手动编写繁琐的 JDBC 代码,而是通过 MyBatis 的映射文件和 DAO 类来简化数据库的操作。
    • MyBatis 本身不改变 JavaWeb 应用的基本结构,它只是用来代替 JDBC 执行数据库查询和更新。 

MyBatis 引入的好处:

  • 简化数据库访问:减少了手动编写 JDBC 代码的麻烦,提供了更清晰的 SQL 和 Java 代码分离的方式。
  • 自动映射:MyBatis 可以自动将 SQL 查询结果映射到 Java 对象,大大减少了手动操作的代码量。
  • 动态 SQL:通过 MyBatis 的动态 SQL 特性,可以根据条件灵活生成不同的 SQL 语句。

 


http://www.mrgr.cn/news/51555.html

相关文章:

  • 剖析线程池实现原理
  • k8s和ipvs、lvs、ipvsadm,iptables,底层梳理,具体是如何实现的
  • Blob详解
  • 【Python入门】提升 Python 水平的高级指南
  • Java传递对象是值传递还是引用传递?
  • 错误:SyntaxError: f-string: unmatched ‘(‘
  • 你必须知道postman和Jmeter做接口测试区别
  • 粘包与分包
  • 程序员转行AI 应用赛道太香了!!
  • Codeforces Round 926 (Div. 2) D题 Sasha and a Walk in the City(树形dp)
  • 【Flutter】Dart:pubspec.yaml文件
  • 2024_E_100_英文输入法
  • SpringBoot项目:mybatis升级mybatis-plus
  • Gin框架操作指南12:完结篇
  • Java mybatis day1015
  • 免费分享1885页Python电子书,耗时200小时整理!!!
  • 如何搭建使用采购管理系统?
  • Flask 将表单数据发送到模板
  • T2彩色图片分类
  • 数据结构——广义表