SSM框架整合

news2024/11/25 14:35:54

1.创建数据库表

数据库环境搭建

CREATE DATABASE `ssmbuild`;

USE `ssmbuild`

DROP TABLE IF EXISTS `books`;

CREATE TABLE `books`(
bookID INT(10) NOT NULL AUTO_INCREMENT COMMENT '书id',
bookName VARCHAR(100) NOT NULL ,
bookCounts INT(11) NOT NULL ,
detail VARCHAR(200) NOT NULL ,
KEY bookID (bookID)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

INSERT INTO books (bookID,bookName,bookCounts,detail)VALUES
(1,'java',1,'从入门到放弃'),
(2,'MySQL',10,'从删库到跑路'),
(3,'Linux',5,'从进门到坐牢');

2.搭建IDEA环境

创建普通Maven项目,添加web框架4.0

2.1添加pom.xml依赖

<!--  依赖:junit,数据库驱动,连接池,servlet ,jsp,mybatis,mybatis-spring ,spring  -->

    <dependencies>
   <!-- Junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <!-- MySQL -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!-- 数据库连接池 c3p0-->
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>
        <!-- Servlet JSP -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

<!--   mybatis     -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.2</version>
        </dependency>

<!--    spring    -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>


    </dependencies>


2.2静态资源导出问题

<!--  静态资源导出问题  -->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

3.IDEA连接数据库

 

 4.构建基本结构和配置框架

4.1 mybatis-config.xml

<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

</configuration>

4.2 applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<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
        https://www.springframework.org/schema/beans/spring-beans.xsd">
 
 
</beans>

5.mybatis层的编写

database.properties文件的编写

jdbc.driver=com.mysql.jdbc.Driver
#如果使用的是MySQL8.0+,增加一个时区的配置;&serverTimezone=Asia/Shanghai
jdbc.url=jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=2001

Dao层 

<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--配置数据源,交给spring去做-->
     <typeAliases>
<!--     把pojo下的类起别名,直接是类名小写    -->
         <package name="com.kuang.pojo"/>
     </typeAliases>

    <mappers>
        <mapper class="com.kuang.dao.BooksMapper"/>
    </mappers>
</configuration>

 

<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kuang.dao.BooksMapper">

    <insert id="addBook" parameterType="Books">
        INSERT INTO books (bookName,bookCounts,detail) VALUES (#{bookName},#{bookCounts},#{detail});
    </insert>

    <delete id="deleteBook" parameterType="int">
        delete
        from books
        where bookID=#{bookID};
    </delete>

    <update id="updateBook" parameterType="Books">
        UPDATE
            `ssmbuild`.`books`
        SET
            `bookName` =#{bookName},
            `bookCounts` = #{bookCounts},
            `detail` = #{detail}
        WHERE `bookID` = #{bookID};
    </update>

    <select id="queryBookByID" resultType="Books">
        select * from `ssmbuild`.`books`   WHERE `bookID` = #{bookID};
    </select>

    <select id="findAllBooks" resultType="Books">
        select * from `ssmbuild`.`books`;
    </select>
</mapper>

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

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

相关文章

【Netty】NIO基础(三大组件、文件编程)

文章目录 三大组件Channel & BufferSelector ByteBufferByteBuffer 正确使用姿势ByteBuffer 内部结构ByteBuffer 常见方法分配空间向 buffer 写入数据从 buffer 读取数据mark 和 reset 字符串与 ByteBuffer 互转Scattering ReadsGathering Writes粘包、半包分析 文件编程Fi…

美团青龙教程(2023.3.2最新版)附脚本

这次直接放上leaffish大佬的库地址吧&#xff0c;美团脚本也在里面 &#xff08;此为最新脚本&#xff09; ql raw https://raw.githubusercontent.com/leafTheFish/DeathNote/main/meituanV3.js /* 美团 v3.02 新版美团仅支持青龙等nodejs环境, 不支持圈X 自动领券和完成一…

HTML5+CSS3+JS小实例:快捷菜单图标按钮交互特效

实例:快捷菜单图标按钮交互特效 技术栈:HTML+CSS+JS 字体图标库:font-awesome 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name…

6.7Jmeter5.1,非GUI模式,通过命令行传递线程数

原创文章&#xff0c;谢绝转载。 一、前提 本次做性能测试&#xff0c;需求是需要在Linux下的非GUI模式下执行。但用命令行执行时&#xff0c;线程数需要改变&#xff0c;为了执行方便&#xff0c;不需要每次都在脚本中修改线程数&#xff0c;那么线程数都需要通过参数传递&…

Flutter III 之你不知道的 PlatformView 的混乱之治

如果你是从 2018 年开始使用 Flutter &#xff0c;那么相信你对于 Flutter 在混合开发的支持历程应该会有一个深刻的体会&#xff0c;如果你没尽力过这个时期&#xff0c;不要担心&#xff0c;通过我过往 PlatformView 的相关文章&#xff0c;你也可以有一个清晰的感受&#xf…

python 乘法口诀

下面是一个用Python打印乘法口诀表的代码&#xff1a; print("乘法口诀表:")for i in range(1, 10):for j in range(1, i1):print(f"{j} {i} {i*j}", end"\t")print()

AI绘画创意文字全流程揭秘,你的终极文字艺术实操宝典

本教程收集于&#xff1a;AIGC从入门到精通教程汇总 AIGC技术不断更新迭代&#xff0c;国内出现了越来越多的新玩法&#xff0c;比如最近大家都在热议的AI绘画创意文字。 过去的一周&#xff0c;我把这些新玩法都研究了一遍&#xff0c;并总结了一套完整的制作流程。 主流的…

马斯克重返人工智能赛道,官宣成立xAI

KlipC报道&#xff1a;马斯克宣布成立xAI人工智能公司。 KlipC的合伙人Andi Duan表示&#xff1a;“马斯克称xAI公司的目标是了解宇宙的真实本质&#xff0c;同时也向ChatGPT等热门人工智能应用发起挑战。 Duan先生指出自OpenAI去年年底推出ChatGPT以来&#xff0c;马斯克就在A…

全网首发!精选32个最新Python实战项目(附源码),拿走就用!

Python是目前最好的编程语言之一。由于其可读性和对初学者的友好性&#xff0c;已被广泛使用。那么要想学会并掌握Python&#xff0c;可以实战的练习项目是必不可少的。接下来&#xff0c;我将给大家介绍32个非常实用的Python项目&#xff0c;帮助大家更好的学习Python。大家也…

C/C++ 辗转相除与更相减损求最大公约数公倍数

古人有两种求最大公约数的方法 最小公倍数 &#xff08;a * b&#xff09; / 最大公约数 1.辗转相除&#xff08;欧几里得-《几何原本》&#xff09; 我认为辗转相除的的稳定性要强过更相减损&#xff0c;因为减法在数差距较大时效率会较低。 辗转相除注意考虑0的问题&#x…

AIGC全新升级!Share Creators现已提供更加强大的AIGC功能及体验!

AIGC全称AI Generated Content,即人工智能生产的内容,被认为是继PGC、UGC之后的新型内容创作方式。在技术上&#xff0c;AIGC能够以优于人类的制造能力和知识水平承担信息挖掘、素材调用、复刻编辑等基础性机械劳动&#xff0c;从技术层面实现以低边际成本、高效率的方式满足海…

科技云报道:成立11年,青云的变与不变

科技云报道原创。 成立于2012年的青云科技&#xff0c;迎来了自己的11周年。 对于高速发展的云计算行业来说&#xff0c;“十年”这一节点更是承载了太多的命题。 过去11年&#xff0c;青云在云计算巨头和IT大厂的环伺之下一路拼杀&#xff0c;终以“混合云第一股”的身份登上…

Rancher 系列文章-RHEL7.8 离线有代理条件下安装单节点 Rancher

一 基础信息 1.1 前提 本次安装的为 20220129 最新版&#xff1a;Rancher v2.6.3VM 版本为 RHEL 7.8, 7.9 或 8.2, 8.3, 8.4(Rancher 官网要求&#xff09;VM YUM 仓库&#xff1a;已配置对应版本的 RHEL 和 EPEL YUM 仓库VM 提供 root 权限已配置 ntp&#xff08;防止因为时…

Microsoft Edge 浏览器的怎么传文件

可以替代微信的文件传输助手&#xff0c;不再需要每次传输文件时登录微信&#xff0c;在手机和电脑上点击”Drop”即可。

如何备份与恢复MySQL数据库数据

目录 一、MySQL备份 备份方式 完全备份 差异备份 增量备份 二、常见的备份方法 物理冷备 专用备份工具 mysqldump 或 mysqlhotcopy 启用二进制日志进行增量备份 第三方工具备份 三、MySQL完全备份 四、数据库完全备份分类 物理冷备份与恢复 mysqldump备份与恢复 …

海外应用商店的ASO优化表现跟踪

花更少的时间整合App Store数据&#xff0c;花更多的时间去解锁有助于我们实现高下载量的目标。了解我们应用商店表现的真实水平&#xff0c;以便我们可以自信地完善和调整应用营销策略。 全面跟踪所有重要的应用指标&#xff0c;踪各个国家/地区的展示次数、商店浏览量、安装…

小程序web-view本地测试:redirect_uri参数错误

要检查这些地方&#xff0c; 1&#xff1a; 2&#xff1a; 3&#xff1a;这里要加http、https this.testURL https://open.weixin.qq.com/connect/oauth2/authorize?appidwx54d162c2a94191f1&redirect_uri${encodeURIComponent(http://xxxxx)}&response_typecode&a…

Slim-neck by GSConv 论文学习

1. 解决了什么问题&#xff1f; 目标检测是计算机视觉中一个重要任务。在边缘设备上&#xff0c;大模型很难取得实时的效果。而使用大量深度可分离卷积的模型则很难取得高准确率。如下图&#xff0c;深度可分离卷积的缺点就是&#xff1a;输入图像的通道信息在计算时被分隔开了…

RocketMQ 5.0本地源码启动3Nameserve+2broker集群

这里是weihubeats,觉得文章不错可以关注公众号小奏技术&#xff0c;文章首发。拒绝营销号&#xff0c;拒绝标题党 背景 由于RocketMQ 5.x主从同步的方式改动非常大&#xff0c;集群部署的方式也改动很大&#xff0c;所以打算本地启动一个小集群&#xff0c;进行debug研究源码学…

PCB反复评审难题,终极解决办法有了?

随着电子产品的高速发展&#xff0c;PCB生产中大量使用BGA、QFP、PGA和CSP等高集成度器件&#xff0c;PCB的复杂程度也大大增加&#xff0c;随之而来的PCB的设计和制造难、测试困难、焊接不良、器件不匹配和维修困难等生产问题&#xff0c;导致整个产品工期延误&#xff0c;产品…