之前做好了SpringMvc的框架,直接用的jdbc连接数据库不是很方便,这里搭建下Mybatis,hibernate我没用过,Mybatis也不用自己写sql.xml,可以用插件自动生成,方法如下:
首先要在Eclipse安装Mybatis Generator 点击help--install new software 输入地址如下
http://mybatis.googlecode.com/svn/sub-projects/generator/trunk/eclipse/UpdateSite/
安装完成后可能要重启Eclipse,然后我们可以随便找个地方,就在test包下吧,右击,新建,Other,找到如下图
选择这个Generator,Next确定名称位置后直接完成,会自动生成一个generatorConfig.xml文件,打开后只是一个填写的框架,我已经填好了,并解释如下
<?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 > <!-- 引入连接数据库jar包的位置 --> <classPathEntry location="E:/mysql-connector-java-5.0.8-bin.jar" /> <context id="context1" > <!-- 连接数据库的配置 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/dbmy?characterEncoding=utf-8" userId="root" password="" /> <!-- 自动生成实体类的位置 --> <javaModelGenerator targetPackage="com.springMvc.dao.entity" targetProject="springMVC" /> <!-- 自动生成Sql mapper的位置 --> <sqlMapGenerator targetPackage="sqlMap" targetProject="springMVC" /> <!-- 自动生成Manager的位置 --> <javaClientGenerator targetPackage="com.springMvc.dao.manager" targetProject="springMVC" type="XMLMAPPER" /> <!-- 要操作的数据库表 --> <table tableName="account_info" domainObjectName="AccountInfo"> <!-- 主键 --> <generatedKey column="id" sqlStatement="MySql" identity="true" /> </table> <!-- 要操作的数据库表 --> <table tableName="account_type" domainObjectName="AccountType"> <!-- 主键 --> <generatedKey column="type_id" sqlStatement="MySql" identity="true" /> </table> </context> </generatorConfiguration>
我们可以看到,这个文件可以连接到数据库,根据表结构自动逆向工程生成entity实体类,manager,还有sqlmap.非常简单。只要把位置确定好就行了,这里一定要注意entity的位置,因为sql.xml文件里会用到上面的路径,如果你位置没写对,生成后又调换entity的位置,那sql.xml文件能改死你。
然后确认无误后(这时我们可以先删掉之前配spring时写好的entity和manager了)右击generatorConfig.xml,点击如下
就自动生成了,如图
可以看到entity,manager还有sqlMap下都是自动生成的,然后sqlMap可以直接剪切掉放到resource包下,看着舒服点service报错是因为我们删掉了之前的dao里的东西。至于generatorConfig.xml就可以卸磨杀驴直接删掉了,碍事,如果想留着以后数据库会更改,这个东西其实完全可以另外新建个项目把这个generatorConfig.xml放到别的项目去,只要配置好路径在别的项目也能生成到本项目。留在本项目看着还碍事。然后我们要细看一个这几个自动生成的东西,实体类就不用说了,就是按照数据库的字段,数据类型生成的。然后每个对应了一个example是用来封装查询条件的。看看代码就明白了,manager提供了基本的增删改查的接口,接口的命名直接对应到了sqlMap下的sql.xml文件。都是针对单表查询的。如果联合查询怎么办呢,自己在再mapper里添加就行了,自动生成这些已经很省力了。
然后service还报错呢,删了原来的东西,新的怎么给service呢。
只需要继续在application.xml继续如下配置就可以了
<!-- sql的位置 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:sqlMap/*.xml" /> </bean> <!-- 装配上mapper接口 --> <bean id="accountInfoMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="com.springMvc.dao.manager.AccountInfoMapper" /> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean> <bean id="accountTypeMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="com.springMvc.dao.manager.AccountTypeMapper" /> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean>
然后service哩就可以用了,但我们记得查询可用类型那是个自身的联合查询。自动生成的sql没有,我们就自定义一个好了。mapper添加方法
/** * 自定义查询可用类型 */ List<TypeInfo> selectLastTypes();
同时对应的sql里以selectLastTypes为id添加sql
<!-- 自定义查询可用类型 --> <select id="selectLastTypes" resultType="com.springMvc.model.TypeInfo"> select type_id as type_id, type_name as type_name from account_type where type_id not in (select distinct type_parent from account_type) </select>
service做如下修改
package com.springMvc.service.Impl; import java.util.List; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.springMvc.dao.manager.AccountTypeMapper; import com.springMvc.model.TypeInfo; import com.springMvc.service.TypeService; @Service public class TypeServiceImpl implements TypeService{ //logger private final static Logger logger = Logger.getLogger(TypeServiceImpl.class); // @Autowired//自动装配dao bean // private TypeManager typeManager; @Autowired private AccountTypeMapper accountTypeMapper; @Override public List<TypeInfo> selectAllTypes() { logger.info("----------------调取可用类型,Service层--!"); return accountTypeMapper.selectLastTypes(); } }
package com.springMvc.service.Impl; import java.sql.Date; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.springMvc.dao.entity.AccountInfo; import com.springMvc.dao.manager.AccountInfoMapper; import com.springMvc.service.AccountService; @Service //标注为服务层的一个service public class AccountServiceImpl implements AccountService{ //logger private final static Logger logger = Logger.getLogger(AccountServiceImpl.class); // @Autowired//自动装配dao bean // private AccountManager accountManager; @Autowired private AccountInfoMapper accountInfoMapper; @Override public void insertAccout(Date acc_time,Integer acc_jine,Integer acc_shouzhi,Integer acc_type,String acc_beizhu) { logger.info("----------------插入账目进入Service层--!"); //Account ac = new Account(); AccountInfo ac = new AccountInfo(); ac.setAccTime(acc_time); ac.setAccJine(acc_jine); ac.setAccShouzhi(acc_shouzhi==1?true:false); ac.setAccType(acc_type); ac.setAccBeizhu(acc_beizhu); //accountManager.insertAccount(ac); accountInfoMapper.insert(ac); } }
controller不用动,就OK了,再tomcat run一下,是不是很好用。然后这里example一直没用上,简单介绍个例子,比如我要查询某天的支出账目,条件是dateX,收支类型是支出false.就按如下:
AccountInfoExample ex = new AccountInfoExample();//封装条件 ex.createCriteria().andAccTimeEqualTo(dateX).andAccShouzhiEqualTo(false); List<AccountInfo> list = accountInfoMapper.selectByExample(ex);
返回的list就是我们想要的结果了,看明白了吗,关于spring和mybatis还有很多东西,这里就简单配下算个小例子分享给大家。另外分享一些java常用工具jar包下载地址
相关推荐
spring + springmvc + mybatis 整合 demo 及 mybatis-pagehelper分页 demo
Spring+Springmvc+Mybatis注解开发配置,简单实现增删改差,访问路径为 http://localhost:8080/项目名/student/loadList.do,就可以实现效果,
SpringMVC Spring MyBatis 框架整合需要的jar包 配置文件 工具类
SSM(Spring+SpringMVC+MyBatis)多数据源配置框架,精简版
SpringMVC4.0+MYBATIS3.0增删改查 用的是oracle数据库 数据看配置文件自己配置一下 表名SM_USER 列ID,NAME.PASSWORD 一定要匹配正确 否则报错
真正跑的起来的整合例子,数据库是mysql的,jdk1.8,tomcat8,抛掉了那些多余的jar包和配置,如日志,josn传递什么的,让你真正看清SpringMVC+Mybatis如何整合,仅供学习!
基于SpringMVC、Mybatis、Redis、Freemarker的Shiro管理Demo源码的升级版 相关详细配置说明请参看 --> http://www.sojson.com/shiro
Spring4.0+SpringMVC4.0+Mybatis3.2框架整合例子(SSM) 自动生成代码 简单试用
网上有许多关于SpringMVC与Mybatis整合的实例,但是由于Mybaits-spring有好几种配置方式(SqlSessionDaoSupport方式,mapperFactoryBean方式,mapperScannerConfigurer方式),这样看起来会觉得很乱,不知道哪个是对的...
1、压缩包是一个 springmvc3.2.2 框架+mybatis3.2.2数据库操作层 的Eclipse工程 2、解压工程 修改数据库配置文件【dbConfig.xml】 编译 部署 发布 在本地或其他机器建一个表名为devType的两个字段的表,详情看映射...
springmvc+mybatis+oracle配置,整合
ssm框架整合的第四个阶段:主要加上了mybatis-plus 完成了springmvc框架的配置和spring框架的配置,配置mybatis环境,将spring、springmvc、mybatis整合到了一起.
spring+springmvc+mybatis+log4j+springtest的demo,并且配置了多环境的配置文件,xml文件在源码中,配置了service层的事务处理,
6、映入SpringMVC:配置SpringMVC配置信息。-->配置文件:spring-mvc.xml(扫描controller) 7、配置web.xml容器。-->配置文件:web.xml 8、测试三个框架的整合:Maven编译打包部署服务器,测试。
springmvc + spring + mybatis + maven整合配置文件
springMvc+mybatis的代码集成demo分享,参考别人配置文档进行配置出来的简单版本
用idea编写的实现Spring+SpringMVC+Mybatis+Mysql的一个整合,实现了SpringMVC控制访问的页面,将得到的页面参数传递给Spring中的Mybatis的bean类,然后查找Mysql数据的功能,并通过JSP显示出来。纯学习用的。该代码...
springmvc和mybatis整合的简单用户管理系统,包含springmvc和mybatis整合的配置文件,有注释,简单易懂,适合初学者,通过学习应该可以掌握springmvc和mybatis的整合配置
spring整合springmvc、mybatis的jar包和配置文件,spring整合springmvc、mybatis的jar包和配置文件,spring整合springmvc、mybatis的jar包和配置文件
springmvc+mybatis配置实例