柠檬学院--基于Springmvc+Spring+Mybatis+Bootstrap+jQuery Mobile +MySql教务管理系统
springboot整合mybatis实现增删改查小案例

springboot整合mybatis实现增删改查⼩案例⼀、springboot简单hello world1.1 使⽤springboot项⽬前提是必须学会使⽤maven,maven這⾥就不多说了⽹上招⼀⼤堆教程1.2 创建⼀个war包的maven项⽬,创建后在pox.xml添加如下jar1.3 创建⼀个springboot的程序⼊⼝启动类:如下package com.ibigsea.bootdao;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication; importorg.springframework.transaction.annotation.EnableTransactionManagement;@SpringBootApplicationpublic class UserApplication {public static void main(String[] args) {SpringApplication.run(UserApplication.class, args);}}package com.ibigsea.bootdao.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("users")public class UserController {@RequestMapping("hello")public String hello(){return "Hello World";}}浏览器访问结果如下:⾄此⼀个简单的springboot的应⽤已完成,下⾯整合mybatis实现简单的增删改查案例⼆、springboot整合mybatis案例2.1 ⾸先需要在pox.xml导⼊jar 在hello world案例之上添加如下⼏个jar包</dependency>2.2 在src/main/resources⽬录下创建⼀个application.properties⽂件,内容如下2.3 entity类package com.ibigsea.bootdao.entity;import java.io.Serializable;public class User implements Serializable {private static final long serialVersionUID = 8809101560720973267L; private Integer id;private String userName;private Integer age;public User() {// TODO Auto-generated constructor stub}public User(String userName, Integer age) {super();erName = userName;this.age = age;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUserName() {public void setUserName(String userName) {erName = userName;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "User [id=" + id + ", userName=" + userName + ", age=" + age + "]";}}2.4 mapper接⼝类可以在类加上@Mapper注解也可以在springboot应⽤的程序⼊⼝类@MapperScan(“com.ibigsea.bootdao.mapper”) package com.ibigsea.bootdao.mapper;import java.util.List;import org.apache.ibatis.annotations.Mapper;import er;public interface UserMapper {/*** 新增* @param userint save(User user);/*** 根据Id查询* @param user* @return*/User selectById(Integer id);/*** 根据Id修改* @param user* @return*/int updateById(User user);/*** 删除* @param user* @return*/int deleteById(Integer id);/*** 查询所有* @param user* @return*/List<User> queryAll();/*** 根据username查询*/User findByName(String username); }<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN""/dtd/mybatis-3-mapper.dtd" ><mapper namespace="erMapper" ><insert id="save" parameterType="er">insert into user(username,age) values(#{userName,jdbcType=VARCHAR},#{age,jdbcType=NUMERIC})</insert><select id="selectById" resultType="er">select * from user where id = #{id,jdbcType=NUMERIC}</select><update id="updateById" parameterType="er"> update user setusername = #{userName,jdbcType=VARCHAR} ,age = #{age,jdbcType=NUMERIC}where id = #{id,jdbcType=NUMERIC}</update><delete id="deleteById">delete from user where id = #{id,jdbcType=NUMERIC}</delete><select id="queryAll" resultType="er">select * from user</select><select id="findByName" resultType="er">select * from user where username=#{userName}</select></mapper>2.6 业务接⼝类与2.4的mapper接⼝类内容⼀致2.7 业务接⼝类的实现package com.ibigsea.bootdao.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import er;import erMapper;import erService;@Transactional@Servicepublic class UserServiceImpl implements UserService{@Autowiredprivate UserMapper userMapper;@Overridepublic int save(User user) {int myuser= userMapper.save(user);//测试事务管理//int i =1/0;return myuser;}@Overridepublic User selectById(Integer id) {return userMapper.selectById(id);}@Overridepublic int updateById(User user) {return userMapper.updateById(user);}@Overridepublic int deleteById(Integer id) {return userMapper.deleteById(id);}@Overridepublic List<User> queryAll() {return userMapper.queryAll();}@Overridepublic User findByName(String username) {return userMapper.findByName(username);}}此处配置了事物管理需要在springboot⼊⼝类添加@EnableTransactionManagement 开启事物管理2.8 控制层package com.ibigsea.bootdao.controller;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import er;import erService;@RestController@RequestMapping("users")public class UserController {@RequestMapping("hello")public String hello(){return "Hello World";}@RequestMapping("/add/{name}/{age}")public User insert(@PathVariable("name")String name,@PathVariable Integer age){userService.save(new User(name,age));return userService.findByName(name);}@RequestMapping("/findById/{id}")public User findById(@PathVariable("id") Integer id){return userService.selectById(id);}@RequestMapping("/deleteById/{id}")public void deleteById(@PathVariable("id") Integer id){userService.deleteById(id);}@RequestMapping("/updateById/{id}")public void updateById(@PathVariable("id") Integer id){User user = new User();user.setId(id);user.setAge(100);user.setUserName("xiaoguo");userService.updateById(user);}@RequestMapping("getUserList")public List<User> getUserList(){return userService.queryAll();}}2.9 spring boot 程序⼊⼝启动类package com.ibigsea.bootdao;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication; importorg.springframework.transaction.annotation.EnableTransactionManagement;@SpringBootApplication@EnableTransactionManagement@MapperScan("com.ibigsea.bootdao.mapper")public class UserApplication {public static void main(String[] args) {SpringApplication.run(UserApplication.class, args);}}⾄此springboot整合mybatis整合完成,项⽬的⽬录结构如下:运⾏结果如下:。
基于SpringBoot的校园轻博客系统的设计与实现

基于SpringBoot的校园轻博客系统的设计与实现一、引言在互联网时代,博客成为了人们记录生活、分享知识的重要平台之一。
针对校园人士的需求,本文设计了一款基于SpringBoot的校园轻博客系统,旨在为校园用户提供一个方便、快捷的博客发布与分享平台。
二、需求分析校园轻博客系统是面向高校学生的一款应用软件,主要目的是方便学生朋友之间相互了解、互动交流。
需求分析主要包括用户需求、系统需求和功能需求三个方面。
1. 用户需求:(1) 注册和登录:用户可以通过手机号或邮箱注册新账号,并通过账号登录系统。
(2) 个人资料管理:用户可以编辑和管理个人资料,包括头像、昵称、性别、个人简介等。
(3) 发布博客:用户可以发布个人博客,并附带图片、视频或其他附件。
(4) 关注和粉丝:用户可以关注其他用户,同时可以查看自己的粉丝列表。
(5) 评论与点赞:用户可以对他人的博客进行评论和点赞。
(6) 查看动态:用户可以查看关注用户的最新博客动态,并进行互动。
(7) 博客管理:用户可以管理自己发布的博客,包括编辑、删除和分类等。
2. 系统需求:(1) 安全性:保证用户数据的安全,并对用户进行合法性验证。
(2) 性能:系统需要具备高并发处理能力,能够快速响应用户请求。
(3) 可扩展性:系统需要具备良好的可扩展性,方便后续功能的迭代升级。
3. 功能需求:(1) 注册与登录功能:用户注册时需要进行手机号或邮箱认证,并进行密码验证,登录时通过账号密码验证。
(2) 个人资料管理功能:用户可以编辑和管理个人资料,包括头像上传、昵称修改和个人简介编辑等。
(3) 博客发布功能:用户可以发布自己的博客,支持附带图片、视频和附件。
(4) 关注与粉丝功能:用户可以关注其他用户,并查看和管理自己的粉丝列表。
(5) 评论与点赞功能:用户可以对他人的博客进行评论和点赞操作。
(6) 动态查看功能:用户可以查看关注用户的最新博客动态,并进行互动。
(7) 博客管理功能:用户可以对自己发布的博客进行编辑、删除和分类等操作。
基于Maven的SpringSpringMVCMybatis的环境搭建

老大想要做一个TimeSheet的东西,要管理公司员工每年的时间和effort. 反正还要个什么报表,老大发话了,很荣幸我有此时机又可以和刚进公司带我的老大一起做东西了,感觉很好。
不过这个工程是一个partime job,自己在工作中抽时间来做。
当然啦,堆码的事情肯定我来搞定啦。
工程开发,需求不是我定,所以在等待需求的时候,我就将环境先搭建起来。
上次做了一个Spring + Spring MVC + Mybatis + Log4J + JUnit Test的环境搭建,这次也差不多,不过就是基于了Maven,同时也添加了事务管理。
首先,可以去了解一下maven,个人觉得这个东西就是JAR包管理方便,不用自己一个个去写,直接添加dependence就行了,不过有时候要注意哟,有可能重复的包含了某个JAR包,会报冲突的哟,亲!因为只有一个POM文件里指定JAR包,所以整个工程都很小的,一般就几MB,只有你在将该工程打成WAR包的时候,maven会自动的把三方JAR包放进工程,然后你就可以去部署到Tomcat的webapp下面了,放进去,重启Tomcat就OK。
1.开始搭建我的环境吧。
首先,IDE我用的是eclipse的JEE版本。
要保证装上了Maven哟,可以使用eclipse的Install New Software,URL地址是,然后一步步走下去,安装好了过了会重启一次。
给一个忠告哟,安装好了maven后,不要使用IDE里面的了,而是去官方下载一个,解压,然后让IDE 的Maven指向你下载安装的,如图:安装成功了,我们用Maven创立一个新的WEB工程。
File—> New—> Other—>Maven Project.选默认,下一步。
在Select an Archetype里面种找到如下列图所示3.然后next,输入;artifactId:Test,然后finish,稍微等待一下,就创立好了。
MyBatis 3 整合Spring3、SpringMVC

MyBatis整合Spring开发环境:System:WindowsWebBrowser:IE6+、Firefox3+JavaEE Server:tomcat5.0.2.8、tomcat6IDE:eclipse、MyEclipse 8Database:MySQL开发依赖库:JavaEE5、Spring 3.0.5、Mybatis 3.0.4、myBatis-spring-1.0、junit4.8.2Email:hoojo_@Blog:/IBM_hoojo/1、首先新建一个WebProject 命名为MyBatisForSpring,新建项目时,使用JavaEE5的lib库。
然后手动添加需要的jar包,所需jar包如下:2<!-- 设置Spring容器加载配置文件路径 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:applicationContext-*.xml</param-value> </context-param><!-- 配置Spring核心控制器 --><servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServl et</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/dispatcher.xml</param-value> </init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><!-- 解决工程编码过滤器 --><filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncoding Filter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>3xsi:schemaLocation="/schema/bean s/schema/beans/spring-beans-3.0.x sd/schema/context/schema/context/spring-context-3 .0.xsd"><!-- 注解探测器 --><context:component-scan base-package="com.hoo"/><!-- annotation默认的方法映射适配器 --><bean id="handlerMapping"class="org.springframework.web.servlet.mvc.annotation.DefaultAnnot ationHandlerMapping"/><bean id="handlerAdapter"class="org.springframework.web.servlet.mvc.annotation.AnnotationMe thodHandlerAdapter"/></beans>4、在src目录下添加applicationContext-common.xml,内容如下:<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/bean s/schema/beans/spring-beans-3.0.x sd/schema/aop/schema/aop/spring-aop-3.0.xsd/schema/tx/schema/tx/spring-tx-3.0.xsd "><!-- 配置DataSource数据源 --><bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource "><property name="driverClassName"value="com.mysql.jdbc.Driver"/><property name="url"value="jdbc:mysql://10.0.0.131:3306/ash2"/><property name="username"value="dev"/><property name="password"value="dev"/></bean><!-- 配置SqlSessionFactoryBean --><bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource"ref="dataSource"/><property name="configLocation"value="classpath:mybatis.xml"/><!-- mapper和resultmap配置路径 --><property name="mapperLocations"><list><!-- 表示在com.hoo.resultmap包或以下所有目录中,以-resultmap.xml结尾所有文件 --><value>classpath:com/hoo/resultmap/**/*-resultmap.xml</value> <value>classpath:com/hoo/entity/*-resultmap.xml</value><value>classpath:com/hoo/mapper/**/*-mapper.xml</value></list></property></bean><!-- 单独配置一个Mapper;这种模式就是得给每个mapper接口配置一个bean --> <!--<bean id="accountMapper"class="org.mybatis.spring.mapper.MapperFactoryBean"><property name="mapperInterface"value="com.hoo.mapper.AccountMapper" /><property name="sqlSessionFactory" ref="sqlSessionFactory" /></bean><bean id="companyMapper"class="org.mybatis.spring.mapper.MapperFactoryBean"><property name="mapperInterface"value="panyMapper" /><property name="sqlSessionFactory" ref="sqlSessionFactory" /></bean>--><!-- 通过扫描的模式,扫描目录在com/hoo/mapper目录下,所有的mapper都继承上面的配置最先配置的是DataSource,这里采用的是jdbc的DataSource;然后是SqlSessionFactoryBean,这个配置比较关键。
基于Spring MVC及MyBatis的Web应用框架研究

Ab ta t Th r r t f r be u ha o rp roma c , ihc mp e i ,o ru a it f o eec i eWe p l ain sr c : eeaeal o lmss c sp o ef r n e hg o lxt lw sbl o d t.nt ba pi t oo p y e i y c h c o
析 ,基 于 S r gMV 及 My ai We pn C i Bt s的 b应 用框 架研 究 , 可 以 解决 性 能 差 、 复杂 度 高、代 码 复 用 率 低 等 问题 。 关 键 词 :S r gMV p n C;My t ;T C r 用 卡 业 务 系统 ;框 架 i Bas OP ad信 i 中 图分 类 号 :T 3 1 P 1 文 献标 志 码 :A
与 CS结 构 相 结 合 ,采 用 S r gMV 设 计 模 式和 My ai 基础 的 We / pi C n Bt s为 b应 用 框 架 ,并 对 该 框 架 的 结构 、组 成 等 内容 进 行 分 析 和 研 究。 以 T C r OP ad信 用 卡 业 务 系 统 为应 用 实例 ,说 明 S r g MV 和 My a s We pi C n Bt 在 i b系 统 中 的应 用。 通 过 实验 结 果 分
0 引言
针 对 We 应 用 需 求 的 目益 增 长 ,快 速 开发 高质 量 的 b We b应用 系统 ,成 为 业 界 研 究 的一 大 热 点 问 题 。一 般 ,We b 应 用表 现 层 由 J P Srl 实现 ,主 要 完 成 与 用 户 的 交 互 ; S 、 eve t 业 务层 交给 E B 实现 ,完 成 系 统 核 心 业 务 逻 辑 的 处 理 ; 数 J 据 层 由 J C加 DA DB O对 象 或 是 由 EB 中 的 E t B a J ni en实现 , y t 负 责 与各 种 数 据 源 的交 互 。 由于 E B 提 供 几 乎 所 有 的 企 业 J 级 服 务 【,所 以 本 身 启 动慢 ,部 署 比 较 复 杂 ,而 且 性 能 比较 1 】 差 。本 文 采 用 S r gMVC设 计 模 式 和 My ai框 架 , 提 出 pi n Bt s 了 B S 结 构 与 CS 结构 相 结 合 的 We 应 用 框 架 ,应 用 于 / / b T P ad信 用 卡 业 务 系 统 ,说 明 S r g O Cr pi n MVC和 My a s B t 在 i We 统 中 的 应 用 ,该系 统 在 性 能 差 、 杂 度 高 等 方 面 有 很 b系 复
SpringMVC+Spring+Mybatis框架配置详细步骤(eclipse普通版)

SSI框架搭建SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6编号:SSI-SMVC3-S3-I3版本:V1.0级别:公开编写时间:2016-02-17目录1 导言 (1)1.1 目的 (1)1.2 范围 (1)1.3 说明 (1)2 搭建SpringMVC (2)2.1 搭建所需jar包 (2)2.2 其他依赖包 (3)2.3 搭建步骤 (4)2.3.1 创建项目 (4)2.3.2 导入jar包 (6)2.3.3 配置web.xml (7)2.3.4 配置spring-servlet.xml (9)2.3.5 配置applicationContext.xml (10)2.3.6 配置log4j.properties (10)3 整合mybatis (11)3.1 整合所需jar包 (11)3.2 其他依赖包 (11)3.3 整合步骤 (11)3.3.1 导入jar包 (11)3.3.2 配置config.properties (12)3.3.3 配置spring-dataSource.xml (12)3.3.4 配置applicationContext.xml (15)3.3.5 配置mybatis-config.xml (16)3.3.6 创建实体model (17)3.3.7 创建实例化dao (19)3.3.8 创建业务服务service (21)3.3.9 创建控制层controller (23)3.3.10 页面代码 (28)3.3.11 启动项目 (37)1导言1.1 目的本文档是根据个人的工作经验搭建的轻量级SSI框架,也是实际应用中比较全面的基础框架,用于指导SSI框架初学者学习搭建SSI框架,希望能给各位使用者提供帮助,同时也希望朋友们尽量去帮助其他人。
1.2 范围本次框架搭建的版本是SpringMVC3.1.2+Spring3.1.2+Mybatis3.2.6,数据库采用的是mysql,在eclipse开发工具下搭建直接搭建的web项目,页面采用的是h5,ajax实现数据访问,如果页面为jsp等,则修改controller的返回类型即可。
SpringBoot整合MyBatis超详细教程

SpringBoot整合MyBatis超详细教程⽬录1.整合MyBatis操作1.1.配置模式1.2.注解模式1.3.混合模式1.整合MyBatis操作前⾯⼀篇提到了,实际项⽬中更常⽤的还是MyBatis框架,⽽SpringBoot整合MyBatis进⾏CRUD也⾮常⽅便。
下⾯从配置模式、注解模式、混合模式三个⽅⾯进⾏说明MyBatis与SpringBoot的整合。
1.1.配置模式MyBatis配置模式是指使⽤mybatis配置⽂件的⽅式与SpringBoot进⾏整合,相对应的就有mybatis-config.xml(⽤于配置驼峰命名,也可以省略这个⽂件)、XxxMapper.xml⽂件。
主要步骤为:导⼊mybatis官⽅starter编写mapper接⼝。
标准@Mapper注解编写sql映射⽂件并绑定mapper接⼝在application.yaml中指定Mapper配置⽂件的位置,以及指定全局配置⽂件的信息(建议;配置在mybatis.configuration中,可以省略mybatis-config.xml⽂件)下⾯是具体整合配置步骤:①引⼊相关依赖pom.xml配置:pom.xml<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--整合mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.4</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build>②编写对应Mapper接⼝:@Mapper //这个注解表⽰了这个类是⼀个mybatis的mapper接⼝类@Repositorypublic interface UserMapper {//@Select("select * from user")List<User> findAllUsers();//@Insert("insert into user(id, username, password) values (#{id}, #{username}, #{password})")void insert(User user);//@Update("update user set username = #{username}, password = #{password} where id = #{id}")void update(User user);//@Delete("delete from user where id = #{id}")void deleteById(Integer id);}③在resources下创建对应的mapper⽂件,对应domain类,数据库表单如下:User类:@Datapublic class User {private Integer id;private String username;private String password;}数据库user表:UserMapper.xml⽂件:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN" "/dtd/mybatis-3-mapper.dtd"> <!--namespace表⽰当前mapper的唯⼀标识:⼀般使⽤domain的全路径名+Mapper来命名--><mapper namespace="com.fengye.springboot_erMapper"><!--id:⽅法表⽰,⼀般配置对应的⽅法;resultType:表⽰该⽅法有返回,返回需要封装到对应实体的类型--><select id="findAllUsers" resultType="com.fengye.springboot_er">select * from user</select><insert id="insert" parameterType="com.fengye.springboot_er">insert into user(id, username, password) values (#{id}, #{username}, #{password})</insert><update id="update" parameterType="com.fengye.springboot_er">update user set username = #{username}, password = #{password} where id = #{id}</update><delete id="deleteById" parameterType="Integer">delete from user where id = #{id}</delete></mapper>④对应配置application.yml⽂件:application.ymlserver:port: 8083spring:datasource:username: rootpassword: admin#假如时区报错,增加时区配置serverTimezone=UTCurl: jdbc:mysql://localhost:3306/mybatis02_0322?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 driver-class-name: com.mysql.cj.jdbc.Drivermybatis:#config-location: classpath:mybatis/mybatis-config.xml 使⽤了configuration注解则⽆需再指定mybatis-config.xml⽂件 mapper-locations: classpath:mybatis/mapper/*.xmlconfiguration: #指定mybatis全局配置⽂件中的相关配置项map-underscore-to-camel-case: true1.2.注解模式注解模式使⽤主要步骤:导⼊mybatis官⽅依赖注解⽅式编写mapper接⼝在application.yaml中指定Mapper配置⽂件的位置,以及指定全局配置⽂件的信息可以看到注解模式⽐配置模式少了编写Mapper.xml⽂件,简化了简单SQL语句的xml⽂件编写。
mybatis源码分析(三)mybatis-spring整合源码分析

二丶springboot自动装配的关键配置代码
org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration
1) 实例化SqlSessionFactory, 注意的是, SqlSessionFactoryBean是一个工厂Bean, 最后调用SqlSessionFactoryBean#getObject()生成 对应的SqlSessionFacatory
@Bean @ConditionalOnMissingBean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
SqlSessionFactoryBean factory = new SqlSessionFactoryBean(); factory.setDataSource(dataSource); factory.setVfs(SpringBootVFS.class); if (StringUtils.hasText(this.properties.getConfigLocation())) {
factory.setTypeAliasesSuperType(this.properties.getTypeAliasesSuperType()); } if (StringUtils.hasLength(this.properties.getTypeHandlersPackage())) {
factory.setTypeHandlersPackage(this.properties.getTypeHandlersPackage()); } if (!ObjectUtils.isEmpty(this.typeHandlers)) {
SpringMVC+Mybatis+extjs4项目配置

SpringMVC+Mybatis+extjs4项目配置1)软件准备:1.Jdk6:这个需要统一一下,如果用高于jdk6得版本开发,到发布到tomcat服务器后可能运行不正常,在ide上的高版本到低版本的话,也可能出现编译错误的问题,这个要跟生产环境统一起来;2.Tomcat6(7):这个好像关系不太大,主要看生产环境,但如果页面使用了el表达式的话,则需要用高一点的tomcat服务器,低版本的tomcat对el表达式不支持;3.springsource-tool-suite:开发的ide,推荐使用zip安装包,版本2.9的吧,现在的3.1不是很稳定,占用内存很高,经常不响应2)springMVC相关库(jar)配置1.jar的引用主要配置在maven的pom.xml文件了,整个项目都是用pom.xml文件来组织的,如下图:实际项目的结果如:有点不同,所有的代码是放在src文件夹里的,main/webapp文件夹则对应于发布到tomcat 应用的文件夹,所有如果要提交svn,则只需要提交src里的代码,如果改动了非*.java代码,也只要更新webapp目录里改动文件至tomcat相应目录就行了;2.配置pom.xml可能用到的jar包:1)Mybatis:数据库持续层;<dependency><groupId>org.mybatis</groupId><version>1.1.1</version></dependency>2)Mysql:数据库的jdbc的jar包;<dependency><version>5.1.21</version></dependency>3)其他可能用得到的jar包:zip(org.apache.ant),json转换(com.alibaba),文件上传组件(commons-fileupload,commons-io)<dependency><groupId>com.alibaba</groupId><version>1.1.22</version></dependency><dependency></dependency><!-- File Upload --><dependency><version>1.2.2</version></dependency><dependency><version>2.0.1</version></dependency><dependency><groupId>org.codehaus.jackson</groupId><version>1.4.2</version></dependency>4)当改动pom.xml文件后,maven会自动更新项目的jar包,并更新至项目里的引用,如下图:3.项目里配置当把需要用到的jar包引用之后,spring框架里可以使用jar包里面的类,但有些jar包时需要spring的运行时自动加载到mvc运行环境中的,比如数据库持续层mybatis1)Mybatis配置:<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" />rEncoding=UTF-8&useUnicode=true" /><property name="password" value="123456" /></bean><!-- 配置SqlSessionFactoryBean --><bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryB ean"><property name="dataSource"ref="dataSource"/><property name="configLocation"value="classpath:mybatis.xml"/> </bean><!-- 配置事务管理器 --><bean id="transactionManager"class="org.springframework.jdbc.datasource. DataSourceTransactionManager"><property name="dataSource"ref="dataSource"/></bean><!-- 配置事务的传播特性 --><bean id="baseTransactionProxy"class="org.springframework.transaction.in terceptor.TransactionProxyFactoryBean"abstract="true"><property name="transactionManager"ref="transactionManager"/><property name="transactionAttributes"><props><prop key="add*">PROPAGATION_REQUIRED</prop><prop key="edit*">PROPAGATION_REQUIRED</prop><prop key="remove*">PROPAGATION_REQUIRED</prop><prop key="insert*">PROPAGATION_REQUIRED</prop><prop key="update*">PROPAGATION_REQUIRED</prop><prop key="del*">PROPAGATION_REQUIRED</prop><prop key="*">readOnly</prop></props></property></bean><!-- 通过扫描的模式,扫描目录 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage"value="com.spring.wlanmis.data.mapper"/></bean>上面的配置主要是:数据库连接,mybatis.xml,MapperScannerConfigurer(数据库Mapping扫描目录,项目的包结构如下:可以这样看,entity里的类一般要配置在mybatis.xml里,mapper里的文件是成对的,一个是xxx.xml文件,另一个是xxx.java(接口)文件,并mapper必须在配置root-content.xml 里的org.mybatis.spring.mapper.MapperScannerConfigurer中,不然mybatis组件就不能实例化2)其他的配置配置文件上传,详细代码可以查看FileUploadController.java<bean id="multipartResolver"class="monsMultipartResolv er"><property name="maxUploadSize"value="8000000"/></bean>剩下的就只是一些普通的javabean配置了,只是为了配置项目的全局参数,类似于ftpScanRunner3)前端extjs的配置:前端比较简单,只是在页面里设置引用,修改后也不用编译代码,发布时可以直接更新到服务器里相应目录进行覆盖,一般引用如下图项目里文件目录结构如下:具体的extjs4的前端mvc框架,还是参照官网/deploy/ext-4.1.0-gpl/examples/,可以先了解一下它的运行机制,项目的所有视图切换都在menu.json文件里。
基于SpringBoot的校园轻博客系统的设计与实现

基于SpringBoot的校园轻博客系统的设计与实现基于SpringBoot的校园轻博客系统的设计与实现一、引言在当前高校学生中,博客已经成为了一种流行的交流方式,能够帮助学生们记录学习经验、分享生活感悟以及展示自我才能。
因此,设计并实现一个基于SpringBoot的校园轻博客系统具有重要的实践意义。
本文将详细介绍该系统的设计与实现。
二、系统设计1. 系统需求分析校园轻博客系统的主要功能包括用户注册与登录、博客发布与管理、评论与回复、分类与标签以及个人中心等。
用户可以通过注册和登录来创建个人账户,可以自由发布和管理博客,其他用户可以对博客进行评论与回复。
同时,该系统还应该支持对博客进行分类与标签的管理,并提供个人中心供用户管理个人信息。
2. 系统架构设计系统采用前后端分离的架构设计,前端使用Vue.js来实现页面展示和与后端交互,后端使用SpringBoot来实现业务逻辑和数据处理。
数据库采用MySQL来存储用户信息、博客内容以及评论回复等数据。
3. 数据库设计根据系统需求,设计以下几张数据库表:- 用户表(User):存储用户的基本信息,包括用户ID、用户名、密码、邮箱等。
- 博客表(Blog):存储博客的详细信息,包括博客ID、标题、内容、发布时间等。
- 评论表(Comment):存储评论的详细信息,包括评论ID、博客ID、评论内容、评论者ID等。
- 回复表(Reply):存储回复的详细信息,包括回复ID、评论ID、回复内容、回复者ID等。
- 分类表(Category):存储博客的分类信息,包括分类ID和分类名称等。
- 标签表(Tag):存储博客的标签信息,包括标签ID和标签名称等。
4. 系统模块设计根据系统设计,将系统划分为以下几个模块:- 用户模块:包括用户注册、登录、个人信息修改等功能。
- 博客模块:包括博客发布、编辑、删除等功能。
- 评论与回复模块:包括评论博客、回复评论等功能。
- 分类与标签模块:包括分类管理、标签管理等功能。
SpringBoot系列教程Mybatis+注解整合篇

<build> <pluginManagement> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </pluginManagement>
@Select("<script> select * from money " + "<trim prefix=\"WHERE\" prefixOverrides=\"AND | OR\">" + " <if test=\"id != null\">" + " id = #{id}" + " </if>" + " <if test=\"name != null\">" + " AND name=#{name}" + " </if>" + " <if test=\"money != null\">" + " AND money=#{money}" + " </if>" + "</trim>" + "</script>")
SpringBootvsMyBatis面试题集

SpringBootvsMyBatis面试题集Spring Boot vs MyBatis 面试题集在面试过程中,Spring Boot 和 MyBatis 是两个经常涉及的主题。
以下是一些常见的 Spring Boot 和 MyBatis 面试题,旨在帮助你更好地理解和应对这两个技术的问题。
1. 什么是 Spring Boot?Spring Boot 是一个用于开发现代化和生产级别的 Java 应用程序的框架。
它通过提供自动化和约定大于配置的原则,简化了 Spring 应用程序的搭建和部署过程。
Spring Boot 集成了大量常用的第三方库和框架,并且具有内置的容器,可快速开发和运行应用程序。
2. 什么是 MyBatis?MyBatis 是一个开源的 Java 持久化框架,它简化了数据库操作的开发过程。
MyBatis 通过将 SQL 语句与代码分离,提供了一种优雅的方式来管理数据库查询。
它支持定制化 SQL、存储过程和高级映射。
3. Spring Boot 和 MyBatis 有什么区别?Spring Boot 是一个应用程序框架,提供了自动化配置和开箱即用的功能,而 MyBatis 是一个持久化框架,用于执行和管理数据库操作。
Spring Boot 提供了与 MyBatis 的集成支持,使得在使用 MyBatis 时更加便捷。
4. 如何在 Spring Boot 中集成 MyBatis?在 Spring Boot 中集成 MyBatis 非常简单。
只需添加相关依赖,配置数据源和 MyBatis 的相关属性即可。
可以通过在 application.properties 或 application.yml 文件中配置数据库连接信息和 MyBatis 相关属性。
然后,为 MyBatis 的 Mapper 接口添加 @Mapper 注解,从而将其扫描并纳入 Spring Boot 的上下文中。
5. 什么是 Spring Data JPA?Spring Data JPA 是 Spring Framework 提供的用于简化数据库操作的模块。
SpringBoot整合mybatis常见问题(小结)

SpringBoot整合mybatis常见问题(⼩结)Spring中常见问题1.NoSuchBeanDefinitionException2.'..Service' that could not be found service找不到3.port 80 was already in use 端⼝号被占⽤4.TemplateInputException 模板解析异常或找不到模板1.检查模板所在的⽬录是否与配置的前缀⽬录相同2.检查返回的模板是否存在,返回值类型是否⼀致3.检查配置前缀时是否以"/"斜杠结尾4.控制层的url与客户端的ur是否⼀致5. 404异常访问资源不存在6. 500异常 500异常要查看控制台Mybatis中常见问题1.springboot中添加maven依赖2.BadSqlGrammarException 错误的sql语句3.BindingException 绑定异常1.检查映射⽂件的路径配置与实际存储位置是否⼀致2.检查dao接⼝的类名是否与映射⽂件的namespace值相同(不能有空格)3.检查dao接⼝中的⽅法名是否在映射⽂件中有对应的id4.IllegalArgumentException原因:同样说我sql映射是否出现了重复性的定义(例如:分别以注解⽅式和xml配置⽂件⽅式进⾏定义,也就是说在同⼀个namespace下出现了重复的元素id)5.SAXParseException xml解析问题补充问题⼀:Mapper类 autowired失败原因:扫描mapper包没有配置或配置不正确解决:⽅案⼀:1. 启动类加@MapperScan("mapperPackagePath")⽅案⼆:增加配置类:package com.yx.readingwebsite.config;import org.mybatis.spring.mapper.MapperScannerConfigurer;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/*** MapperScannerConfigurer 配置DAO层*/@Configurationpublic class MyBatisMapperScannerConfig {@Beanpublic MapperScannerConfigurer getMapperScannerConfigurer(){MapperScannerConfigurer msc = new MapperScannerConfigurer();msc.setSqlSessionFactoryBeanName("sqlSessionFactory");msc.setBasePackage("com.yx.readingwebsite.mapper");return msc;}}问题⼆:Mapper扫描成功后,继续报错,org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):原因:xml的mapper SQL 和 Mapper接⼝没有绑定解决:⽅案⼀:全局配置⽂件application.yml增加mybatis配置【xml mapper包在resource⽬录下】mybatis:mapper-locations: classpath:mapper/*.xml⽅案⼆:增加配置类package com.yx.readingwebsite.config;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.SqlSessionTemplate;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.io.Resource;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import org.springframework.jdbc.datasource.DataSourceTransactionManager;import org.springframework.transaction.PlatformTransactionManager;import org.springframework.transaction.annotation.EnableTransactionManagement;import org.springframework.transaction.annotation.TransactionManagementConfigurer;import javax.sql.DataSource;/*** 配置MyBatis,引⼊数据源,sqlSessionFactory,sqlSessionTemplate,事务管理器*/@Configuration //配置类@EnableTransactionManagement //允许使⽤事务管理器public class MyBatisModelConfig implements TransactionManagementConfigurer {@Autowiredprivate DataSource dataSource;@Bean(name = "sqlSessionFactory")public SqlSessionFactory getSqlSessionFactory(){SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();ssfb.setDataSource(dataSource); //设置数据源ssfb.setTypeAliasesPackage("com.yx.readingwebsite.model"); //设置扫描模型包【po】try {Resource[] resources = new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml");ssfb.setMapperLocations(resources);return ssfb.getObject();} catch (Exception e) {e.printStackTrace();throw new RuntimeException();}}@Bean //获得Session 模板,从⽽获得Sessionpublic SqlSessionTemplate getSqlSessionTemplate(SqlSessionFactory sqlSessionFactory){return new SqlSessionTemplate(sqlSessionFactory);}@Override //事务管理器public PlatformTransactionManager annotationDrivenTransactionManager() {return new DataSourceTransactionManager(dataSource);}}需要注意的是,xml版的mybatis⼀定要在sqlSessionFactory中指定mapperLocations,即下图总结:两种配置⽅案。
springboot集成mybatis源码分析-启动加载mybatis过程(二)

springboot集成mybatis源码分析-启动加载mybatis过程(⼆)1、springboot项⽬最核⼼的就是⾃动加载配置,该功能则依赖的是⼀个注解@SpringBootApplication中的@EnableAutoConfiguration2、EnableAutoConfiguration主要是通过AutoConfigurationImportSelector类来加载 以mybatis为例,*selector通过反射加载spring.factories中指定的java类,也就是加载MybatisAutoConfiguration类(该类有Configuration注解,属于配置类)16package org.mybatis.spring.boot.autoconfigure; 60重点:SqlSessionFactory 和 SqlSessionTemplate 两个类61/**62 * {@link EnableAutoConfiguration Auto-Configuration} for Mybatis. Contributes a63 * {@link SqlSessionFactory} and a {@link SqlSessionTemplate}.64 *65 * If {@link org.mybatis.spring.annotation.MapperScan} is used, or a66 * configuration file is specified as a property, those will be considered,67 * otherwise this auto-configuration will attempt to register mappers based on68 * the interface definitions in or under the root auto-configuration package.69 *70 * @author Eddú Meléndez71 * @author Josh Long72 * @author Kazuki Shimizu73 * @author Eduardo Macarrón74*/75@org.springframework.context.annotation.Configuration76 @ConditionalOnClass({ SqlSessionFactory.class, SqlSessionFactoryBean.class })77 @ConditionalOnBean(DataSource.class)78 @EnableConfigurationProperties(MybatisProperties.class)79 @AutoConfigureAfter(DataSourceAutoConfiguration.class)80public class MybatisAutoConfiguration {8182private static final Logger logger = LoggerFactory.getLogger(MybatisAutoConfiguration.class);83 //与mybatis配置⽂件对应84private final MybatisProperties properties;8586private final Interceptor[] interceptors;8788private final ResourceLoader resourceLoader;8990private final DatabaseIdProvider databaseIdProvider;9192private final List<ConfigurationCustomizer> configurationCustomizers;9394public MybatisAutoConfiguration(MybatisProperties properties,95 ObjectProvider<Interceptor[]> interceptorsProvider,96 ResourceLoader resourceLoader,97 ObjectProvider<DatabaseIdProvider> databaseIdProvider,98 ObjectProvider<List<ConfigurationCustomizer>> configurationCustomizersProvider) {99this.properties = properties;100this.interceptors = interceptorsProvider.getIfAvailable();101this.resourceLoader = resourceLoader;102this.databaseIdProvider = databaseIdProvider.getIfAvailable();103this.configurationCustomizers = configurationCustomizersProvider.getIfAvailable();104 }105 //postConstruct作⽤是在创建类的时候先调⽤,校验配置⽂件是否存在106 @PostConstruct106 @PostConstruct107public void checkConfigFileExists() {108if (this.properties.isCheckConfigLocation() && StringUtils.hasText(this.properties.getConfigLocation())) {109 Resource resource = this.resourceLoader.getResource(this.properties.getConfigLocation());110 Assert.state(resource.exists(), "Cannot find config location: " + resource111 + " (please add config file or check your Mybatis configuration)");112 }113 }114 //conditionalOnMissingBean作⽤:在没有类的时候调⽤,创建sqlsessionFactory sqlsessionfactory最主要的是创建并保存了Configuration类115 @Bean116 @ConditionalOnMissingBean117public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {118 SqlSessionFactoryBean factory = new SqlSessionFactoryBean();119 factory.setDataSource(dataSource);120 factory.setVfs(SpringBootVFS.class);121if (StringUtils.hasText(this.properties.getConfigLocation())) {122 factory.setConfigLocation(this.resourceLoader.getResource(this.properties.getConfigLocation()));123 }124 Configuration configuration = this.properties.getConfiguration();125if (configuration == null && !StringUtils.hasText(this.properties.getConfigLocation())) {126 configuration = new Configuration();127 }128if (configuration != null && !CollectionUtils.isEmpty(this.configurationCustomizers)) {129for (ConfigurationCustomizer customizer : this.configurationCustomizers) {130 customizer.customize(configuration);131 }132 }133 factory.setConfiguration(configuration);134if (this.properties.getConfigurationProperties() != null) {135 factory.setConfigurationProperties(this.properties.getConfigurationProperties());136 }137if (!ObjectUtils.isEmpty(this.interceptors)) {138 factory.setPlugins(this.interceptors);139 }140if (this.databaseIdProvider != null) {141 factory.setDatabaseIdProvider(this.databaseIdProvider);142 }143if (StringUtils.hasLength(this.properties.getTypeAliasesPackage())) {144 factory.setTypeAliasesPackage(this.properties.getTypeAliasesPackage());145 }146if (StringUtils.hasLength(this.properties.getTypeHandlersPackage())) {147 factory.setTypeHandlersPackage(this.properties.getTypeHandlersPackage());148 }149if (!ObjectUtils.isEmpty(this.properties.resolveMapperLocations())) {150 factory.setMapperLocations(this.properties.resolveMapperLocations());151 }152153return factory.getObject();154 }155156 @Bean157 @ConditionalOnMissingBean158public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {159 ExecutorType executorType = this.properties.getExecutorType();160if (executorType != null) {161return new SqlSessionTemplate(sqlSessionFactory, executorType);162 } else {163return new SqlSessionTemplate(sqlSessionFactory);164 }165 }238 }3、MybatisAutoConfiguration:①类中有个MybatisProperties类,该类对应的是mybatis的配置⽂件②类中有个sqlSessionFactory⽅法,作⽤是创建SqlSessionFactory类、Configuration类(mybatis最主要的类,保存着与mybatis相关的东西)③SelSessionTemplate,作⽤是与mapperProoxy代理类有关4、关注下Configuration中的MapperRegister类,该类是创建dao(mapper的代理类),后续具体执⾏dao查询操作的都是基于该类的下边是springboot项⽬启动栈信息:1、springboot启动调⽤SpringApplication的静态⽅法run2、进⼊run⽅法:先进⾏springboot相关初始化3、进⼊refreshContext⽅法:初始化springboot的上下⽂4、进⼊refresh⽅法(AbstractApplicationContext)5、通过beanfactory实⼒各种bean。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
柠檬学院
MySql
• MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于 Oracle公司。MySQL是最流行的关系型数据库管理系统,在WEB应用方面 MySQL是最好的RDBMS(Relational Database Management System:关系数据 库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数 据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度 并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语 言。
柠檬学院
欢迎收看
柠檬学院
柠檬学院
开发环境:
JDK1.7或1.7以上
eclipse
tomcat 7.0 或 7.0以上
MYSQL5.0
柠檬学院
项目效果截图
jQuery Mobile界面展示
学员意报表
柠檬学院
项目效果截图
教务系统数据库设计
柠檬学院
项目效果截图
Mybatis动态sql
权限变更
柠檬学院
第一部分: 技能储备阶 段,学习项目所需 要的技能知识
柠檬学院
1、Bootstrap(PC端页面实现)
2、jQuery Mobile(手机端页面实现)
3、SpringMVC
4、Spring 5、MyBatis 6、MySql(数据库)
柠檬学院
Bootstrap
• Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。它由Twitter的设计师 Mark Otto和Jacob Thornton合作开发。Bootstrap一经推出后颇受欢迎,一直是GitHub上 的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用 了该项目. • Bootstrap是一个开源的用于前端开发的工具包。是一个CSS/HTML框架。Bootstrap提 供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。 • Bootstrap是基于jQuery框架开发的,它在jQuery框架的基础上进行了更为个性化和人性 化的完善,形成一套自己独有的网站风格,并兼容大部分jQuery插件。 • Bootstrap中包含了丰富的Web组件,根据这些组件,可以快速的搭建一个漂亮、功能 完备的网站。其中包括以下组件:
第二部分: 设计部分, 通过需求分析,设 计物理模型,画出 原型界面(HTML)
第三部分: 编码部分, 具体实现各个功能 模块
学完本系列课程后,学员将会达到以下学习目标:
本课程针对有一定程序开发基础并有志于JAVA WEB开发的学员,理解MVC开发模式,能够 熟练使用PowerDesigner 设计数据库,熟练使用Springmvc、Spring、Mybatis、Bootstrap、 jQuery Mobile 、MySql进行开发
讲师:储老师
联系qq:2979430253
面对日益增多的学生信息和教职工信 息,管理工作变得越来越庞大和繁冗, 效率也低。
为了充分利用互联网带给人们的便利, 更好地提高教务管理管理工作的效率, 使学员和教师更方便地进行信息查询 活动,特开发教务管理系统。 本软件通过权限识别登录到该系统, 权限不同享有的功能就有所差异,来 实现日常的学生和老师信息和课程等 的管理。
柠檬学院
Spring
• Spring 也表示是一个开源框架,是为了解决企业应用程序开发复杂性由Rod Johnson创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选 择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基 本的JavaBean来完成以前只可能由EJB完成的事情。
柠檬学院
Spring MVC
• Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种 视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和POI。
柠檬学院
MyBatis
• MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。 • iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层 框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
• 下拉菜单、按钮组、按钮下拉菜单、导航、导航条、面包屑、分页、排版、缩略图、警 告对话框、进度条、媒体对象等
柠檬学院
jQuery Mobile
• jQuery Mobile是jQuery 在手机上和平板设备上的版本。jQuery Mobile 不仅会给 主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架。 支持全球主流的移动平台。jQuery Mobile开发团队说:能开发这个项目,我们非 常兴奋。移动Web太需要一个跨浏览器的框架,让开发人员开发出真正的移动 Web网站。