Java SSM6——SSM整合
生活随笔
收集整理的這篇文章主要介紹了
Java SSM6——SSM整合
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java SSM6——SSM整合
1、Mybatis
1.1、數據庫準備
CREATE TABLE person(id INT PRIMARY KEY,NAME VARCHAR(10),PASSWORD VARCHAR(10) ); INSERT INTO person VALUES (1,"root","123");1.2、創建maven工程,導入依賴
<dependencies><!--mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.5</version></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.20</version></dependency><!--junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version><scope>test</scope></dependency> </dependencies>pom.xml資源過濾
<!--maven過濾問題--> <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>1.3、數據庫配置文件
driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone =Asia/Shanghai user=root password=blingbling123.1.4、Mybatis配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!--引入properties配置文件--><properties resource="database.properties" /><!--別名--><typeAliases><package name="cn.winkto.bean" /></typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${user}"/><property name="password" value="${password}"/></dataSource></environment></environments><!--注冊映射文件--><mappers><package name="cn.winkto.mapper"/></mappers> </configuration>1.5、實體類
public class Person {private int id;private String name;private String password; }1.6、Mapper接口
public interface PersonMapper {ArrayList<Person> selectPerson();int insertPerson(Person person);int updatePerson(Person person);int deletePerson(int id); }1.7、映射文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.winkto.mapper.PersonMapper"><select id="selectPerson" resultType="Person">select * from person;</select><insert id="insertPerson" parameterType="Person">insert into person values (#{id},#{name},#{password});</insert><update id="updatePerson" parameterType="Person">update person set name=#{name},password=#{password} where id=#{id};</update><delete id="deletePerson" parameterType="int">delete from person where id=#{id};</delete> </mapper>1.8、mybatis工具類
public class MybatisUtils {private static SqlSessionFactory sqlSessionFactory=null;static{String resource = "mybatis-config.xml";InputStream inputStream = null;try {inputStream = Resources.getResourceAsStream(resource);} catch (IOException e) {e.printStackTrace();}sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);}public static SqlSession getSqlSession(){return sqlSessionFactory.openSession();} }1.9、測試類
public class MybatisTest {@Testpublic void select(){SqlSession sqlSession = MybatisUtils.getSqlSession();PersonMapper mapper = sqlSession.getMapper(PersonMapper.class);ArrayList<Person> people = mapper.selectPerson();for (Person person : people) {System.out.println(person);}} }2、Spring整合Mybatis
2.1、加入Spring的jar包
<dependencies><!--spring--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.9</version></dependency><!--mybatis-spring--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.5</version></dependency><!--mybatis-test--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.3.9</version></dependency><!--druid--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.6</version></dependency><!--aop--><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.6</version></dependency><!--jdbc事務管理--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.9</version></dependency><!--mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.5</version></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.20</version></dependency><!--junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version><scope>test</scope></dependency> </dependencies>2.2、mybatis核心配置文件修改
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!--引入properties配置文件--><!--<properties resource="database.properties" />--><settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings><!--別名--><typeAliases><package name="cn.winkto.bean" /></typeAliases><!--數據源--><!--<environments default="development">--><!-- <environment id="development">--><!-- <transactionManager type="JDBC"/>--><!-- <dataSource type="POOLED">--><!-- <property name="driver" value="${driver}"/>--><!-- <property name="url" value="${url}"/>--><!-- <property name="username" value="${user}"/>--><!-- <property name="password" value="${password}"/>--><!-- </dataSource>--><!-- </environment>--><!--</environments>--><!--注冊映射文件--><mappers><package name="cn.winkto.mapper"/></mappers> </configuration>2.3、業務層
public interface PersonService {ArrayList<Person> selectPerson();int insertPerson(Person person);int updatePerson(Person person);int deletePerson(int id); } public class PersonServiceImpl implements PersonService {private final SqlSession sqlSession;public PersonServiceImpl(SqlSession sqlSession) {this.sqlSession = sqlSession;}public ArrayList<Person> selectPerson() {return sqlSession.getMapper(PersonMapper.class).selectPerson();}public int insertPerson(Person person) {return sqlSession.getMapper(PersonMapper.class).insertPerson(person);}public int updatePerson(Person person) {return sqlSession.getMapper(PersonMapper.class).updatePerson(person);}public int deletePerson(int id) {return sqlSession.getMapper(PersonMapper.class).deletePerson(id);} }2.4、spring核心配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd"><!--數據庫配置--><context:property-placeholder location="classpath:database.properties"/><!--數據源--><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${user}"/><property name="password" value="${password}"/></bean><!--sqlSessionFactory--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="configLocation" value="mybatis-config.xml" /></bean><!--sqlsession--><bean id="sqlsession" class="org.mybatis.spring.SqlSessionTemplate"><constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" /></bean><!--personService--><bean id="personService" class="cn.winkto.service.PersonServiceImpl"><constructor-arg name="sqlSession" ref="sqlsession" /></bean><!--事務管理器--><bean id="tx" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><constructor-arg name="dataSource" ref="dataSource" /></bean><!--通知增強--><tx:advice id="txAdvice" transaction-manager="tx"><tx:attributes><tx:method name="*"/></tx:attributes></tx:advice><!--織入事務--><aop:config><aop:pointcut id="point" expression="execution(* cn.winkto.service.PersonServiceImpl.*(..))" /><aop:advisor advice-ref="txAdvice" pointcut-ref="point" /></aop:config> </beans>2.5、測試
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(value = {"classpath:applicationContent.xml"}) public class SpringTest {@AutowiredPersonService personService;@Testpublic void select(){ArrayList<Person> people = personService.selectPerson();for (Person person : people) {System.out.println(person);}} }3、Spring整合SpringMVC
3.1、導入springmvc相關jar包
<dependencies><!--spring--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.9</version></dependency><!--mybatis-spring--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.5</version></dependency><!--mybatis-test--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.3.9</version></dependency><!--druid--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.6</version></dependency><!--aop--><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.6</version></dependency><!--jdbc事務管理--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.9</version></dependency><!--mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.5</version></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.20</version></dependency><!--junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version><scope>test</scope></dependency><!--springmvc--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.9</version></dependency><!--servlet-api--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version></dependency><!--jsp--><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.3</version></dependency><!--jstl--><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency> </dependencies>3.2、注冊DispatcherServlet
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--注冊DispatcherServlet--><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-config.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><!--/ 匹配所有的請求;(不包括.jsp)--><!--/* 匹配所有的請求;(包括.jsp)--><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping> </web-app>3.3、springmvc配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 自動掃描包,讓指定包下的注解生效,由IOC容器統一管理 --><context:component-scan base-package="cn.winkto.controller"/><!-- 讓Spring MVC不處理靜態資源 --><mvc:default-servlet-handler /><!--處理器映射器和處理器適配器,以及功能增強--><mvc:annotation-driven /><!-- 視圖解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"id="internalResourceViewResolver"><!-- 前綴 --><property name="prefix" value="/WEB-INF/jsp/" /><!-- 后綴 --><property name="suffix" value=".jsp" /></bean></beans>3.4、spring與web容器整合
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--注冊DispatcherServlet--><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-config.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><!--/ 匹配所有的請求;(不包括.jsp)--><!--/* 匹配所有的請求;(包括.jsp)--><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!--spring 與 web容器整合--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param> </web-app>3.5、controller
@Controller public class WinktoController {@Autowiredprivate PersonService personService;@RequestMapping("/selectPerson")public ModelAndView selectPerson(ModelAndView modelAndView){modelAndView.addObject("people",personService.selectPerson());modelAndView.setViewName("people");return modelAndView;} }3.6、頁面
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body> ${people} </body> </html>總結
以上是生活随笔為你收集整理的Java SSM6——SSM整合的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Springboot 页面访问不到静态资
- 下一篇: Java预科篇1-学前