Day 项目介绍与 SSM 环境搭建

介绍一个使用Java语言开发的项目,演示并如何搭建一个基于SSM(Spring+Spring MVC+MyBatis)框架的开发环境。SSM是一种常用的Java Web开发框架,它集成了Spring、Spring MVC和MyBatis,提供了一套完整的开发架构,能够快速构建可靠的Web应用程序。

环境搭建:
为了进行SSM开发,我们需要先搭建相应的环境。以下是环境搭建的步骤:

  1. 安装JDK(Java Development Kit):
    首先,我们需要安装JDK,以便能够编译并运行Java代码。从Oracle官方网站下载适用于您网络的JDK版本,并按照安装教程进行安装。

  2. 安装开发工具(IDE):
    推荐使用IntelliJ IDEA或Eclipse等Java开发工具,这些工具提供了丰富的功能和插件,方便我们进行开发和调试。

  3. 创建Maven项目:
    在开发工具中创建一个Maven项目,方便管理项目的依赖和构建过程。Maven是一个流行的构建工具,可以帮助我们管理项目的依赖、构建和部署。

  4. 配置 Maven 依赖:
    在项目的 pom.xml 文件中添加以下依赖:

<dependencies><!-- Spring 相关依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.10.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.3.10.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.10.RELEASE</version></dependency><!-- MyBatis 相关依赖 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.7</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.7</version></dependency><!-- 数据库驱动依赖 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency>
</dependencies>
```这些依赖会自动下载并添加到项目中。

配置 Spring 配置文件:
在 src/main/resources 目录下创建一个名为 applicationContext.xml 的文件,并添加以下内容:

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 配置数据源 --><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mydatabase"/><property name="username" value="root"/><property name="password" value="password"/></bean><!-- 配置 MyBatis SqlSessionFactory --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="configLocation" value="classpath:mybatis-config.xml"/></bean><!-- 配置 MyBatis Mapper 扫描 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.example.mapper"/></代码"/>
</beans>
```以上配置文件主要包括数据源的配置、MyBatis 的 SqlSessionFactory 配置以及 Mapper 扫描配置。

配置MyBatis 配置文件:
在 src/main/resources 目录下创建一个名为 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><settings><setting name="mapUnderscoreToCamelCase" value="true"/></settings>
</configuration>
```这里的配置主要用于开启数据库列名和 Java 实体类属性的下划线转驼峰命名规则的映射。

创建实体类和 Mapper 接口:
在项目中创建实体类和 Mapper 接口,这些类将用于定义数据库表和操作。

// User.java
public class User {private Long id;private String username;private String password;// 省略 getter 和 setter 方法
}
```````java
// UserMapper.java
public interface UserMapper {void save(User user);User findById(Long id);List<User> findAll();
}
```

实现Mapper接口:
创建UserMapper的实现类,并使用MyBatis的注解来映射SQL语句。

// UserMapperImpl.java
@Repository
public class UserMapperImpl implements UserMapper {@Autowiredprivate SqlSessionFactory sqlSessionFactory;@Overridepublic void save(User user) {try (SqlSession sqlSession = sqlSessionFactory.openSession()) {sqlSession.insert("save", user);sqlSession.commit();}}@Overridepublic User findById(Long id) {try (SqlSession sqlSession = sqlSessionFactory.openSession()) {return sqlSession.selectOne("findById", id);}}@Overridepublic List<User> findAll() {try (SqlSession sqlSession = sqlSessionFactory.openSession()) {return sqlSession.selectList("findAll");}}
}
```在上述示例中,我们使用了 MyBatis 的注解方式来进行 SQL 语句的映射,其中 "save"、"findById" 和 "findAll" 是对应的 SQL 语句的 ID。

编写控制器:
创建一个 Spring MVC 的控制器类,用于处理 HTTP 请求和响应。

// UserController.java
@Controller
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserMapper userMapper;@RequestMapping("/save")public String save() {User user = new User();user.setUsername("John");user.setPassword("password");userMapper.save(user);return "redirect:/user/list";}@RequestMapping("/list")public String list(Model model) {List<User> userList = userMapper.findAll();model.addAttribute("userList", userList);return "user/list";}
}
```这里我们使用了 Spring MVC 的注解方式来定义请求路径和处理方法。

创建视图文件:
在 src/main/resources/templates 目录下创建一个名为 list.html 的视图文件,用于展示用户列表。

<!-- list.html -->
<html>
<head><title>User List</title>
</head>
<body><h1>User List</h1><table><tr><th>ID</th><th>Username</th><th>Password</th></tr><tr th:each="user : ${userList}"><td th:text="${user.id}"></td><td th:text="${user.username}"></td><td th:text="${user.password}"></td></tr></table>
</body>
</html>

该视图文件使用 Thymeleaf 模板引擎来渲染用户列表数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/141683.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OOM汇总

1. 堆内存溢出 堆内存溢出通常是由于创建了过多的对象&#xff0c;而导致堆内存耗尽而发生的。以下是导致堆内存溢出的一些常见情况&#xff1a; 内存泄漏&#xff1a; 如果程序中存在内存泄漏&#xff0c;即一些对象不再被引用&#xff0c;但仍然存活于堆内存中&#xff0c;…

thinkphp5 连接多个服务器数据库

如果你的database.php 是这样&#xff0c; 这是默认的db连接配置 如果还想连接其他服务器&#xff0c;或数据库 在config.php中追加数据库配置&#xff0c; 在使用的地方调用&#xff1a; use think\Db;public function test(){$db3Db::connect(config(db3));$result $db3…

使用gitflow时如何合并hotfix

前言 在使用 git flow 流程时, 对于项目型的部署项目经常会遇到一个问题, 就是现场项目在使用历史版本时发现的一些问题需要修复, 但升级可能会有很大的风险或客户不愿意升级, 这时就要求基于历史版本进行 hotfix 修复. 基于历史发布版本的缺陷修复方式不同于最新发布版本的补…

CSS 实现文字两端对齐效果

直接上代码&#xff1a; .text{text-align: justify;text-align-last: justify;// 兼容ie (未测试)text-justify: distribute-all-lines; }注意&#xff1a; text-align-last: justify; 只对中文文字起效果。数字和英文字母则需要使用空格间隔开&#xff0c;然后使用上述方法即…

自然语言处理实战项目21-两段文本的查重功能,返回最相似的文本字符串,可应用于文本查重与论文查重

大家好,我是微学AI,今天给大家介绍一下自然语言处理实战项目21-两段文本的查重功能,返回最相似的文本字符串,可应用于论文查重。本文想实现一种文本查重功能,通过输入两段文本,从中找出这两段文本中最相似的句子。这项技术有助于检测抄袭、抄袭的论文和文章,提高知识创新…

Ubuntu22.04 FTP 搭建以及挂载

软件安装 sudo apt-get update 服务端nfs-kernel-server 客户端nfs-common sudo apt-get install -y nfs-kernel-server nfs-common创建NFS共享目录 sudo mkdir -p /nfssudo chown -R nobody:nogroup /nfs sudo chmod -R 777 /nfs配置文件 sudo vim /etc/exports# [共享目录…

08.oracle的表

oracle的表 一、与表相关的几个概念二、表的几种类型包括&#xff1a;三、对表的一些基本操作 一、与表相关的几个概念 高水位线&#xff08;High Water Mark&#xff09;&#xff1a;是指表中已经被使用的空间的最高位置。当表中的数据被删除或更新时&#xff0c;高水位线不会…

Go使用命令行输出二维码

引言 二维码&#xff08;QR code&#xff09;是一种矩阵条码的标准&#xff0c;广泛应用于商业、移动支付和数据存储等领域。在开发过程中&#xff0c;我们可能需要在命令行中显示二维码&#xff0c;这可以帮助我们快速生成和分享二维码信息。本文将介绍如何使用Go语言生成二维…

【SpringBoot】SpringBoot自动配置底层源码解析

概述 EnableAutoConfiguration源码解析SpringBoot常用条件注解源码解析SpringBoot之Mybatis自动配置源码解析SpringBoot之AOP自动配置源码解析SpringBoot Jar包启动过程源码解析 DeferredImportSelector接口 DeferredImportSelector和ImportSelector的区别在于&#xff1a; …

Ubuntu2204 搭建TFTP 服务

安装软件 sudo apt-get install tftp-hpa tftpd-hpa xinetd配置服务 配置tftp sudo vim /etc/xinetd.d/tftp 填入以下参数&#xff0c;/home/tftp 换成自己的共享目录 server tftp {socket_type dgramprotocol udp wait yes user rootserver /usr/sbin/in.tftpdserver_…

windows远程桌面登录ubuntu,黑屏闪退,

首先需要安装xrdp以后才能远程登录&#xff0c;安装命令 sudo apt-get install xrdp 这里需要注意一个问题&#xff0c;如果在ubuntu 本地登录的情况下&#xff0c;windows远程登录会出现黑屏甚至闪退的问题。原因是本地登录和远程登陆是互斥的&#xff0c;本地登录了就不能远…

Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks - 翻译学习

知识密集型NLP任务的检索增强生成 - 论文学习 文章目录 Abstract1 Introduction2 Methods2.1 Models2.2 Retriever: DPR2.3 Generator: BART2.4 Training2.5 Decoding 3 Experiments3.1 Open-domain Question Answering3.2 Abstractive Question Answering3.3 Jeopardy Questio…

java内部类初探

引言 内部类是定义在另一个类中的类&#xff0c;它曾经对于简洁地实现回调非常重要&#xff0c;不过今天lambda表达式在这方面可以做的更好。但内部类对于某些结构的构建还是很有用的。 普通内部类 常规的内部类有以下两个特点&#xff1a; 1.内部类可以对除了自己的外部类以…

医疗器械维修工程师必须重视的方面

彩虹医疗器械维修技能培训开班报名中 长期班低至五折&#xff0c; 打破常规培训模式轻松愉快技术学习&#xff01; 两个多月时间&#xff0c;提升自我&#xff01; 点击进入 彩虹实训基地 理论实践结合教学 小班授课 立即咨询 1 工程师须重视 在医疗行业中&#xff0c;…

青少年编程学习 等级考试 信奥赛NOI/蓝桥杯/NOC/GESP等比赛资料合集

一、博主愚见 在当今信息技术高速发展的时代&#xff0c;编程已经成为了一种必备的技能。随着社会对于科技人才的需求不断增加&#xff0c;青少年编程学习正逐渐成为一种趋势。为了更好地帮助青少年学习编程&#xff0c;提升他们的技能和素质&#xff0c;博主结合自身多年从事青…

MacOS下VMware Fusion配置静态IP

前言 在虚拟机安装系统后&#xff0c;默认是通过DHCP动态分配的IP&#xff0c;这会导致每次重启虚拟机ip都可能会改变&#xff0c;使用起来会有很多不便。 配置静态IP 查看主机网关地址 cat /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf 查看主机DNS&#xff0c;m…

宿主机无法连接docker里的redis问题解决(生产环境慎用)

宿主机无法连接docker里的redis问题解决&#xff08;生产环境慎用&#xff09; 问题描述解决方案 问题描述 1.连接超时 2.连接能连上但马上断开并报错 3.提示保护模式什么的 (error) DENIED Redis is running in protected mode because protected mode is enabled链接redis …

OpenCV压缩保存图像

imwrite 1.JPG格式图片是自带压缩的 IMWRITE_JPEG_QUALITY For JPEG, it can be a quality from 0 to 100 (the higher is the better). Default value is 95. IMWRITE_JPEG_PROGRESSIVE Python: cv.IMWRITE_JPEG_PROGRESSIVE Enable JPEG features, 0 or 1, default is…

总结MYSQL中VHARCHAR和TEXT

前几天在设计表结构时&#xff0c;针对表中的一个字段使用text还是使用varchar是受到了开发同学的挑战。本篇文章对text和varchar的区别做个总结。 VHARCHAR和TEXT对比 char(n)varchar(n)中括号中n代表字符的个数&#xff0c;并不代表字节个数&#xff0c;所以当使用了中文的…

笔记本分屏怎么操作?3个方法提高工作效率!

“有朋友知道笔记本怎么才能实现分屏吗&#xff1f;我在工作时&#xff0c;经常需要来回切换屏幕&#xff0c;效率真的太低了&#xff0c;有什么方法可以实现两个屏幕同时使用吗&#xff1f;” 在现代生活中&#xff0c;多任务处理已成为常态&#xff0c;而笔记本分屏技术为用户…