SSM整合
1. 新建数据库
create database ssmbuild character set utf8;
create table books (
bookId int ( 10 ) not null auto_increment primary key comment '书id' ,
bookName varchar ( 100 ) not null comment '书名' ,
bookCount int ( 11 ) not null comment '数量' ,
detail varchar ( 200 ) not null comment '描述'
) default charset = utf8;
insert into books( bookId, bookName, bookCount, detail) values
( 1 , 'Java' , 1 , '从入门到放弃' ) ,
( 2 , 'MySQL' , 10 , '从删库到跑路' ) ,
( 3 , 'Linux' , 5 , '从进门到坐牢' )
2.添加maven依赖
<?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.qilin</ groupId>
< artifactId> ssmbuild</ artifactId>
< version> 1.0-SNAPSHOT</ version>
< dependencies>
< dependency>
< groupId> junit</ groupId>
< artifactId> junit</ artifactId>
< version> 4.12</ version>
</ dependency>
< dependency>
< groupId> mysql</ groupId>
< artifactId> mysql-connector-java</ artifactId>
< version> 8.0.20</ version>
</ dependency>
< dependency>
< groupId> com.mchange</ groupId>
< artifactId> c3p0</ artifactId>
< version> 0.9.5.4</ version>
</ dependency>
< 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>
< dependency>
< groupId> org.mybatis</ groupId>
< artifactId> mybatis</ artifactId>
< version> 3.4.6</ version>
</ dependency>
< dependency>
< groupId> org.mybatis</ groupId>
< artifactId> mybatis-spring</ artifactId>
< version> 1.3.2</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-webmvc</ artifactId>
< version> 5.2.6.RELEASE</ version>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-jdbc</ artifactId>
< version> 5.2.6.RELEASE</ version>
</ dependency>
</ dependencies>
< 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>
3.resources文件夹下建databast.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
#如果是MySQL8.0+ 需要配置serverTimezone
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
jdbc.username=root
jdbc.password=wjlroot
4.resources文件夹下建mybatis-config.xml(mybatis核心配置文件)
<?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>
< typeAliases>
< package name = " com.qilin.pojo" />
</ typeAliases>
< mappers>
< mapper class = " com.qilin.dao.BookMapper" />
</ mappers>
</ configuration>
5.resources文件夹下建applicationContext.xml(spring核心配置文件)
<?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" >
< import resource = " classpath:spring-dao.xml" />
< import resource = " classpath:spring-service.xml" />
< import resource = " classpath:spring-mvc.xml" />
</ beans>
6.pojo层编写Books实体类
package com. qilin. pojo;
public class Books {
private int bookId;
private String bookName;
private int bookCount;
private String deail;
public Books ( ) {
}
public Books ( int bookId, String bookName, int bookCount, String deail) {
this . bookId = bookId;
this . bookName = bookName;
this . bookCount = bookCount;
this . deail = deail;
}
public int getBookId ( ) {
return bookId;
}
public void setBookId ( int bookId) {
this . bookId = bookId;
}
public String getBookName ( ) {
return bookName;
}
public void setBookName ( String bookName) {
this . bookName = bookName;
}
public int getBookCount ( ) {
return bookCount;
}
public void setBookCount ( int bookCount) {
this . bookCount = bookCount;
}
public String getDeail ( ) {
return deail;
}
public void setDeail ( String deail) {
this . deail = deail;
}
@Override
public String toString ( ) {
return "Books{" +
"bookId=" + bookId +
", bookName='" + bookName + '\'' +
", bookCount=" + bookCount +
", deail='" + deail + '\'' +
'}' ;
}
}
7.dao层编写BookMapper接口
package com. qilin. dao;
import com. qilin. pojo. Books;
import org. apache. ibatis. annotations. Param;
import java. util. List;
public interface BookMapper {
int addBook ( Books books) ;
void deleteBookById ( @Param ( "bookId" ) int id) ;
void updateBookById ( Books books) ;
Books queryBookById ( @Param ( "bookId" ) int id) ;
List< Books> queryAllBooks ( ) ;
}
8.dao层编写BookMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
< mapper namespace = " com.qilin.dao.BookMapper" >
< insert id = " addBook" parameterType = " Books" >
insert into ssmbuild.books(bookName, bookCount, detail)
VALUES (#{bookName},#{bookCount},#{detail});
</ insert>
< delete id = " deleteBookById" parameterType = " int" >
delete from ssmbuild.books where bookId=#{bookId};
</ delete>
< update id = " updateBookById" parameterType = " Books" >
update ssmbuild.books
set bookName=#{bookName},bookCount=#{bookCount},detail=#{detail}
where bookId=#{bookId};
</ update>
< select id = " queryBookById" resultType = " Books" >
select * from ssmbuild.books where bookId=#{bookId};
</ select>
< select id = " queryAllBooks" resultType = " Books" >
select * from ssmbuild.books;
</ select>
</ mapper>
9.resources文件夹下建spring-dao.xml(spring整合dao)
<?xml version="1.0" encoding="UTF-8"?>
< beans xmlns = " http://www.springframework.org/schema/beans"
xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instance"
xmlns: context= " http://www.springframework.org/schema/context"
xsi: schemaLocation= " http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd" >
< context: property-placeholder location = " classpath:database.properties" />
< bean id = " dataSource" class = " com.mchange.v2.c3p0.ComboPooledDataSource" >
< property name = " driverClass" value = " ${jdbc.driver}" />
< property name = " jdbcUrl" value = " ${jdbc.url}" />
< property name = " user" value = " ${jdbc.username}" />
< property name = " password" value = " ${jdbc.password}" />
< property name = " maxPoolSize" value = " 30" />
< property name = " minPoolSize" value = " 10" />
< property name = " autoCommitOnClose" value = " false" />
< property name = " checkoutTimeout" value = " 10000" />
< property name = " acquireIncrement" value = " 2" />
</ bean>
< bean id = " sqlSessionFactory" class = " org.mybatis.spring.SqlSessionFactoryBean" >
< property name = " dataSource" value = " dataSource" />
< property name = " configLocation" value = " mybatis-config.xml" />
</ bean>
< bean class = " org.mybatis.spring.mapper.MapperScannerConfigurer" >
< property name = " sqlSessionFactoryBeanName" value = " sqlSessionFactory" />
< property name = " basePackage" value = " com.qilin.dao" />
</ bean>
</ beans>
10.resources文件夹下建spring-service.xml(spring整合service)
<?xml version="1.0" encoding="UTF-8"?>
< beans xmlns = " http://www.springframework.org/schema/beans"
xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instance"
xmlns: context= " http://www.springframework.org/schema/context"
xsi: schemaLocation= " http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd" >
< context: component-scan base-package = " com.qilin.service" />
< bean id = " BookServiceImpl" class = " com.qilin.service.BookServiceImpl" >
< property name = " bookMapper" ref = " bookMapper" />
</ bean>
< bean id = " TransactionManager" class = " org.springframework.jdbc.datasource.DataSourceTransactionManager" >
< property name = " dataSource" ref = " dataSource" />
</ bean>
</ beans>
10.配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
< web-app xmlns = " http://xmlns.jcp.org/xml/ns/javaee"
xmlns: xsi= " http://www.w3.org/2001/XMLSchema-instance"
xsi: schemaLocation= " http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version = " 4.0" >
< servlet>
< servlet-name> springmvc</ servlet-name>
< servlet-class> org.springframework.web.servlet.DispatcherServlet</ servlet-class>
< init-param>
< param-name> contextConfigLocation</ param-name>
< param-value> classpath:spring-mvc.xml</ param-value>
</ init-param>
< load-on-startup> 1</ load-on-startup>
</ servlet>
< servlet-mapping>
< servlet-name> springmvc</ servlet-name>
< url-pattern> /</ url-pattern>
</ servlet-mapping>
< filter>
< filter-name> encoding</ filter-name>
< filter-class> org.springframework.web.filter.CharacterEncodingFilter</ filter-class>
< init-param>
< param-name> encoding</ param-name>
< param-value> utf-8</ param-value>
</ init-param>
</ filter>
< filter-mapping>
< filter-name> encoding</ filter-name>
< url-pattern> /*</ url-pattern>
</ filter-mapping>
</ web-app>
11.配置spring-mvc.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"
xmlns: mvc= " http://www.springframework.org/schema/mvc"
xmlns: context= " http://www.springframework.org/schema/context"
xsi: schemaLocation= " http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd" >
< mvc: annotation-driven/>
< mvc: default-servlet-handler/>
< context: component-scan base-package = " com.qilin.controller" />
< bean class = " org.springframework.web.servlet.view.InternalResourceViewResolver" >
< property name = " prefix" value = " /WEB-INF/jsp/" />
< property name = " suffix" value = " .jsp" />
</ bean>
</ beans>