Spring介绍:
spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而, Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java 应用都可以从 Spring 中受益。 简单来说, Spring 是一个轻量级的控制反转(IoC )和面向切面( AOP )的容器框架。
SpringMVC介绍
Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在Spring Web Flow 里面。 Spring MVC 分离了 控制器 、模型 对象 、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
MyBatis介绍
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 对象)映射成数据库中的记录。
首先不是maven架构整合的 SSM 框架
创建数据库、表db_zsl t_user user_t【最下面有sql语句】
1.项目整体结构
2.添加相关jar 包
3.项目整体结构出来了
4.创建model【User】
package comlytmodel; /** * 用户 * @author * */ public class User { private int id; private String userName; private String age; @Override public String toString() { return "User [id=" + id + ", age=" + age + ", userName=" + userName + "]"; } public User(){ super(); } public int getId() { return id; } public void setId(int id) { thisid = id; } public String getAge() { return age; } public void setAge(String age) { thisage = age; } public String getUserName() { return userName; } public void setUserName(String userName) { thisuserName = userName; } public User(int id, String age, String userName) { super(); thisid = id; thisage = age; thisuserName = userName; } }</div>
5.创建DAO接口【在mybatis中 mapper就相当于dao】
package comlytmapper; import javautilList; import comlytmodelUser; /** * 做为 DAO的接口 * @author */ public interface UserMapper { void save(User user); boolean update(User user); boolean delete(int id); User findById(int id); List<User> findAll(); }</div>
6.实现dao接口【mybatis中就是UserMapper.xml文件】
<?xml version="0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatisorg//DTD Mapper 0//EN" "http://mybatisorg/dtd/mybatis-3-mapperdtd"> <!-- namespace:必须与对应的接口全类名一致 UserMapperjava id :必须与对应接口的某个对应的方法名一致即必须要和UserMapperjava接口中的方法同名。 --> <mapper namespace="comlytmapperUserMapper"> <insert id="save" parameterType="User"> insert into t_user(user_name,user_age) values(#{userName},#{age}) </insert> <update id="update" parameterType="User"> update t_user set user_name=#{userName},user_age=#{age} where user_id=#{id} </update> <delete id="delete" parameterType="int"> delete from t_user where user_id=#{id} </delete> <!-- mybsits_config中配置的alias类别名,也可直接配置resultType为类路径 --> <select id="findById" parameterType="int" resultType="User"> select user_id id,user_name userName,user_age age from t_user where user_id=#{id} </select> <select id="findAll" resultType="User"> select user_id id,user_name userName,user_age age from t_user </select> </mapper></div>
这里对这个xml文件作几点说明:
1、namespace必须与对应的接口全类名一致。
2、id必须与对应接口的某个对应的方法名一致即必须要和UserMapper.java接口中的方法同名。
7.mybatis与Spring整合【spring-common.xml】放在src的根目录下
对于Mybatis和Spring的整合是这篇博文的重点,需要配置的内容在下面有详细的解释。
<?xml version="0" encoding="UTF-8"?> <beans xmlns="http://wwwspringframeworkorg/schema/beans" xmlns:xsi="http://wwwworg/2001/XMLSchema-instance" xmlns:p="http://wwwspringframeworkorg/schema/p" xmlns:context="http://wwwspringframeworkorg/schema/context" xmlns:tx="http://wwwspringframeworkorg/schema/tx" xsi:schemaLocation=" http://wwwspringframeworkorg/schema/beans http://wwwspringframeworkorg/schema/beans/spring-beans-xsd http://wwwspringframeworkorg/schema/context http://wwwspringframeworkorg/schema/context/spring-context-xsd http://wwwspringframeworkorg/schema/tx http://wwwspringframeworkorg/schema/tx/spring-tx-xsd"> <!-- Mybatis和Spring的整合 --> <!-- 数据源 : DriverManagerDataSource --> <bean id="dataSource" class="orgspringframeworkjdbcdatasourceDriverManagerDataSource"> <property name="driverClassName" value="commysqljdbcDriver" /> <property name="url" value="jdbc:mysql://localhost:3306/db_zsl" /> <property name="username" value="root" /> <property name="password" value="root" /> </bean> <!-- mybatis的SqlSession的工厂: SqlSessionFactoryBean dataSource:引用数据源 MyBatis定义数据源,同意加载配置 --> <bean id="sqlSessionFactory" class="orgmybatisspringSqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="configLocation" value="classpath:mybatis-configxml" /> </bean> <!-- mybatis自动扫描加载Sql映射文件/接口 : MapperScannerConfigurer sqlSessionFactory basePackage:指定sql映射文件/接口所在的包(自动扫描) --> <bean class="orgmybatisspringmapperMapperScannerConfigurer"> <property name="basePackage" value="comlytmapper"></property> <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> </bean> <!-- 事务管理 : DataSourceTransactionManager dataSource:引用上面定义的数据源 --> <bean id="txManager" class="orgspringframeworkjdbcdatasourceDataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 使用声明式事务 transaction-manager:引用上面定义的事务管理器 --> <tx:annotation-driven transaction-manager="txManager" /> </beans></div>
8.mybatis配置文件【mybatis-config.xml】放在src目录下
<?xml version="0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatisorg//DTD Config 0//EN" "http://mybatisorg/dtd/mybatis-3-configdtd"> <configuration> <!-- 实体类,简称 -设置别名 --> <typeAliases> <typeAlias alias="User" type="comlytmodelUser" /> </typeAliases> <!-- 实体接口映射资源 --> <!-- 说明:如果xxMapperxml配置文件放在和xxMapperjava统一目录下,mappers也可以省略,因为orgmybatisspringmapperMapperFactoryBean默认会去查找与xxMapperjava相同目录和名称的xxMapperxml --> <mappers>