今天我们来讲解一下SSM整合,感觉整合这个比上一篇整合更费时,原因在于自己不太熟悉MyBatis了,下午的时候恶补了一下,看了一下相关的文档和PDF电子书,知识真的是你不用就会忘记的,以后还是不能懈怠了,把自己不擅长的领域抓一下。

为什么?怎么做?去做?我们今天围绕着三个问题来展开话题的讨论与内容的解说。

1.0我们为什么需要整合呢?

解答:一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;并且有强大的用户社区来支持它。框架通常能很好的解决一个问题。然而,你的应用是分层的,可能每一个层都需要各自的框架。

比如:

Web层,就是MVC模式里面的“C”(controller),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现。
       Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。
       DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。
       PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库。
       Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。

同时给你们恶补一下,MyBatis的背景:

      MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
      每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
      用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。
1.2怎么做?
接下来我就讲解一下我的心酸历程。。。
项目完成的功能:实现简单的登录和遍历所有的内容。
前期项目的准备工作,jar包的导入,项目架构的搭建,测试代码,正式部署项目。
整个项目部署在maven下的web项目,所以我们只需要导入节点即可。
这次添加的节点跟上一篇博客文章引用的节点类似,忘了或者第一次看这篇文章的童鞋可以去看一眼
http://www.cnblogs.com/wl0000-03/p/6669835.html
在这里我再粘贴一份:
  1. <dependencies>
  2.  
  3. <dependency>
  4. <groupId>junit</groupId>
  5. <artifactId>junit</artifactId>
  6. <version>4.3</version>
  7. </dependency>
  8.  
  9. <dependency>
  10. <groupId>org.springframework</groupId>
  11. <artifactId>spring-context</artifactId>
  12. <version>4.3..RELEASE</version>
  13. </dependency>
  14.  
  15. <!--spring web jar 包-->
  16. <dependency>
  17. <groupId>org.springframework</groupId>
  18. <artifactId>spring-web</artifactId>
  19. <version>4.3..RELEASE</version>
  20. </dependency>
  21.  
  22. <!--spring-tx jar 包-->
  23. <dependency>
  24. <groupId>org.springframework</groupId>
  25. <artifactId>spring-tx</artifactId>
  26. <version>4.3..RELEASE</version>
  27. </dependency>
  28.  
  29. <!--spring-ormjar 包-->
  30. <dependency>
  31. <groupId>org.springframework</groupId>
  32. <artifactId>spring-orm</artifactId>
  33. <version>4.3..RELEASE</version>
  34. </dependency>
  35.  
  36. <!--spring-jdbcjar 包-->
  37. <dependency>
  38. <groupId>org.springframework</groupId>
  39. <artifactId>spring-jdbc</artifactId>
  40. <version>4.3..RELEASE</version>
  41. </dependency>
  42.  
  43. <!--spring mvc jar 包-->
  44. <dependency>
  45. <groupId>org.springframework</groupId>
  46. <artifactId>spring-webmvc</artifactId>
  47. <version>4.3..RELEASE</version>
  48. </dependency>
  49.  
  50. <dependency>
  51. <groupId>org.aspectj</groupId>
  52. <artifactId>aspectjweaver</artifactId>
  53. <version>1.8.</version>
  54. </dependency>
  55.  
  56. <dependency>
  57. <groupId>log4j</groupId>
  58. <artifactId>log4j</artifactId>
  59. <version>1.2.</version>
  60. </dependency>
  61. <!--commons-dncpjar 包-->
  62. <dependency>
  63. <groupId>org.apache.commons</groupId>
  64. <artifactId>commons-dbcp2</artifactId>
  65. <version>2.1.</version>
  66. </dependency>
  67.  
  68. <!--c3p0jar 包-->
  69. <dependency>
  70. <groupId>c3p0</groupId>
  71. <artifactId>c3p0</artifactId>
  72. <version>0.9.1.2</version>
  73. </dependency>
  74.  
  75. <!--struts2-spring-plugin jar 包-->
  76. <dependency>
  77. <groupId>org.apache.struts</groupId>
  78. <artifactId>struts2-spring-plugin</artifactId>
  79. <version>2.5.</version>
  80. </dependency>
  81.  
  82. <!--struts2 core 包-->
  83. <dependency>
  84. <groupId>org.apache.struts</groupId>
  85. <artifactId>struts2-core</artifactId>
  86. <version>2.5.</version>
  87. </dependency>
  88.  
  89. <!--使用注解action-->
  90. <dependency>
  91. <groupId>org.apache.struts</groupId>
  92. <artifactId>struts2-convention-plugin</artifactId>
  93. <version>2.5.</version>
  94. </dependency>
  95.  
  96. <!--hibernate-core jar 包-->
  97. <dependency>
  98. <groupId>org.hibernate</groupId>
  99. <artifactId>hibernate-core</artifactId>
  100. <version>5.0..Final</version>
  101. </dependency>
  102.  
  103. <!--jtajar 包-->
  104. <dependency>
  105. <groupId>javax.transaction</groupId>
  106. <artifactId>jta</artifactId>
  107. <version>1.1</version>
  108. </dependency>
  109.  
  110. <!--mysql数据库驱动-->
  111. <dependency>
  112. <groupId>org.wisdom-framework</groupId>
  113. <artifactId>mysql-connector-java</artifactId>
  114. <version>5.1.34_1</version>
  115. </dependency>
  116.  
  117. <!--oraclejar 包-->
  118. <!--<dependency>
  119. <groupId>com.oracle</groupId>
  120. <artifactId>ojdbc6</artifactId>
  121. <version>11.2.0.1.</version>
  122. </dependency>-->
  123.  
  124. <!--jstl jar包-->
  125. <dependency>
  126. <groupId>org.apache.taglibs</groupId>
  127. <artifactId>taglibs-standard-spec</artifactId>
  128. <version>1.2.</version>
  129. </dependency>
  130.  
  131. <dependency>
  132. <groupId>org.apache.taglibs</groupId>
  133. <artifactId>taglibs-standard-impl</artifactId>
  134. <version>1.2.</version>
  135. </dependency>
  136.  
  137. <!--mybatis jar包-->
  138. <dependency>
  139. <groupId>org.mybatis</groupId>
  140. <artifactId>mybatis</artifactId>
  141. <version>3.4.</version>
  142. </dependency>
  143.  
  144. <dependency>
  145. <groupId>org.mybatis</groupId>
  146. <artifactId>mybatis-spring</artifactId>
  147. <version>1.3.</version>
  148. </dependency>
  149.  
  150. <!--servlet api包-->
  151. <dependency>
  152. <groupId>javax.servlet</groupId>
  153. <artifactId>servlet-api</artifactId>
  154. <version>2.5</version>
  155. </dependency>
  156.  
  157. </dependencies>
  158. <build>
  159. <resources>
  160. <resource>
  161. <directory>src/main/java</directory>
  162. <includes>
  163. <include>**/*.xml</include>
  164. <include>**/*.properties</include>
  165. </includes>
  166. </resource>
  167. </resources>
  168. </build>

项目的架构图:

大致上就是这样的一个层次体系,养好一个好的习惯,你会在以后的日子里轻松许多。

beans:

  1. package cn.mybatis.beans;
  2.  
  3. import javax.persistence.Column;
  4. import javax.persistence.GeneratedValue;
  5. import javax.persistence.Id;
  6. import javax.persistence.Table;
  7.  
  8. /**
  9. * Created by accp on 2017/4/6.
  10. */
  11. @Table
  12. public class Stock {
  13. @Id
  14. @GeneratedValue
  15. private Integer sid;
  16. @Column
  17. private String sname;
  18. @Column
  19. private String count;
  20.  
  21. public Stock() {
  22. }
  23.  
  24. public Stock(String sname, String count) {
  25. this.sname = sname;
  26. this.count = count;
  27. }
  28.  
  29. public Integer getSid() {
  30. return sid;
  31. }
  32.  
  33. public void setSid(Integer sid) {
  34. this.sid = sid;
  35. }
  36.  
  37. public String getSname() {
  38. return sname;
  39. }
  40.  
  41. public void setSname(String sname) {
  42. this.sname = sname;
  43. }
  44.  
  45. public String getCount() {
  46. return count;
  47. }
  48.  
  49. public void setCount(String count) {
  50. this.count = count;
  51. }
  52. }

在这里使用注解比较简单一些,不用再创建一个xml文件了,前提是你懂得怎么样使用注解,分情况使用。

实现类:StockDaoImpl

  1. public class StockDaoImpl implements IStockDao {
  2.  
  3. private SqlSessionFactory sqlSessionFactory;
  4. @Transactional
  5. public int login(Stock stock) {
  6. return sqlSessionFactory.openSession().getMapper(IStockDao.class).login(stock);
  7. }
  8.  
  9. @Transactional
  10. public List<Stock> selectAll() {
  11. return sqlSessionFactory.openSession().getMapper(IStockDao.class).selectAll();
  12. }
  13.  
  14. public SqlSessionFactory getSqlSessionFactory() {
  15. return sqlSessionFactory;
  16. }
  17.  
  18. public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
  19. this.sqlSessionFactory = sqlSessionFactory;
  20. }
  21. }

dao层:IStockDao

  1. public interface IStockDao {
  2. /*登录*/
  3. int login(Stock stock);
  4. /*查询全部*/
  5. List<Stock> selectAll();
  6. }

biz层:

  1. package cn.mybatis.biz;
  2.  
  3. import cn.mybatis.beans.Stock;
  4.  
  5. import java.util.List;
  6.  
  7. /**
  8. * Created by accp on 2017/4/6.
  9. */
  10. public interface IStockBiz {
  11.  
  12. /*登录*/
  13. int login(Stock stock);
  14.  
  15. /*查询全部*/
  16.  
  17. List<Stock> selectAll();
  18. }

biz层的实现类:

  1. package cn.mybatis.biz.impl;
  2.  
  3. import cn.mybatis.beans.Stock;
  4. import cn.mybatis.biz.IStockBiz;
  5. import cn.mybatis.dao.IStockDao;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Service;
  8. import org.springframework.transaction.annotation.Transactional;
  9.  
  10. import java.util.List;
  11.  
  12. /**
  13. * Created by accp on 2017/4/6.
  14. */
  15. public class StockBizImpl implements IStockBiz {
  16. private IStockDao dao;
  17. @Transactional
  18. public int login(Stock stock) {
  19. return dao.login(stock);
  20. }
  21. @Transactional
  22. public List<Stock> selectAll() {
  23. return dao.selectAll();
  24. }
  25.  
  26. public IStockDao getDao() {
  27. return dao;
  28. }
  29.  
  30. public void setDao(IStockDao dao) {
  31. this.dao = dao;
  32. }
  33. }

接下来就是action类:

  1. package cn.mybatis.action;
  2.  
  3. import cn.mybatis.beans.Stock;
  4. import cn.mybatis.biz.IStockBiz;
  5. import com.opensymphony.xwork2.ActionSupport;
  6. import org.apache.struts2.ServletActionContext;
  7.  
  8. import javax.servlet.http.HttpServletRequest;
  9. import java.util.List;
  10.  
  11. public class LoginAction extends ActionSupport {
  12. //植入biz层的对象
  13. private IStockBiz biz;
  14. //植入一个List<Stock>集合保存返回的数据
  15. private List<Stock> list;
  16. @Override
  17. public String execute() throws Exception {
  18. HttpServletRequest request = ServletActionContext.getRequest();
  19. String name = request.getParameter("name");
  20. String count1 = request.getParameter("count");
  21. Stock stock=new Stock(name,count1);
  22. int count = biz.login(stock);
  23. if(count>){
  24. list = biz.selectAll();
  25. return SUCCESS;
  26. }
  27. return INPUT;
  28. }
  29.  
  30. public List<Stock> getList() {
  31. return list;
  32. }
  33.  
  34. public void setList(List<Stock> list) {
  35. this.list = list;
  36. }
  37.  
  38. public IStockBiz getBiz() {
  39. return biz;
  40. }
  41.  
  42. public void setBiz(IStockBiz biz) {
  43. this.biz = biz;
  44. }
  45.  
  46. }

简简单单的几个步骤我们就把分层架构给搭建出来了,这也就进入了我们项目的上升期,开始编写xml文件了。

配置mybatis-config.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <!--别名-->
  7. <typeAliases>
  8. <typeAlias type="cn.mybatis.beans.Stock" alias="stock"></typeAlias>
  9. </typeAliases>
  10. <!--映射文件指定-->
  11. <mappers>
  12. <mapper resource="cn/mybatis/dao/IStockDao.xml"></mapper>
  13. </mappers>
  14. </configuration>

配置applicationContextmybatis.xml里面的内容

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:tx="http://www.springframework.org/schema/tx"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  7. xsi:schemaLocation="
  8. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  9. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
  10. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
  11. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
  12. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
  13. ">
  14.  
  15. <!--配置包扫描器-->
  16. <context:component-scan base-package="cn.mybatis"></context:component-scan>
  17.  
  18. <!--配置数据源-->
  19. <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
  20. <property name="driverClassName" value="${jdbc.driver}"></property>
  21. <property name="url" value="${jdbc.url}"></property>
  22. <property name="username" value="${jdbc.username}"></property>
  23. <property name="password" value="${jdbc.password}"></property>
  24. </bean>
  25.  
  26. <!--注入jdbc-->
  27. <context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>
  28.  
  29. <!--配置sqlSessionFactory-->
  30. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  31. <property name="dataSource" ref="dataSource"></property>
  32. <property name="configLocation" value="classpath:mybatis-config.xml"></property>
  33. </bean>
  34.  
  35. <!--dao-->
  36. <bean id="stockDao" class="cn.mybatis.dao.impl.StockDaoImpl">
  37. <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
  38. </bean>
  39.  
  40. <!--biz-->
  41. <bean id="service" class="cn.mybatis.biz.impl.StockBizImpl">
  42. <property name="dao" ref="stockDao"></property>
  43. </bean>
  44.  
  45. <!--action-->
  46. <bean id="loginAction" class="cn.mybatis.action.LoginAction">
  47. <property name="biz" ref="service"></property>
  48. </bean>
  49.  
  50. <!--事务管理器-->
  51. <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  52. <property name="dataSource" ref="dataSource"></property>
  53. </bean>
  54.  
  55. <!--注解驱动-->
  56. <tx:annotation-driven transaction-manager="txManager"></tx:annotation-driven>
  57. </beans>

配置IStockDao.xml文件:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="cn.mybatis.dao.IStockDao">
  6.  
  7. <select id="login" resultType="int">
  8. select count(*) from stock where sname=#{sname} and count=#{count}
  9. </select>
  10.  
  11. <select id="selectAll" resultType="stock">
  12. select * from stock
  13. </select>
  14. </mapper>

千万不要忘了配置web.xml文件呦。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7.  
  8. <display-name>Archetype Created Web Application</display-name>
  9.  
  10. <!--设置读取路径-->
  11. <context-param>
  12. <param-name>contextConfigLocation</param-name>
  13. <param-value>classpath:applicationContextmybatis.xml</param-value>
  14. </context-param>
  15.  
  16. <!--配置监听器-->
  17. <listener>
  18. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  19. </listener>
  20.  
  21. <!--配置filter-->
  22. <filter>
  23. <filter-name>struts2</filter-name>
  24. <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
  25. </filter>
  26. <filter-mapping>
  27. <filter-name>struts2</filter-name>
  28. <url-pattern>/*</url-pattern>
  29. </filter-mapping>
  30. <welcome-file-list>
  31. <welcome-file>login.jsp</welcome-file>
  32. </welcome-file-list>
  33. </web-app>

struts.xml文件:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <!DOCTYPE struts PUBLIC
  4. "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
  5. "http://struts.apache.org/dtds/struts-2.5.dtd">
  6.  
  7. <struts>
  8. <constant name="struts.i18n.encoding" value="utf-8"></constant>
  9. <constant name="struts.devMode" value="false"></constant>
  10. <package name="default" extends="struts-default" namespace="/">
  11. <action name="login" class="loginAction">
  12. <result name="success">/success.jsp</result>
  13. <result name="input">/login.jsp</result>
  14. </action>
  15. </package>
  16. </struts>

写到这里,我们先测试一下,防止有什么差错。

测试登录是否成功:

  1. @Test
  2. public void login(){
  3. ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContextmybatis.xml");
  4. IStockBiz biz=(IStockBiz)ctx.getBean("service");
  5. int count = biz.login(new Stock("北大", ""));
  6. System.out.println(count);
  7. }

这就说明你的登录通道没有问题,我们再来测试一下查询的

  1. @Test
  2. public void select(){
  3. ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContextmybatis.xml");
  4. IStockBiz biz=(IStockBiz)ctx.getBean("service");
  5. List<Stock> list = biz.selectAll();
  6. System.out.println(list.size());
  7. }

我们来看一下数据库是否是两条记录:

数据库的数据也是两条,就说明我们得到的结果没错,现在我们的登录和查询全部都没有错误,接下来我们就可以把项目加到Tomcat里了,

看看我们使用页面登录和查询有没有什么错误。

login.jsp页面

  1. <%@ taglib prefix="s" uri="/struts-tags" %>
  2. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  3. <html>
  4. <head>
  5. <title>登录页面</title>
  6. </head>
  7. <body>
  8. <form action="login" method="POST">
  9. <input name="name"/>
  10. <input name="count">
  11. <input type="submit" value="登录">
  12. </form>
  13. </body>
  14. </html>

success.jsp

  1. <%@ taglib prefix="s" uri="/struts-tags" %>
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  3. <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
  4. <html>
  5. <head>
  6. <title>成功页面</title>
  7. </head>
  8. <body>
  9. 欢迎登录<br>
  10. 以下是查询的内容:
  11. <c:forEach var="item" items="${list}">
  12. ${item.sname}
  13. </c:forEach>
  14. </body>
  15. </html>

在这里经常忘了少配置xml文件而出现各种各样的问题,再加上不熟悉mybatis的书写,写这篇文章给我最大感触就是,一定要塌下心来学习,有许多细节上的问题需要我们注意,知识点的熟悉程度也要好,会解决问题。
其实写这个项目过程中一直报着一个空指针的错误,我看了好久,把代码从上到下都看了一遍,可能是觉得自己不会再小问题上犯错误就没看创建实体类中的代码检查的那么仔细,其实最后错误的引发点就是在我创建的一个构造上了,想省时间用快捷键生成的,反而给自己埋下了大坑,这个亏吃的不亏,我是这样觉得的,这样就会给自己提了个醒,小事要认真,我想我会一直记得。

不好意思,啰嗦了一下,接下来让我们把项目给启动起来吧,看看效果。

效果出来了就放心了,这就说明我们配置的没有问题。

-----------------初学者自己的记录

 
 

整合第二次(SSM第一次)------------>spring+struts2+mybatis的更多相关文章

  1. 简单易学的SSM(Spring+SpringMVC+MyBatis)整合

    SSM(Spring+SpringMVC+MyBatis)的整合: 具体执行过程:1.用户在页面向后台发送一个请求 2.请求由DispatcherServlet 前端控制器拦截交给SpringMVC管 ...

  2. Java基础-SSM之Spring和Mybatis以及Spring MVC整合案例

    Java基础-SSM之Spring和Mybatis以及Spring MVC整合案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 能看到这篇文章的小伙伴,详细你已经有一定的Java ...

  3. Java基础-SSM之Spring和Mybatis整合案例

    Java基础-SSM之Spring和Mybatis整合案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   在之前我分享过mybatis和Spring的配置案例,想必大家对它们的 ...

  4. SSM,即Spring+SpringMVC+MyBatis三个开源框架的整合框架集。

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻 ...

  5. 手动配置三大框架整合:Spring+Struts2+mybatis

    如今主流的项目框架中,数据库持久层有可能不是hibernate,而是mybatis或者ibatis,事实上它们都是一样的,以下我来把环境搭建一下: [导入相关jar包]新建web项目projectms ...

  6. 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(上)

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻 ...

  7. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(三)(错误整理篇)

    使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二) 以上两篇已经把流 ...

  8. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一)

    梳理下使用spring+springMVC+mybatis 整合后的一个简单实例:输入用户的 ID,之后显示用户的信息(此次由于篇幅问题,会分几次进行说明,此次是工程的创建,逆向生成文件以及这个简单查 ...

  9. Maven+SSM框架(Spring+SpringMVC+MyBatis) - Hello World(转发)

    [JSP]Maven+SSM框架(Spring+SpringMVC+MyBatis) - Hello World 来源:http://blog.csdn.net/zhshulin/article/de ...

  10. SSM(Spring+SpringMVC+MyBatis)高并发优化思路

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring.MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容).常作为数据源较简单的web项目的框架 ...

随机推荐

  1. 我的JS 中级学习篇

    在codefordream上进入中级学习后,感觉立马从js的基础学习往前跳了好远,上面的东西好像都是第一次看到一样.这时候才发现,说来也曾接触过js,但是这时候才发现对js的认识就停在知道两点:js中 ...

  2. ASP.NET使用WebApi接口实现与Android客户端的交互(图片或字符串的接收与回传)

    最近在使用WebApi   做下记录 //此接口实现接收Android客户端上传的JSON格式的信息,并返回"nihao"字符串 [Route("ReceiveData& ...

  3. java生成二维码

    具体代码如下,作为一个新手,期待与你一起交流: import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.Buf ...

  4. 手把手教你用Mysql-Cluster-7.5搭建数据库集群

    前言 当你的业务到达一定的当量,肯定需要一定数量的数据库来负载均衡你的数据库请求,我在之前的博客中已经说明了,如何实现负载均衡,但是还有一个问题就是数据同步,因为负载均衡的前提就是,各个服务器的数据库 ...

  5. 如何让celery接受定制的参数

    背景介绍 最近的一个项目使用到celery结算订单,使用celery的确很方便.但是复杂的内部框架导致了需要传人大量的参数例如数据库配置文件等.下面先来看看我仿照官网写的代码.所有代码都放到githu ...

  6. [POJ1088] 滑雪(递归dp)

    Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...

  7. SQLServer提取日期中的年月日及其他格式

    提取年:datepart(yy,getdate())提取月:datepart(mm,getdate())提取日:datepart(dd,getdate())提取日期格式:Select CONVERT( ...

  8. swiper遇到的问题及解决方法

    上一家公司主要是做些微信的场景页啥的,然后需要快速开发,所以第一时间选择了swiper,毕竟开发快速,比较方便然后api多(虽然并没有用很多),用这个的朋友.缺点的话有时候用了就晓得,下面开始讲讲,第 ...

  9. Mditor 发布「桌面版」了 - http://mditor.com

    简单说明 Mditor 最早只有「组件版」,随着「桌面版」的发布,Mditor 目前有两个版本: 可嵌入到任意 Web 应用的 Embed 版本,这是一桌面版的基础,Repo: https://git ...

  10. UI 设计模式 手势识别器

    1> target / action 设计模式 : target ['tɑːgɪt]         1>什么是耦合 : 耦合是衡量一个程序呢写的好坏的标准之一 耦合是衡量模块与模块之间关 ...