在公司基础框架的基础之上增加多数据源的支持,公司框架底层是用hibernate的,现增加mybatis作为底层的一个新的数据源。
1、增加jar包
基础框架采用spring版本是3.1,所以需要根据此版本加入对应的mybatis版本,分别加入mybatis-spring-1.0.2.jar和mybatis-3.0.6.jar即可。
2、增加spring的mybatis配置文件
<!-- 数据库连接池,使用阿里巴巴开源数据库连接 --> <bean id="dataSource3" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="driverClassName"> <value>oracle.jdbc.driver.OracleDriver</value> </property> <property name="url"> <value>jdbc:oracle:thin:@218.15.22.15:1521:orcl</value> </property> <property name="username"> <value>callplat123</value> </property> <property name="password"> <value>YRwDHYuisdwtEUgxp3rwf8QhYi40hWE+zIWlr6HcmIZfqFRjk662lESHAt0u3vqWFd4XW65yLkJe6M/tQAT88w==</value> </property> <!-- 数据库解密 --> <property name="connectionProperties" value="config.decrypt=true" /> <property name="filters" value="config" /> <property name="maxActive" value="50" /> <property name="initialSize" value="3" /> <property name="maxWait" value="60000" /> <property name="minIdle" value="3" /> <property name="timeBetweenEvictionRunsMillis" value="60000" /> <property name="minEvictableIdleTimeMillis" value="300000" /> <property name="validationQuery" value="SELECT 'x' from DUAL" /> <property name="testWhileIdle" value="true" /> <property name="testOnBorrow" value="false" /> <property name="testOnReturn" value="false" /> <property name="poolPreparedStatements" value="true" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="50" /> </bean> <bean id="sessionFactory3" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource3" /> <!-- 配置mybatis 数据源、别名等信息 <property name="configLocation" value="classpath:config/mybatis-config-slave.xml" /> --> <property name="mapperLocations" value="classpath*:com/mybatis/*/mapping/*.xml" /> </bean> <!-- DAO接口所在包名,Spring会自动查找其下的类 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.mybatis" /> <property name="sqlSessionFactory" ref="sessionFactory3"/> </bean> <!-- 事务配置 --> <bean id="transactionManager3" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource3" /> </bean> <!-- 事务规则 --> <tx:advice id="txAdvice3" transaction-manager="transactionManager3"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="modify*" propagation="REQUIRED" /> <tx:method name="delete*" propagation="REQUIRED" /> <tx:method name="*" read-only="true" /> </tx:attributes> </tx:advice> <!-- 仅对service包下面的方法开启事务控制 --> <aop:config> <aop:pointcut id="interceptorPointCuts3" expression="execution(* com.mybatis..service.*.*(..))" /> <aop:advisor advice-ref="txAdvice3" pointcut-ref="interceptorPointCuts3" /> </aop:config>
3、根据mysql数据库对应表、表到代码的配置文件及依赖的生成工具jar进行生成代码
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- 数据库驱动--> <classPathEntry location="mysql-connector-java-3.1.14-bin.jar"/> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressDate" value="true"/> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--数据库链接URL,用户名、密码 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/mybatis?useUnicode=true&characterEncoding=utf8" userId="root" password="root"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 生成模型的包名和位置--> <javaModelGenerator targetPackage="com.cn.hnust.entity" targetProject="src"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成映射文件的包名和位置--> <sqlMapGenerator targetPackage="com.cn.hnust.mapping" targetProject="src"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 生成DAO的包名和位置--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.cn.hnust.dao" targetProject="src"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名--> <table tableName="user_t" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> </context> </generatorConfiguration>
需要依赖到的工具包为mybatis-generator-core-1.3.2.jar和驱动包mysql-connector-java-3.1.14-bin.jar,将jar和配置文件放在一个目录下并在此目录创建src文件夹,打开命令窗口定位到此目录,敲入命令:java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite 进行生成对应的代码
4、生成的pojo类和xml文件
package com.cn.hnust.entity; public class User { private Integer id; private String userName; private String password; private Integer age; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName == null ? null : userName.trim(); } public String getPassword() { return password; } public void setPassword(String password) { this.password = password == null ? null : password.trim(); } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
pojo 类
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.cn.hnust.dao.UserMapper" > <resultMap id="BaseResultMap" type="com.cn.hnust.entity.User" > <id column="id" property="id" jdbcType="INTEGER" /> <result column="user_name" property="userName" jdbcType="VARCHAR" /> <result column="password" property="password" jdbcType="VARCHAR" /> <result column="age" property="age" jdbcType="INTEGER" /> </resultMap> <sql id="Base_Column_List" > id, user_name, password, age </sql> <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" > select <include refid="Base_Column_List" /> from user_t where id = #{id,jdbcType=INTEGER} </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" > delete from user_t where id = #{id,jdbcType=INTEGER} </delete> <insert id="insert" parameterType="com.cn.hnust.entity.User" > insert into user_t (id, user_name, password, age) values (#{id,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER}) </insert> <insert id="insertSelective" parameterType="com.cn.hnust.entity.User" > insert into user_t <trim prefix="(" suffix=")" suffixOverrides="," > <if test="id != null" > id, </if> <if test="userName != null" > user_name, </if> <if test="password != null" > password, </if> <if test="age != null" > age, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides="," > <if test="id != null" > #{id,jdbcType=INTEGER}, </if> <if test="userName != null" > #{userName,jdbcType=VARCHAR}, </if> <if test="password != null" > #{password,jdbcType=VARCHAR}, </if> <if test="age != null" > #{age,jdbcType=INTEGER}, </if> </trim> </insert> <update id="updateByPrimaryKeySelective" parameterType="com.cn.hnust.entity.User" > update user_t <set > <if test="userName != null" > user_name = #{userName,jdbcType=VARCHAR}, </if> <if test="password != null" > password = #{password,jdbcType=VARCHAR}, </if> <if test="age != null" > age = #{age,jdbcType=INTEGER}, </if> </set> where id = #{id,jdbcType=INTEGER} </update> <update id="updateByPrimaryKey" parameterType="com.cn.hnust.entity.User" > update user_t set user_name = #{userName,jdbcType=VARCHAR}, password = #{password,jdbcType=VARCHAR}, age = #{age,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER} </update> </mapper>
mybatis-xml配置文件
5、编写单元测试类进行测试表的增删改查
package com.cn.hnust.test; import javax.annotation.Resource; import org.apache.log4j.Logger; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.cn.hnust.dao.UserMapper; import com.cn.hnust.entity.User; @RunWith(SpringJUnit4ClassRunner.class) //表示继承了SpringJUnit4ClassRunner类 @ContextConfiguration(locations = {"classpath:spring-mybatis.xml"}) public class TestMyBatis { private static Logger logger = Logger.getLogger(TestMyBatis.class); @Resource private UserMapper userMapper; @Test public void test() { logger.info("测试方法"); try { User user = userMapper.selectByPrimaryKey(new Integer(1)); logger.info("user:"+user); if(user != null){ System.out.println(user.getUserName()+":"+user.getPassword()); } user.setAge(100); user.setUserName("我是中国人"); userMapper.updateByPrimaryKey(user); } catch (Exception e) { e.printStackTrace(); logger.error(e); } } }
至此,一个简单SpringMVC3+Mybatis3整合到此结束!
相关推荐
【SpringMVC与MyBatis整合详解】 在现代企业级应用开发中,SpringMVC和MyBatis是两个非常常见的框架。SpringMVC作为Spring框架的一部分,主要用于处理Web层的请求,而MyBatis则是一个优秀的持久层框架,专注于...
SSM框架,即Spring、SpringMVC和Mybatis的整合,是Java开发中常见的Web应用程序框架。这个开源小项目提供了一种便捷的方式,帮助初学者和有经验的开发者理解和实践这三个核心组件的集成。 首先,Spring框架是Java...
SSM指的是Spring+SpringMVC+MyBatis集成的一个Web应用程序开源框架,个人整合SSM的源码以及笔记,该有的注释都写的很详细了,应该能看懂,之前发布过一个,但是因为是自己写的生成代码生成的mapper,有点错误,在...
#### 三、SpringMVC与MyBatis整合实践 1. **环境搭建**: - 导入必要的依赖库:SpringMVC、MyBatis、MySQL驱动等。 - 配置SpringMVC配置文件(如spring-mvc.xml),定义DispatcherServlet、拦截器等。 - 配置...
【SpringMVC+Mybatis学习笔记】 SpringMVC和Mybatis是Java开发中常见的两个框架,它们分别负责Web层和持久层的管理。SpringMVC是Spring框架的一部分,提供了强大的模型-视图-控制器(MVC)架构模式,用于构建高性能...
【SpringMVC+Mybatis整合】 SpringMVC和Mybatis的整合可以实现松耦合的MVC架构和数据访问层。SpringMVC可以作为Mybatis的依赖注入容器,负责管理Mybatis的SqlSessionFactory和Mapper接口实例。通过Spring的配置,...
《Springmvc+Mybatis由浅入深笔记》是传智播客推出的一套全面解析SpringMVC和Mybatis两大主流框架的视频教程配套笔记。笔记旨在帮助初学者和进阶者深入理解这两个技术的核心概念、原理及实际应用,从而提升开发效率...
本书介绍了 Java EE 领域的两个开源框架: Spring的MVC 和 MyBatis。其中 Spring的版本为 4.2, My Batis的版本是 3.4o 本书的示例建议在 Tomcat 8 上运行。
### Spring+Hibernate+Struts2+MyBatis 整合笔记 #### 一、SSM框架简介及整合意义 SSM框架是指Spring、SpringMVC和MyBatis三个开源框架的整合,通常用于快速开发Java Web应用。本篇笔记主要介绍如何将Spring、...
此外,了解Spring框架整合MyBatis及Spring MVC的细节,对于开发基于Java EE的企业级应用非常关键。Spring MVC负责Web层的请求处理,MyBatis则是持久层框架,能够简化数据库操作。熟练掌握这些框架的整合使用,能够...
【SpringMVC与MyBatis整合】 1. **配置数据源**:在Spring配置文件中定义数据源,用于连接数据库。 2. **配置SqlSessionFactory**:创建SqlSessionFactoryBean,它是MyBatis的工厂类,用于生成SqlSession。 3. **...
在本项目中,"springmvc+mybatis+elementui+vue的模拟添加用户,查询用户"是一个基于Java Web技术的简单应用,它整合了Spring MVC、MyBatis、Element UI和Vue.js,用于实现用户数据的增删查改功能。下面将详细讲解...
在传智播客提供的“Springmvc+Mybatis由浅入深全套视频教程”中,关于SpringMVC的笔记详细地介绍了这一框架的架构、核心组件、工作原理以及入门程序的环境配置。以下内容基于视频教程中的笔记进行详细知识点的总结。...
包含教案、源码、课堂笔记等。第一天:springmvc的基础知识 什么是springmvc? springmvc框架原理(掌握) 前端控制器、处理器映射器、处理器适配器、视图解析器 ...springmvc和mybatis整合(掌握)
3. jQuery EasyUI:jQuery EasyUI 是基于 jQuery 的一个前端框架,提供了丰富的 UI 组件,如表格、表单、对话框等,帮助开发者快速构建用户界面。EasyUI 遵循简洁的 API 设计,使得开发者可以使用较少的代码实现复杂...
3. MyBatis的优势: - SQL动态化:MyBatis支持动态SQL,可以在XML或注解中编写条件语句,无需编写大量的if-else逻辑。 - 易于整合:MyBatis可以与Spring无缝集成,实现事务管理和依赖注入。 - 提高性能:预编译的...
在提供的压缩包中,"SpringMvc笔记和教案"可能包含了关于SpringMVC的详细讲解,涵盖了上述所有知识点,适合初学者系统学习。而"Mybatis"部分可能包括Mybatis的基本概念、配置、使用方法和实战案例,帮助开发者深入...
本次为您带来的是最新的 Java 框架零基础从入门到精通的教程笔记项目,无论您是完全没有基础的小白,还是想要进一步提升的开发者,这套教程都将是您的理想之选。 教程内容丰富详实,涵盖了从基础知识的细致讲解,到...
在"SpringBoot+SpringMVC+SpringSecurity+SSM整合.zip"的学习笔记中,你可能会涉及以下几个关键知识点: 1. SpringBoot的起步依赖和自动配置:理解如何通过添加不同模块的starter依赖来引入所需的Spring功能,以及...
整合springmvc_spring_mybatis框架后整理的学习笔记以及整合方法。