Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了模型对象(Model)、视图(View)、控制器(Controller)以及处理程序对象的角色,这种分离让它们更容易进行定制。
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
打开IDEA点击File->New->Project,选择Maven项,勾选Create from archetype,再选择右侧中的maven-archetype-webapp项。
在项目创建完成之后,我们需要依据我们的需要依次建立java目录与resource目录,在新建Directory之后,我们需要右键此目录,选择ark Directory as,java目录选择Sources Root,,resource目录选择Resources Root,这样就可以将它们添加到项目中。
在java目录下创建com.zhongruan.bean、com.zhongruan.controller、com.zhongruan.dao、com.zhongruan.service四个目录,需要注意的是,如果不能文件夹分层的话,点击右上角的小齿轮,然后取消选择Compact Middle Packages,在resource中建立一个UserInfoMapper.xml文件。建立好之后目录如下所示。
在bean目录下建立类UserInfo,与昨天项目中的bean下的类一样,我们这次选择在其中添加一个无参的构造函数。
在dao目录下建立一个接口IUserInfoDao,用来提供一个入口,来具体实现数据库的增添查改等操作。
public interface IUserInfoDao {
public List<UserInfo> findAll();
}
在service目录下,创建一个目录impl来对服务接口具体的实现,在此处来实现service下的IUserInfoService接口。
IUserInfoService.java
public interface IUserInfoService {
public List<UserInfo> findAll();
}
UserInfoServiceImpl.java
@Service("userInfoService")
public class UserInfoServiceImpl implements IUserInfoService {
@Autowired //直接实现,不用声明
IUserInfoDao userInfoDao;
public List<UserInfo> findAll(){
return userInfoDao.findAll();
}
}
我们还需要修改pom。xml中的文件。将下面的代码直接粘贴到相应的位置替换掉;
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<maven.compiler.source>1.7maven.compiler.source>
<maven.compiler.target>1.7maven.compiler.target>
<spring.version>5.0.2.RELEASEspring.version>
<mybatis.version>3.2.6mybatis.version>
<slf4j.version>1.7.7slf4j.version>
<log4j.version>1.2.17log4j.version>
<c3p0.version>0.9.5.2c3p0.version>
<taglibs.version>1.1.2taglibs.version>
properties>
<dependencies>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-coreartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-oxmartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-txartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-jdbcartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webmvcartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-aopartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-context-supportartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-testartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>org.mybatisgroupId>
<artifactId>mybatisartifactId>
<version>${mybatis.version}version>
dependency>
<dependency>
<groupId>org.mybatisgroupId>
<artifactId>mybatis-springartifactId>
<version>1.2.2version>
dependency>
<dependency>
<groupId>javaxgroupId>
<artifactId>javaee-apiartifactId>
<version>7.0version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>5.1.30version>
dependency>
<dependency>
<groupId>commons-dbcpgroupId>
<artifactId>commons-dbcpartifactId>
<version>1.2.2version>
dependency>
<dependency>
<groupId>jstlgroupId>
<artifactId>jstlartifactId>
<version>1.2version>
dependency>
<dependency>
<groupId>log4jgroupId>
<artifactId>log4jartifactId>
<version>${log4j.version}version>
dependency>
<dependency>
<groupId>com.mchangegroupId>
<artifactId>c3p0artifactId>
<version>${c3p0.version}version>
dependency>
<dependency>
<groupId>taglibsgroupId>
<artifactId>standardartifactId>
<version>${taglibs.version}version>
dependency>
<dependency>
<groupId>org.slf4jgroupId>
<artifactId>slf4j-apiartifactId>
<version>${slf4j.version}version>
dependency>
<dependency>
<groupId>org.slf4jgroupId>
<artifactId>slf4j-log4j12artifactId>
<version>${slf4j.version}version>
dependency>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>javax.servlet-apiartifactId>
<version>3.1.0version>
<scope>providedscope>
dependency>
<dependency>
<groupId>javax.servlet.jspgroupId>
<artifactId>javax.servlet.jsp-apiartifactId>
<version>2.3.1version>
<scope>providedscope>
dependency>
dependencies>
点击导航栏上面的run,选择Edit configurations,点击左上角的+,在下面找到Tomcat server,添加Tomcat下的local服务器,在右方的Name中填写名字,在Application server中找到自己电脑上安装的Tomcat。选择Deployment,点击+,选择External source,将其添加上,之后选择OK,Tomcat就添加到了我们的项目之中,我们点击运行按钮,我们我们项目便会打开在浏览器中。
运行之后会在项目的目录中生成一个target的文件夹。
将老师给我们提供的applicationContext.xml、db.properties、log4j.properties、spring-mvc.xml四个文件复制到resource目录下。applicationContext.xml中定义了ssm中的spring与mybatis,而spring-mvc则是springMVC。我们还修改db.properties中的内容,使我们可以可以与自己的数据库连接。
db.properties
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://127.0.0.1:3306/user?useSSL=true&characterEncoding=utf-8&user=root&password=123
jdbc.username = root
jdbc.password = 123
对于数据的查询,实现在UserInfoMapper.xml中。
<mapper namespace="com.zhongruan.dao.IUserInfoDao" >
<select id="findAll" resultType="com.zhongruan.bean.UserInfo">
select * from userinfo
select>
mapper>
id是用来寻找操作函数的标识,而resultType则表示执行完成之后的返回值。
对于页面,老师已经给了我们,不需要我们自己去编写,所以我们只需要将addUser.jsp、allUser.jsp、updateUser.jsp、user-list.jsp几个页面加入到webapp下面新建的jsp文件夹中。
在controller中新建类UserInfoController来显示数据库中的数据。
@Controller
@RequestMapping("user")
public class UserInfoController {
@Autowired
IUserInfoService userInfoService;
@RequestMapping("findAll.do")
public ModelAndView findAll(){
List<UserInfo> users = userInfoService.findAll();
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("users", users );
modelAndView.setViewName("allUser");
return modelAndView;
}
modelAndView.setViewName是通过使用jsp文件名的方式来获取到页面的。
我们再次点击页面之后就会如下所示:
点击查询所有用户之后如下所示;
今天的学习中,我们需要学习的很多,是非常充实的一天。