前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java进阶-主流框架总结与详解(下)

Java进阶-主流框架总结与详解(下)

原创
作者头像
Damon小智
发布2024-03-18 04:14:53
1150
发布2024-03-18 04:14:53
举报
文章被收录于专栏:Java全栈文档库

四、MyBatis持久层框架

MyBatis是一个优秀的持久层框架,通过XML或注解的方式将Java方法映射到SQL查询。MyBatis相比Hibernate,更加灵活,更适用于需要对SQL进行精细控制的场景。它支持动态SQL、延迟加载、存储过程调用等特性,为开发者提供了丰富的操作数据库的方式。

1、MyBatis框架特性

MyBatis 是一个优秀的持久层框架,具有以下核心特性:

  • 简化的SQL操作: MyBatis通过XML或注解的方式将Java方法映射到SQL查询,使得SQL操作更加简洁明了。
  • 灵活的映射: MyBatis支持将查询结果映射为Java对象,使得数据库操作更贴近于面向对象的编程思想。
  • 缓存机制: MyBatis提供了一级缓存和二级缓存,可以有效地提高数据访问的性能。
  • 动态SQL: MyBatis支持动态SQL,可以根据条件动态生成SQL语句,提高了SQL的灵活性和可维护性。
  • 与Spring集成: MyBatis与Spring框架无缝集成,通过Spring的依赖注入管理MyBatis的Mapper对象,简化程序的配置和开发。

2、MyBatis框架的目录结构

mybatis-project/

├── src/

│ ├── main/

│ │ ├── java/

│ │ │ └── com/

│ │ │ └── example/

│ │ │ ├── mapper/

│ │ │ │ └── EntityMapper.java

│ │ │ └── model/

│ │ │ └── Entity.java

│ │ └── resources/

│ │ └── mybatis-config.xml

│ └── test/

│ └── java/

│ └── com/

│ └── example/

│ └── EntityMapperTest.java

└── pom.xml

3、基于MyBatis框架的代码示例

以下是一个使用MyBatis进行数据持久化的简单示例:

Entity.java: 实体类,对应数据库中的表。

代码语言:java
复制
package com.example.model;

public class Entity {
    private Long id;
    private String name;
    private Integer age;

    // Getters and setters
    // 省略...
}

EntityMapper.java: MyBatis的Mapper接口,定义了对实体类进行增删改查的方法。

代码语言:java
复制
package com.example.mapper;

import com.example.model.Entity;
import java.util.List;

public interface EntityMapper {
    void insert(Entity entity);
    void update(Entity entity);
    void delete(Long id);
    Entity findById(Long id);
    List<Entity> findAll();
}

mybatis-config.xml: MyBatis的配置文件,配置了数据源、Mapper接口等信息。

代码语言:xml
复制
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//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.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mydatabase"/>
                <property name="username" value="root"/>
                <property name="password" value="password"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="com/example/mapper/EntityMapper.xml"/>
    </mappers>
</configuration>

EntityMapper.xml: MyBatis的Mapper XML文件,定义了SQL语句和与之对应的Mapper接口方法。

代码语言:xml
复制
<?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.example.mapper.EntityMapper">
    <resultMap id="BaseResultMap" type="com.example.model.Entity">
        <id column="id" property="id" jdbcType="BIGINT"/>
        <result column="name" property="name" jdbcType="VARCHAR"/>
        <result column="age" property="age" jdbcType="INTEGER"/>
    </resultMap>

    <sql id="Base_Column_List">
        id, name, age
    </sql>

    <insert id="insert" parameterType="com.example.model.Entity">
        INSERT INTO entity (name, age) VALUES (#{name}, #{age})
    </insert>

    <update id="update" parameterType="com.example.model.Entity">
        UPDATE entity SET name = #{name}, age = #{age} WHERE id = #{id}
    </update>

    <delete id="delete" parameterType="java.lang.Long">
        DELETE FROM entity WHERE id = #{id}
    </delete>

    <select id="findById" resultMap="BaseResultMap" parameterType="java.lang.Long">
        SELECT <include refid="Base_Column_List"/> FROM entity WHERE id = #{id}
    </select>

    <select id="findAll" resultMap="BaseResultMap">
        SELECT <include refid="Base_Column_List"/> FROM entity
    </select>
</mapper>

这个示例展示了如何使用MyBatis进行简单的数据持久化操作,包括定义实体类、Mapper接口和XML文件,并实现了对数据库中实体的增删改查功能。


五、Apache Struts

Apache Struts是一个流行的Web应用程序框架,提供了MVC架构的支持。Apache Struts基于Java Servlet和JavaServer Pages(JSP)技术,将应用程序分为模型(Model)、视图(View)和控制器(Controller)三层。它提供了丰富的标签库、表单验证、国际化等功能,为开发者构建可维护的Web应用程序提供了便利。

1、Struts框架的目录结构

代码语言:xml
复制
struts-example/
├── src/
│   └── com/
│       └── example/
│           └── action/
│               └── HelloAction.java
├── WebContent/
│   ├── META-INF/
│   │   └── MANIFEST.MF
│   ├── WEB-INF/
│   │   ├── lib/
│   │   │   └── (Struts相关jar包)
│   │   ├── classes/
│   │   │   └── (编译后的.class文件)
│   │   └── struts.xml
│   └── hello.jsp
└── pom.xml

2、基于Struts框架的代码示例

  • src/com/example/action/:存放Action类的源代码。
  • WebContent/:Web应用程序的根目录。
    • META-INF/:存放项目的元数据信息。
    • WEB-INF/:存放Web应用程序的配置文件和部署描述符。
      • lib/:存放Struts框架和其他依赖的jar包。
      • classes/:存放编译后的.class文件。
      • struts.xml:Struts框架的配置文件,定义了Action和视图之间的映射关系。
    • hello.jsp:JSP视图页面,展示来自Action的数据。

以下是一个简单的Apache Struts的代码示例:

HelloAction.java: Struts的Action类,处理来自前端的请求。

代码语言:java
复制
package com.example.action;

import com.opensymphony.xwork2.ActionSupport;

public class HelloAction extends ActionSupport {

    private String message;

    public String execute() {
        message = "Hello, Struts!";
        return SUCCESS;
    }

    public String getMessage() {
        return message;
    }
}

hello.jsp: 视图页面,展示来自Action的数据。

代码语言:jsp
复制
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Apache Struts Example</title>
</head>
<body>
    <h1>${message}</h1>
</body>
</html>

struts.xml: Struts配置文件,配置了Action和视图的映射关系。

代码语言:xml
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
    <package name="default" extends="struts-default">
        <action name="hello" class="com.example.action.HelloAction">
            <result name="success">/hello.jsp</result>
        </action>
    </package>
</struts>

这个示例展示了一个简单的Apache Struts应用程序,包括了一个Action类、一个JSP视图页面以及相关的Struts配置文件。


六、Java框架总结

Java框架为开发人员提供了丰富的工具和功能,帮助他们更高效地构建应用程序。本文介绍了一些常用的Java框架,包括Spring框架、Hibernate框架等。通过对这些框架的介绍与详解,读者可以更好地理解它们的特点和优势,为选择合适的框架和提升开发效率提供参考。希望本文能够对读者在Java开发中的实践与探索起到一定的指导作用。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 四、MyBatis持久层框架
    • 1、MyBatis框架特性
      • 2、MyBatis框架的目录结构
        • 3、基于MyBatis框架的代码示例
        • 五、Apache Struts
          • 1、Struts框架的目录结构
            • 2、基于Struts框架的代码示例
            • 六、Java框架总结
            相关产品与服务
            数据库
            云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档