我先做个网站怎么做的,网站安全怎么做,做建筑的网站,网络优化需要哪些知识介绍#xff1a;
SSM相信大家都不陌生#xff0c;在spring boot出现之前#xff0c;SSM一直是Java在web开发中的老大哥。现在虽说有了spring boot能自动整合第三方框架了#xff0c;但是现在市面上任然有很多老项目是基于SSM技术的。因此#xff0c;能熟练掌握SSM进行开发…介绍
SSM相信大家都不陌生在spring boot出现之前SSM一直是Java在web开发中的老大哥。现在虽说有了spring boot能自动整合第三方框架了但是现在市面上任然有很多老项目是基于SSM技术的。因此能熟练掌握SSM进行开发也是非常重要的。对于新的项目我当然是推荐直接用spring boot但是对于像SSM技术的项目我们必须也能够熟练上手。虽说现在电动车很方便但我们也要会骑自行车
SSMSpringSpringMVCMyBatis是一种经典的Java Web开发框架组合。现在的spring boot框架可以看作是SSM的进一步整合。
整合SSM 本次使用到的版本为Java8、spring5.3.7
创建一个maven项目并将项目添加为WEB项目。可以在创建项目时直接选定模板也可以先创建一个普通的maven项目再将maven项目设置为web项目
项目的目录结果如下 引入一些基础的maven依赖
dependencies!-- tomcat相关依赖 --dependencygroupIdorg.apache.tomcat.embed/groupIdartifactIdtomcat-embed-core/artifactIdversion9.0.73/version/dependency!-- 如果需要JSP支持还需要添加以下依赖 --dependencygroupIdorg.apache.tomcat.embed/groupIdartifactIdtomcat-embed-jasper/artifactIdversion9.0.73/version/dependency!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.11/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion5.3.7/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion5.3.7/version/dependencydependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper/artifactIdversion5.3.2/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.20/version/dependencydependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion4.0.1/version/dependency!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.48/version/dependency!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring --dependencygroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactIdversion2.1.0/version/dependency!-- https://mvnrepository.com/artifact/com.alibaba/druid --dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.2.20/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.11/version/dependency/dependencies
先创建一个spring配置类用来扫描整合项目路径
Configuration
ComponentScan(com.zq.ssmdemo)public class SpringConfig {}
接下来就是重点了我们要在项目中创建一个tomcat容器
当然你也可以使用本地的tomcat部署效果都是一样的。spring boot的内部也是内嵌了一个tomcat。我们在maven坐标中已经引入了tomcat的依赖了注意版本的差异。tomcat版本过高的话就要升级jdk的版本。我目前时jdk8使用tomcat9
public class TomcatConfig {public static void main(String[] args) {AnnotationConfigWebApplicationContext applicationContext new AnnotationConfigWebApplicationContext();applicationContext.register(SpringConfig.class);applicationContext.refresh();startTomcat(applicationContext);}static void startTomcat(WebApplicationContext applicationContext){// 创建一个Tomcat实例Tomcat tomcat new Tomcat();Server server tomcat.getServer();Service service server.findService(Tomcat);Connector connector new Connector();connector.setPort(8080);Engine engine new StandardEngine();engine.setDefaultHost(localhost);Host host new StandardHost();host.setName(localhost);String contextPath ;Context context new StandardContext();context.setPath(contextPath);context.addLifecycleListener(new Tomcat.FixContextListener());host.addChild(context);engine.addChild(host);service.setContainer(engine);service.addConnector(connector);tomcat.addServlet(contextPath, dispatcher, newDispatcherServlet(applicationContext));
// 设置默认的Servletcontext.addServletMappingDecoded(/*, dispatcher);try {tomcat.start();} catch (LifecycleException e) {e.printStackTrace();}}}
现在这个项目就是一个springMVC项目了。我们可以创建一个controller写一个映射路径来检验一下我们的代码是否正确。
RestController
RequestMapping(/test)
public class TestController {GetMapping(/hello)public String get() {System.out.println(hello,test!);return hello,test!;}}
启动项目运行TomcatConfig中的main方法 访问我们定义的映射路径 可以看到能正确的访问到控制类。
整合mybatis
在resources资源目录下新建整合mybatis的资源
新建一个数据库连接文件
jdbc.driver com.mysql.jdbc.Driver
jdbc.urljdbc:mysql://localhost:3306/bank
jdbc.usernameroot
jdbc.password123456
新建一个mybatis的配置文件
?xml version1.0 encodingUTF-8 ?
!DOCTYPE configuration PUBLIC-//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd
configurationsettings!-- 设置驼峰标识 --setting namemapUnderscoreToCamelCase valuetrue/!-- 打印SQL语句 --setting namelogImpl valueSTDOUT_LOGGING//settingsplugins!-- 分页插件 --plugin interceptorcom.github.pagehelper.PageInterceptor//pluginsmapperspackage namecom.zq.ssmdemo.mapper//mappers/configuration
注意这两个文件的位置 配置mybatis的连接信息
PropertySource(classpath:jdbc.properties)
public class MybatisConfig {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;}Beanpublic SqlSessionFactoryBean sqlSessionFactoryBean(){SqlSessionFactoryBean sqlSessionFactoryBean new SqlSessionFactoryBean();sqlSessionFactoryBean.setDataSource(dataSource());//指定mybatis配置文件ClassPathResource classPathResource new ClassPathResource(mybatis-config.xml);sqlSessionFactoryBean.setConfigLocation(classPathResource);return sqlSessionFactoryBean;}Beanpublic MapperScannerConfigurer mapperScannerConfigurer(){MapperScannerConfigurer mapperScannerConfigurer new MapperScannerConfigurer();mapperScannerConfigurer.setBasePackage(com.zq.ssmdemo.mapper);return mapperScannerConfigurer;}}在spring的配置类中引入mybatis的配置类
Configuration
ComponentScan(com.zq.ssmdemo)
Import({MybatisConfig.class})
public class SpringConfig {}
现在启动一下这个项目: 可以看到打印除了pageHelp插件的logo而我们pageHelp插件是在mybatis的配置文件中配置的所以我们的mybatis配置文件是肯定被spring项目扫描到的。
现在我们进行一下简单的测试看能否使用mybatis进行数据库的操作
创建一个mapper接口进行测试
public interface UsersMapper {// 查询所有用户
Select(select * from users)ListUsers selectAll();
}
创建一个controller进行测试
RestController
RequestMapping(/user)
public class UserController {Resourceprivate UsersMapper usersMapper;GetMapping(/list)public Object add(){PageHelper.startPage(1, 2);ListUsers users usersMapper.selectAll();PageInfoUsers page new PageInfo(users);System.out.println(page);return page;}}
输出结果如下 可以看到正确输出了数据库中的信息表明我们能成功连接到数据库。