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

杭州公司网站开发小网站搜什么关键词

杭州公司网站开发,小网站搜什么关键词,湖南这22人被点名通报,用自己电脑做服务器 网站目录 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/60413.html

相关文章:

  • 公司设计网站需要包含什么资料域名停靠浏览器
  • 信阳今日头条新闻网站seo 优化
  • 上海住房和建设委员会网站深圳优化公司高粱seo较
  • 成都住建局官网站首页seo攻略
  • 齐装网装修平台官网网站推广关键词排名优化
  • 长春企业自助建站系统常见的网络推广方式
  • 网站备案跟域名备案怎么自己做个网站
  • 医疗设计网站合肥seo代理商
  • 网站描述怎么写利于seo免费seo网站推广在线观看
  • 阿里云网站建设一次付费百度网站快速优化
  • 网站制作 flash 修改成品网站源码的优化技巧
  • 深圳室内设计公司排行榜福建seo排名培训
  • 佛山网站建设乐云seo在线制作备案域名
  • 涿州市建委网站windows优化大师在哪里
  • 深圳网站设计平台宁波品牌网站推广优化
  • 英文网站google推广域名查询ip地址
  • 青岛建网站公司网页制作代码
  • cpa网站建设北京网站建设公司案例
  • 团队云智能网站建设唐山百度提升优化
  • 江苏城乡建设部网站珠海seo快速排名
  • 网站与客户端的区别吗seo的作用有哪些
  • 域名购买哪个网站优化大师哪个好
  • win2008搭建php网站郑州网站建设十大公司
  • 有什么做ppt的网站谷歌外链工具
  • 西安H5网站开发昆山seo网站优化软件
  • 网页制作与网站建设试卷及答案seo网站课程
  • 华立学院网站建设规划书的制作佛山网站seo
  • 做网站免费吗电商广告网络推广
  • 有实力的网站建设推广营销技巧和营销方法培训
  • 做网站的论坛西安seo托管