当前位置: 首页 > wzjs >正文

化工网站关键词优化厦门公司网页制作

化工网站关键词优化,厦门公司网页制作,cms免费企业网站,外贸网站推广的方法目录 SSM整合 创建项目 导入依赖 配置文件 SpringConfig MyBatisConfig JdbcConfig ServletConfig SpringMvcConfig 功能模块 测试 业务层接口测试 控制层测试 SSM是Java Web开发中常用的三个主流框架组合的缩写,分别对应Spring、Spring MVC、MyBatis…

  

目录

SSM整合 

创建项目

导入依赖

配置文件

SpringConfig

MyBatisConfig

JdbcConfig

ServletConfig

SpringMvcConfig

功能模块

测试

业务层接口测试

控制层测试


    SSM是Java Web开发中常用的三个主流框架组合的缩写,分别对应SpringSpring MVCMyBatis。这三个框架协同工作,能够完成企业级应用开发中的业务逻辑、Web层交互及数据持久化任务。

  1. Spring:作为SSM的基础框架,主要负责依赖注入(DI)和面向切面编程(AOP)。它简化了Java程序对数据库的访问,提高了数据库的访问效率和稳定性。
  2. Spring MVC:实际上是Spring框架的扩展,属于Spring框架的一部分。它主要负责Web层的交互,使得开发Web应用变得更加简单和高效。
  3. MyBatis:是一个支持普通SQL查询、存储过程和高级映射的持久层框架。它消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索,使得开发者可以更加专注于业务逻辑的实现。

SSM整合 

创建项目

    首先新建一个项目,详情请见:SpringMVC概述以及入门案例-CSDN博客,新建项目后再main下方新建test目录用作测试:

     

导入依赖

 ssm整合需要导入一些依赖包,具体如下:

  • spring-webmvc
  • spring-jdbc
  • spring-contest
  • mybatis
  • mybatis-spring
  • mysql-connector-java
  • druid
  • junit
  • javax.servlet-api
  • jackson-databind
<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.20</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.18</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.3.20</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.8</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.12.5</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency></dependencies>

配置文件

    接下来在java包下面新建软件包config,用于存放各种配置来,分别是:SpringConfig、MyBatisConfig、JdbcConfig、ServletConfig、SpringMvcConfig。以及resources目录下的db.properities。

SpringConfig

    该配置类的作用是:作为Spring配置文件,扫描指定的包,并且导入加载其他需要的配置文件:

@Configuration
@ComponentScan({"com.cc.service"})
@PropertySource(("db.properties"))  //加载外部属性文件
@Import({JdbcConfig.class, MyBatisConfig.class})  //导入其他配置类
public class SpringConfig {
}
MyBatisConfig

MyBatis的XML方式:

@Configuration
public class MyBatisXmlConfig {@Beanpublic SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) throws Exception {SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();factoryBean.setDataSource(dataSource);// 关键配置:显式指定XML映射文件位置factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));return factoryBean;}@Beanpublic MapperScannerConfigurer mapperScannerConfigurer() {MapperScannerConfigurer msc = new MapperScannerConfigurer();msc.setBasePackage("com.cc.dao");// 关键配置:要求接口与XML文件关联(默认行为)msc.setSqlSessionFactoryBeanName("sqlSessionFactory");return msc;}
}

 

注解配置方式:

@Configuration
public class MyBatisAnnotationConfig {@Beanpublic SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) {SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();factoryBean.setDataSource(dataSource);return factoryBean;}@Beanpublic MapperScannerConfigurer mapperScannerConfigurer() {MapperScannerConfigurer msc = new MapperScannerConfigurer();msc.setBasePackage("com.cc.dao");// 关键配置:启用注解扫描模式msc.setAnnotationClass(Mapper.class);msc.setSqlSessionFactoryBeanName("sqlSessionFactory");return msc;}
}
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;import javax.sql.DataSource;public class MyBatisConfig {//配置了一个MyBatis的SqlSessionFactory,指定了使用的数据源和类型别名包路径。@Beanpublic SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();factoryBean.setDataSource(dataSource);factoryBean.setTypeAliasesPackage("com.cc.domain");return factoryBean;}//通过Spring配置了一个MapperScannerConfigurer,指定了需要扫描的Mapper接口所在的包路径。//这样,MyBatis就可以根据这些配置自动地找到并注册Mapper接口@Beanpublic MapperScannerConfigurer mapperScannerConfigurer(){MapperScannerConfigurer msc = new MapperScannerConfigurer();msc.setBasePackage("com.cc.dao");return msc;}
}

使用注解方式的关键代码是setAnnotationClass(Mapper.class),但是只要在Mapper接口的方法上使用了@Select等注解,即时未配置也会隐式支持注解

JdbcConfig

配置数据源,并且交给spring容器管理。

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;import javax.sql.DataSource;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;@Beanpublic DataSource dataSource(){DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClassName(driver);dataSource.setUrl(url);dataSource.setUsername(username);dataSource.setPassword(password);return dataSource;}
}
ServletConfig
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;import javax.servlet.Filter;public class ServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer{@Overrideprotected Class<?>[] getRootConfigClasses() {return new Class[]{SpringConfig.class};}@Overrideprotected Class<?>[] getServletConfigClasses() {return new Class[]{SpringMvcConfig.class};}@Overrideprotected String[] getServletMappings() {return new String[]{"/"};}@Overrideprotected Filter[] getServletFilters() {CharacterEncodingFilter filter = new CharacterEncodingFilter();filter.setEncoding("UTF-8");return new Filter[]{filter};}
}
SpringMvcConfig
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;@Configuration
@ComponentScan("com.cc.controller")
@EnableWebMvc
public class SpringMvcConfig {
}

功能模块

首先依据准备的表结构创建对应的POJO类:

public class User {private int id;private String name;private int age;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", age=" + age +'}';}
}

接下来就是关于数据库操作的Dao:

public interface UserDao {@Insert("insert into user(name,age) values(#{name},#{age})")public void save(User user);@Update("update user set name=#{name} where id = #{id}")public void update(User user);@Delete("delete from user where id =#{id}")public void delete(Integer id);@Select("select * from user where id =#{id}")public User getById(Integer id);@Select("select * from user")public List<User> getAll();
}

以及Dao对应的Service接口和实现类

public interface UserService {/*** 保存* @param user* @return*/public boolean save(User user);/*** 修改* @param user* @return*/public boolean update(User user);/**\* 根据id删除* @param id* @return*/public boolean delete(Integer id);/*** 根据id查询* @param id* @return*/public User getById(Integer id);/*** 查询所有* @return*/public List<User> getAll();
}
@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserDao userDao;@Overridepublic boolean save(User user) {userDao.save(user);return true;}@Overridepublic boolean update(User user) {userDao.update(user);return true;}@Overridepublic boolean delete(Integer id) {userDao.delete(id);return true;}@Overridepublic User getById(Integer id) {return userDao.getById(id);}@Overridepublic List<User> getAll() {return userDao.getAll();}
}

剩下就是REST风格的Controller控制类:

@RestController
@RequestMapping("/users")
public class UserController {@Autowiredprivate UserService userService;@PostMappingpublic boolean save(@RequestBody User user) {return userService.save(user);}@PutMappingpublic boolean update(@RequestBody User user) {return userService.update(user);}@DeleteMapping("/{id}")public boolean delete(@PathVariable Integer id) {return userService.delete(id);}@GetMapping("/{id}")public User getById(@PathVariable Integer id) {return userService.getById(id);}@GetMappingpublic List<User> getAll() {return userService.getAll();}
}

测试

   在开发中通常要进行两种测试,分别是业务接口测试,第二个是表现层的接口测试。

业务层接口测试

在test目录下新建测试包:

@RunWith(SpringJUnit4ClassRunner.class)  //使用Spring的测试运行器来运行测试。
@ContextConfiguration(classes = SpringConfig.class)
public class UserServiceTest {@Autowiredprivate UserService userService;@Testpublic void testGetById(){User user = userService.getById(2);System.out.println(user);}@Testpublic void testGetAll(){List<User> user = userService.getAll();System.out.println(user);}}

能够查询到数据,说明业务层没问题,接下来测试控制层,启动Tomcat:

控制层测试

在postman进行测试:

查询所有:

 

 新增:

http://www.dtcms.com/wzjs/586654.html

相关文章:

  • 响应式 网站 设计软件seo搜索排名优化
  • 海宁市住房与建设规划局网站制作钓鱼网站属于什么罪
  • 影视网站视频接口怎么做圣沃建设集团官方网站
  • 凡科可以做返利网站吗新品牌推广方案
  • 网站根目录 本地共享提供建站服务的网络公司的比较
  • 科技资讯 哪个网站好百度快速排名技术培训教程
  • 没网站怎么做京东联盟天津做网站找哪家公司好
  • 忻州网站建设公司网页设计实训报告主要内容
  • 建设家居网站买个域名后怎么做网站
  • 网站开发制作平台免费微信小程序商城
  • 用友加密狗注册网站网站建设模板制作是什么意思
  • 网站建设优化公司呼和浩特搞笑视频网站建设策划书
  • 商标设计网站免费开网店哪个电商平台好
  • 网站建设经济成本分析汾阳今天重大新闻
  • 响应式商业网站开发实训报告昆明建设
  • 无域名建网站湖州网站设计公司
  • 网站怎么做轮幕企业cms建站
  • 浅谈博物馆网站建设的意义莱芜信誉好的网络推广公司
  • 网站建设方式可行性分析网站精神文件建设专栏
  • 如何用本机电脑做网站服务器吗青岛微网站开发
  • 网络开发工程师是做什么的揭阳新站seo方案
  • 网站开发jquery广西两学一做网站
  • 中国建设银行官方网站k宝驱动简述网页的制作过程
  • h5自适应网站建设WordPress为啥这么慢
  • 企业网站设计营销房天下官网首页
  • 广西城乡和建设厅网站首页网站备案添加域名
  • 网站备案 多ip创建网站免费
  • 自己做的网站还用维护呢肇庆制作企业网站
  • 网站建设做微营销互联网推广营销
  • 海口模板建站平台网站流量攻击软件