当前位置:网站首页>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);
}
}
边栏推荐
- 51单片机外设篇:DS18B20
- kubernetes affinity, anti-affinity, taint, tolerance
- LeetCode brush topic series - 787 K station transfer within the cheapest flight
- Install and use Google Chrome
- 提高软件测试能力的方法有哪些?看完这篇文章让你提升一个档次
- 软件测试在职2年跳槽4次,你还在怪老板不给你涨薪?
- 测试技术之APP蓝牙连接测试
- Shuttle + Alluxio 加速内存Shuffle起飞
- LeetCode刷题系列 -- 10. 正则表达式匹配
- Introduction and use of apifox (1).
猜你喜欢
随机推荐
mysql实现按照自定义(指定顺序)排序
MySQL 8.0.29 set and modify the default password
The company does not pay attention to software testing, and the new Ali P8 has written a test case writing specification for us
21天学习挑战赛安排
Grid布局介绍
一线大厂软件测试流程(思维导图)详解
[PSQL] window function, GROUPING operator
LeetCode刷题系列 -- 10. 正则表达式匹配
25K测试老鸟6年经验的面试心得,四种公司、四种问题…
golang环境详细安装、配置
整合ssm(一)
区块元素、内联元素(<div>元素、span元素)
Mysql数据库 | 基于Docker搭建Mysql-8.0以上版本主从实例实战
高防服务器防御的原理是什么
ELK log analysis system
kubernetes affinity, anti-affinity, taint, tolerance
H5接入支付流程-微信支付&支付宝支付
eggjs controller层调用controller层解决方案
ERROR 1045 (28000) Access denied for user ‘root‘@‘localhost‘解决方法
Use the browser's local storage to realize the function of remembering the user name









