diff --git "a/\345\220\264\344\275\263\345\256\207/.idea/modules.xml" "b/\345\220\264\344\275\263\345\256\207/.idea/modules.xml" index 15a27f65babe5735601af0a1327fd07a7c3005c9..9fc0ea871a6a6482c8cc7eedb23052af398542b9 100644 --- "a/\345\220\264\344\275\263\345\256\207/.idea/modules.xml" +++ "b/\345\220\264\344\275\263\345\256\207/.idea/modules.xml" @@ -2,6 +2,7 @@ + diff --git "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/pom.xml" "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/pom.xml" index 23b9d2a6c3a61cc1e2ed446ca15f95928b99739f..a9305378450b21b7929fb45c234bce5b6fd29e7f 100644 --- "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/pom.xml" +++ "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/pom.xml" @@ -6,36 +6,92 @@ war 1.0-SNAPSHOT + + + UTF-8 + - + org.springframework spring-webmvc 5.2.25.RELEASE - + + + org.springframework + spring-test + 5.2.25.RELEASE + + + + + org.springframework + spring-jdbc + 5.2.25.RELEASE + + javax.servlet javax.servlet-api 3.1.0 - provided - com.fasterxml.jackson.core jackson-databind 2.9.0 + org.projectlombok lombok 1.18.36 + + + org.mybatis + mybatis + 3.5.16 + + + + + com.mysql + mysql-connector-j + 8.3.0 + + + + junit + junit + 4.13.2 + test + + + + + com.alibaba + druid + 1.1.20 + + + + + org.mybatis + mybatis-spring + 2.0.6 + + + + org.projectlombok + lombok + 1.18.36 + diff --git "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/JdbcConfig.java" "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/JdbcConfig.java" new file mode 100644 index 0000000000000000000000000000000000000000..d60a6af865fa47a694501cda468b2c4995768831 --- /dev/null +++ "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/JdbcConfig.java" @@ -0,0 +1,32 @@ +package com.WJY.config; + +import com.alibaba.druid.pool.DruidDataSource; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.PropertySource; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +@Component +@PropertySource("classpath:jdbc.properties") +public class JdbcConfig { + @Value("${jdbc.driver}") + private String driver; + @Value("${jdbc.url}") + private String url; + @Value("${jdbc.username}") + private String username; + @Value("${jdbc.password}") + private String password; + + @Bean + public DataSource getDataSource(){ + DruidDataSource druidDataSource = new DruidDataSource(); + druidDataSource.setDriverClassName(driver); + druidDataSource.setUrl(url); + druidDataSource.setUsername(username); + druidDataSource.setPassword(password); + return druidDataSource; + } +} diff --git "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/MybatisConfig.java" "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/MybatisConfig.java" new file mode 100644 index 0000000000000000000000000000000000000000..26650e5bcb3ce6789cbe3242f8144f6921dc3c9f --- /dev/null +++ "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/MybatisConfig.java" @@ -0,0 +1,21 @@ +package com.WJY.config; + +import org.mybatis.spring.SqlSessionFactoryBean; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +@Component +@MapperScan("com.WJY.dao") +public class MybatisConfig { + + @Bean + public SqlSessionFactoryBean getSqlSessionFactoryBean(DataSource dataSource){ + SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); + sqlSessionFactoryBean.setDataSource(dataSource); + return sqlSessionFactoryBean; + } + +} diff --git "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/SpringConfig.java" "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/SpringConfig.java" new file mode 100644 index 0000000000000000000000000000000000000000..add2092e49e2ff8cddb1eb85998926d10a0483d3 --- /dev/null +++ "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/SpringConfig.java" @@ -0,0 +1,11 @@ +package com.WJY.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; + +@Configuration +@ComponentScan("com.WJY.service") +@Import({JdbcConfig.class, MybatisConfig.class}) +public class SpringConfig { +} diff --git "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/SpringMvcConfig.java" "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/SpringMvcConfig.java" index 293ab0d90ca82730377e7b44201de16b22059e2e..39aa313bd773303297abcf888f320727cf00e9ee 100644 --- "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/SpringMvcConfig.java" +++ "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/SpringMvcConfig.java" @@ -3,9 +3,19 @@ package com.WJY.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration @ComponentScan("com.WJY.controller") @EnableWebMvc // 这个MVC核心注解,有一堆作用 -public class SpringMvcConfig { +public class SpringMvcConfig implements WebMvcConfigurer { + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + // 前面 的 /** 是指 css,js,html + // 后面写。 这个路径 对应的物理文件的路径 /test.html + registry.addResourceHandler("/**").addResourceLocations("/"); // 将所有controller里没写的路径,统统转发到webapp去找 + } + // 为了让mvc容器,对webapp目录的静态资源,放行,不做拦截,就要实现一个方法,# 添加一个资源处理器 + } diff --git "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/WebConfig.java" "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/WebConfig.java" index f1d0a2256da285e1532946948c38f5236ac16fae..2192619cdc77d18467dcdeed8dd17e01ae65ea00 100644 --- "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/WebConfig.java" +++ "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/config/WebConfig.java" @@ -2,19 +2,20 @@ package com.WJY.config; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; +// webConfig是 Tomcat启动时要加载的容器配置, public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class[] getRootConfigClasses() { - return new Class[0]; + return new Class[]{SpringConfig.class}; // 加载spring框架的配置 } @Override protected Class[] getServletConfigClasses() { - return new Class[]{SpringMvcConfig.class}; + return new Class[]{SpringMvcConfig.class}; // 加mvc的配置文件 } @Override protected String[] getServletMappings() { - return new String[]{"/"}; + return new String[]{"/"}; // 设置被tomcat容器接管的网页路径的起始位置 / 网站根目录 } } diff --git "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/controller/BookController.java" "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/controller/BookController.java" index 6d839dd76863e57f80225304fd655de588c0cdd0..7bc81820e488d35d32629ddc3359c3df41a2f05b 100644 --- "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/controller/BookController.java" +++ "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/controller/BookController.java" @@ -11,7 +11,6 @@ import java.util.List; @Controller public class BookController { -// ,, 。,, // 1.实现跳转 @RequestMapping("/t1") @@ -33,6 +32,11 @@ public class BookController { return book; } + @RequestMapping(value = "/t03",produces = "application/json;charset=utf-8") + @ResponseBody + public Book t03() { + return new Book(3,"Java","张三","广东省"); + } // 4.接收普通参数 @RequestMapping(value = "/t4", produces = "application/json;charset=utf-8") @ResponseBody @@ -51,7 +55,7 @@ public class BookController { @RequestMapping("/t6") @ResponseBody public List t6(@RequestBody List list) { + System.out.println(list); return list; } - } diff --git "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/controller/BookWebController.java" "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/controller/BookWebController.java" new file mode 100644 index 0000000000000000000000000000000000000000..2b033517147227d35171c73368ff7b3fab854d07 --- /dev/null +++ "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/controller/BookWebController.java" @@ -0,0 +1,47 @@ +package com.WJY.controller; + +import com.WJY.dao.BookDao; +import com.WJY.pojo.Book; +import com.WJY.service.BookService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; + +@Controller +@ResponseBody +@RequestMapping(produces = "application/json;charset=utf-8") +public class BookWebController { + + @Autowired + private BookService bookService; + + @RequestMapping("/queryBookList") + public List queryBookList() { + return bookService.queryBookList(); + } + + @RequestMapping("/queryBookByBookName") + public List queryBookByBookName(String bookName) { + System.out.println(bookService.queryBookByBookName(bookName)); + return bookService.queryBookByBookName(bookName); + } + + @RequestMapping("/delBookById") + public String delBookById(int id) { + return bookService.delBookById(id) > 0 ? "删除成功" : "删除失败"; + } + + @RequestMapping("/addBook") + public String addBook(Book book) { + return bookService.addBook(book) > 0 ? "新增成功" : "新增失败"; + } + + @RequestMapping("/updateBook") + public String updateBook(Book book) { + return bookService.updateBook(book) > 0 ? "修改成功" : "修改失败"; + } +} diff --git "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/dao/BookDao.java" "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/dao/BookDao.java" index 4b50fdca223e07ac8f7471f639140756de604850..6e3f80c2fc82ef8a7d6c2d6be01df94e8fe6c933 100644 --- "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/dao/BookDao.java" +++ "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/dao/BookDao.java" @@ -1,4 +1,30 @@ package com.WJY.dao; -public class BookDao { +import com.WJY.pojo.Book; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +public interface BookDao { + + //查询所有图书 + @Select("select * from book") + List queryBookList(); + + //根据图书名称模糊查询图书 + @Select("select * from book where bookName like '%${bookName}%'") + List queryBookByBookName(@Param("bookName") String bookName); + + //根据ID删除图书 + @Delete("delete from book where bookId = #{id}") + int delBookById(@Param("id") int id); + + //新增图书 + @Insert("insert into book (bookName, bookAuthor, bookPublisher) values (#{bookName},#{bookAuthor},#{bookPublisher})") + int addBook(Book book); + + //修改图书 + @Update("update book set bookName = #{bookName}, bookAuthor = #{bookAuthor}, bookPublisher = #{bookPublisher} where bookId = #{bookId} ") + int updateBook(Book book); + } diff --git "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/service/BookService.java" "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/service/BookService.java" index 21f3064745430ac71c85dd05b018a10e01e78ff1..a1490b22f23c8236712d75ecdc2313335e98d1f5 100644 --- "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/service/BookService.java" +++ "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/service/BookService.java" @@ -1,4 +1,23 @@ package com.WJY.service; +import com.WJY.pojo.Book; + +import java.util.List; + public interface BookService { + + //查询所有图书 + List queryBookList(); + + //根据图书名称模糊查询图书 + List queryBookByBookName(String bookName); + + //根据ID删除图书 + int delBookById(int id); + + //新增图书 + int addBook(Book book); + + //修改图书 + int updateBook(Book book); } diff --git "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/service/impl/BookServiceImpl.java" "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/service/impl/BookServiceImpl.java" index a62d425e5c19fea247d57921f940afea72cbb075..07e6f09c8d0a0a6cbb7a27b4ca3e0b3660548b43 100644 --- "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/service/impl/BookServiceImpl.java" +++ "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/java/com/WJY/service/impl/BookServiceImpl.java" @@ -1,4 +1,40 @@ package com.WJY.service.impl; -public class BookServiceImpl { +import com.WJY.dao.BookDao; +import com.WJY.pojo.Book; +import com.WJY.service.BookService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class BookServiceImpl implements BookService { + @Autowired + private BookDao bookDao; + + @Override + public List queryBookList() { + return bookDao.queryBookList(); + } + + @Override + public List queryBookByBookName(String bookName) { + return bookDao.queryBookByBookName(bookName); + } + + @Override + public int delBookById(int id) { + return bookDao.delBookById(id); + } + + @Override + public int addBook(Book book) { + return bookDao.addBook(book); + } + + @Override + public int updateBook(Book book) { + return bookDao.updateBook(book); + } } diff --git "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/resources/jdbc.properties" "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/resources/jdbc.properties" new file mode 100644 index 0000000000000000000000000000000000000000..1a69a8478561907a20d931c157af07dc7fb00ab6 --- /dev/null +++ "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/main/resources/jdbc.properties" @@ -0,0 +1,4 @@ +jdbc.driver = com.mysql.cj.jdbc.Driver +jdbc.url = jdbc:mysql:///mx +jdbc.username = root +jdbc.password = 123456 \ No newline at end of file diff --git "a/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/test/java/MyTest.java" "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/test/java/MyTest.java" new file mode 100644 index 0000000000000000000000000000000000000000..4593e85dfba11c6eb2b8308a8e667269205039fa --- /dev/null +++ "b/\345\220\264\344\275\263\345\256\207/SpringMVC01/src/test/java/MyTest.java" @@ -0,0 +1,14 @@ +import com.WJY.config.SpringConfig; +import com.WJY.service.BookService; +import org.junit.Test; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +public class MyTest { + @Test + public void t1(){ + ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); + BookService bean = context.getBean(BookService.class); + System.out.println( bean.queryBookList()); + } +}