当前位置:网站首页>Integrate ssm (1)
Integrate ssm (1)
2022-08-02 06:20:00 【Tangerineꦿ.๓】
项目整体结构

数据库环境
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 COMMENT '书名',
`bookCounts` INT(11) NOT NULL COMMENT '数量',
`detail` VARCHAR(200) NOT NULL COMMENT '描述',
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,'从进门到进牢');环境依赖
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bdqn</groupId>
<artifactId>ssmbuild</artifactId>
<version>1.0-SNAPSHOT</version>
<!--依赖:Junit,数据库驱动,连接池,servlet,jsp,mybatis,mybattis-spring,spring-->
<!--Junit-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!--数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--数据库连接池-->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<!--添加Servlet和JSP依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</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>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.7.RELEASE</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>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.13</version>
</dependency>
<!--Lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
</dependency>
</dependencies>Maven资源过滤问题
<!--Static resources export failure problem-->
<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>
</project>建立基本结构
1.com.bdqn.pojo
2.com.bdqn.dao
3.com.bdqn.service
4.com.bdqn.controllermybatis-config.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>
</configuration>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="">
</mapper>Spring的配置文件
spring-mvc.xml、spring-service.xml、spring-dao.xml,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/beanshttp://www.springframework.org/schema/beans/springbeans.xsd">
</beans>Mybatis层编写
数据库配置文件:jdbc.properties
在resources目录下jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssmbuild?useSSL=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456MyBatis的核心配置文件 mybatis-config.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>
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<!--配置数据源,交给Spring去做-->
<typeAliases>
<package name="com.bdqn.pojo"/>
</typeAliases>
<mappers>
<mapper class="com.bdqn.dao.BookMapper"></mapper>
</mappers>
</configuration>编写数据库对应的实体类
package com.bdqn.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Books {
private int bookId;
private String bookName;
private int bookCounts;
private String detail;
}
编写Dao层的Mapper接口
package com.bdqn.dao;
import com.bdqn.pojo.Books;
import org.apache.ibatis.annotations.Param;
import java.awt.print.Book;
import java.util.List;
public interface BookMapper {
//增加一本书
int addBooks(Books books);
//删除一本书
int deleteBookById(@Param("bookId") int id);
//更新一本书
int updateBook(Books books);
//查询一本书
Books queryBookById(@Param("bookId") int id);
//查询全部书
List<Books> queryAllBook();
//According to the title information query
Books queryBookByName(@Param("bookName")String bookName);
}
编写接口对应的Mapper.xml文件.需要导入MyBatis的包
<?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.bdqn.dao.BookMapper">
//增加一个book
<insert id="addBooks" parameterType="Books">
insert into ssmbuild.books(bookName, bookCounts, detail)
values (#{bookName},#{bookCounts},#{detail})
</insert>
//根据id删除一个book
<delete id="deleteBookById" parameterType="int">
delete from ssmbuild.books where bookId=#{bookId}
</delete>
//更新book
<update id="updateBook" parameterType="Books">
update ssmbuild.books
set bookName=#{bookName},bookCounts=#{bookCounts},detail=#{detail}
where bookId=#{bookId};
</update>
//根据id查询返回一个book
<select id="queryBookById" resultType="Books">
select * from ssmbuild.books
where bookId=#{bookId}
</select>
//查询全部书籍
<select id="queryAllBook" resultType="Books">
select * from ssmbuild.books;
</select>
//通过书名查找书籍
<select id="queryBookByName" resultType="Books">
select * from ssmbuild.books where bookName=#{bookName};
</select>
</mapper>
编写Service层的接口和实现类
BookService接口
package com.bdqn.service;
import com.bdqn.pojo.Books;
import java.util.List;
public interface BookService {
//增加一本书
int addBooks(Books books);
//删除一本书
int deleteBookById(int id);
//更新一本书
int updateBook(Books books);
//查询一本书
Books queryBookById(int id);
//查询全部书
List<Books> queryAllBook();
//According to the title information query
Books queryBookByName(String bookName);
}
BookServiceImpl实现类
package com.bdqn.service;
import com.bdqn.dao.BookMapper;
import com.bdqn.pojo.Books;
import java.util.List;
public class BookServiceImpl implements BookService {
//service调dao层: 组合dao
private BookMapper bookMapper;
public void setBookMapper(BookMapper bookMapper) {
this.bookMapper = bookMapper;
}
public int addBooks(Books books) {
return bookMapper.addBooks(books);
}
public int deleteBookById(int id) {
return bookMapper.deleteBookById(id);
}
public int updateBook(Books books) {
System.out.println("BookServiceImpl:updateBook=>"+books);
return bookMapper.updateBook(books);
}
public Books queryBookById(int id) {
return bookMapper.queryBookById(id);
}
public List<Books> queryAllBook() {
return bookMapper.queryAllBook();
}
public Books queryBookByName(String bookName) {
return bookMapper.queryBookByName(bookName);
}
}
边栏推荐
猜你喜欢
随机推荐
测试环境要多少?从成本与效率说起
卸载redis
本周大新闻|苹果MR已进行Pre-EVT测试,Quest 2涨价100美元
25K test old bird's 6-year experience in interviews, four types of companies, four types of questions...
自动化运维工具——ansible、概述、安装、模块介绍
面试测试工程师一般会问什么?测试主管告诉你
100 latest software testing interview questions in 2022, summary of common interview questions and answers
Navicat如何连接MySQL
利用浏览器本地存储 实现记住用户名的功能
一线大厂软件测试流程(思维导图)详解
apisix-入门使用篇
MySQL导入sql文件的三种方法
【合集- 行业解决方案】如何搭建高性能的数据加速与数据编排平台
JUC(二)原子类:CAS、乐观锁、Unsafe和原子类
165.比较版本号
构造方法、成员变量、局部变量
golang generics
[PSQL] window function, GROUPING operator
为什么4个字节的float要比8个字节的long大呢?
公司不重视软件测试,新来的阿里P8给我们撰写了测试用例编写规范








