1、pom.xml文件中进行 版本锁定、添加依赖、解决静态资源导出问题
<!-- 版本锁定 -->
<properties>
<spring.version>5.0.2.RELEASE</spring.version>
<log4j.version>1.2.17</log4j.version>
<slf4j.version>1.6.6</slf4j.version>
<mysql.version>5.1.47</mysql.version>
<mybatis.version>3.4.6</mybatis.version>
<maven.compiler.source>9</maven.compiler.source>
<maven.compiler.target>9</maven.compiler.target>
</properties>
<!--依赖-->
<dependencies>
<!--Spring:ioc和aop,事务-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.9</version>
</dependency>
<!--Mybatis-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.4</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.2</version>
</dependency>
<!--SpringMVC,jstl,json转换-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.6</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--日志-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!--测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.19</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</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>
2、编写Mybatis的核心配置文件【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>
<!--配置数据源,交给spring去做-->
<settings>
<!--标准的日志工厂实现-->
<setting name="logImpl" value="LOG4J"/>
</settings>
<!--扫描实体类的包,可以起别名-->
<typeAliases>
<package name="com.itheima.pojo"/>
</typeAliases>
<!--绑定增删查改的xml文件-->
<mappers>
<mapper resource="com.itheima.dao.BookMapper"/>
</mappers>
</configuration>
3、log4J.properties
##设置日志记录到控制台的方式
log4j.appender.std=org.apache.log4j.ConsoleAppender
log4j.appender.std.Target=System.err
log4j.appender.std.layout=org.apache.log4j.PatternLayout
log4j.appender.std.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n
##设置日志记录到文件的方式
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=mylog.txt
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
##日志输出的级别,以及配置记录方案 debug info warn error
log4j.rootLogger= trace,std,file
4、实体类Pojo
package com.itheima.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Books {
private int bookID;
private String bookName;
private int bookCount;
private String dateail;
}
5、dao层(增删查改功能)
package com.itheima.dao;
import com.itheima.pojo.Books;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* mybatis增删查改的接口
*/
public interface BookMapper {
//增加一本书
int addBook(Books books);
//删除一本书
int deleteBook(@Param("bookId") int id);
//修改一本书
int updateBook(Books books);
//查询一本书
Books selectBookById(@Param("bookId") int id);
//查询所有书
List<Books> selectAllBooks();
}
6、实现接口的Mapper.xml文件.(编写sql语句)
<?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.itheima.dao.BookMapper">
<!--增加一本书-->
<insert id="addBook" parameterType="Books">
insert into ssmbuild.books(bookName, bookCount, dateail)
VALUES (#{bookName}, #{bookCount}, #{dateail});
</insert>
<!--删除一本书-->
<delete id="deleteBook" parameterType="int">
delete
from ssmbuild.books
where bookID = #{bookId};
</delete>
<!--修改一本书-->
<update id="updateBook" parameterType="Books">
update ssmbuild.books
set bookName=#{bookName},
bookCount=#{bookCount},
dateail=#{dateail}
where bookID = #{bookID};
</update>
<!--查询一本书-->
<select id="selectBookById" parameterType="int" resultType="Books">
select *
from ssmbuild.books
where bookID = #{bookId};
</select>
<!--查询所有书-->
<select id="selectAllBooks" resultType="Books">
select *
from ssmbuild.books;
</select>
</mapper>
7、Service层接口
package com.itheima.servce;
import com.itheima.pojo.Books;
import java.util.List;
public interface BookService {
//增加一本书
int addBook(Books books);
//删除一本书
int deleteBook(int id);
//修改一本书
int updateBook(Books books);
//查询一本书
Books selectBookById(int id);
//查询所有书
List<Books> selectAllBooks();
}
8、Service层实现接口类
package com.itheima.servce;
import com.itheima.dao.BookMapper;
import com.itheima.pojo.Books;
import java.util.List;
public class BookServiceImpl implements BookService{
//业务层Service调用dao层
private BookMapper bookMapper;
//set方法,好让spring能接管
public void setBookMapper(BookMapper bookMapper) {
this.bookMapper = bookMapper;
}
//调用dao层的增加方法
public int addBook(Books books) {
return bookMapper.addBook(books);
}
//调用dao层的删除方法
public int deleteBook(int id) {
return bookMapper.deleteBook(id);
}
//调用dao层的修改方法
public int updateBook(Books books) {
return bookMapper.updateBook(books);
}
//调用dao层的查询一本书方法
public Books selectBookById(int id) {
return bookMapper.selectBookById(id);
}
//调用dao层的查询所有方法
public List<Books> selectAllBooks() {
return bookMapper.selectAllBooks();
}
}