`
xlcai
  • 浏览: 19752 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SpringMvc(三)配置Mybatis

 
阅读更多

之前做好了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 整合 及 mybatis-pagehelper分页

    3. **配置MyBatis**:在MyBatis的配置文件`mybatis-config.xml`中,配置数据源、事务工厂和映射文件的位置。同时,每个Mapper接口需要与对应的XML映射文件关联。 4. **PageHelper分页插件**:MyBatis-PageHelper是...

    springmvc4+mybatis+mybatisplus整合

    整合SpringMVC、MyBatis和MyBatisPlus,首先需要在项目中引入对应的依赖,然后配置SpringMVC的web.xml和Spring的配置文件。在Spring配置文件中,需要配置数据源、SqlSessionFactory、MyBatisPlus的配置以及...

    SpringMVC+Mybatis demo

    SpringMVC和MyBatis是Java Web开发中的两个核心框架,它们在构建高效、模块化的应用程序方面发挥着重要作用。SpringMVC是Spring框架的一部分,主要负责处理HTTP请求和响应,而MyBatis则是一个轻量级的持久层框架,...

    SpringMVC+Spring+MyBatis jar包和配置文件

    4. 配置MyBatis:编写mybatis-config.xml,包含数据源、事务管理器、环境等信息。 5. 配置Mapper:创建Mapper接口和对应的XML文件,定义SQL语句。 6. 配置Spring与MyBatis的集成:使用MyBatis-Spring的...

    【Java框架】spring4+springmvc4+mybatis3.3.0+druid多数据源案例.zip

    spring4+springmvc4+mybatis3.3.0+druid多数据源demo,同时支持mybatis generator代码生成器(java代码、maven插件式的生成都有相应代码和配置) java静态代码分析插件checkstyle的应用 项目在intelij idea中测试...

    springmvc4.0+mybatis3.0+log4j整合.rar

    三、SpringMVC与MyBatis整合 整合SpringMVC和MyBatis,首先需要在Spring的配置文件中声明DataSource、SqlSessionFactoryBean以及MapperScannerConfigurer。DataSource用于提供数据库连接,SqlSessionFactoryBean创建...

    SpringMVC与MyBatis的整合jar包

    2. **配置MyBatis**:创建mybatis-config.xml文件,配置数据源、事务管理器、SqlSessionFactory,以及Mapper接口的位置。 3. **配置Spring**:在Spring的配置文件中,配置DataSource、SqlSessionFactoryBean,以及...

    SpringMVC4+MyBatis3+EasyUI项目

    在"SpringMVC4+MyBatis3+EasyUI项目"中,这三者通常会这样整合: 1. **SpringMVC作为控制器**:负责接收HTTP请求,通过DispatcherServlet进行调度,调用相应的服务层方法。 2. **MyBatis作为数据访问层**:与数据库...

    springMvc+spring+Mybatis 实战案例 实用!

    Spring MVC、Spring 和 MyBatis 是Java开发领域中三大核心框架,它们的组合在实际项目中广泛应用,构建了企业级Web应用的后端基础架构。本实战案例将深入讲解这三个框架如何协同工作,以实现高效的数据处理和业务...

    SpringMVC+Redis+MyBatis项目

    在本项目中,我们探索了如何整合SpringMVC、Redis和MyBatis三大技术来构建一个高效、可扩展的Web应用程序。SpringMVC是Spring框架的一部分,主要用于处理HTTP请求和响应,提供MVC(Model-View-Controller)设计模式...

    SSM(Spring+SpringMVC+MyBatis)多数据源配置框架

    SSM(Spring、SpringMVC和MyBatis)是一个经典的Java Web开发框架组合,用于构建高效、灵活且可维护的企业级应用。这个框架整合了Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming...

    springmvc_mybatis查询示例

    在SpringMVC中,配置MyBatis的关键步骤包括: 1. 配置数据源:定义`DataSource` bean,用于连接数据库。 2. 创建`SqlSessionFactory`:基于数据源创建`SqlSessionFactoryBean`,它是MyBatis的核心工厂类。 3. 配置`...

    Spring+SpringMVC+Mybatis框架整合例子(SSM) 下载

    4. 配置Mybatis:创建mybatis的全局配置文件,mybatis-config.xml,配置数据源、SqlSessionFactory等,以及Mapper的XML配置文件。 5. 编写DAO层:定义Mapper接口,编写对应的Mapper XML文件,实现SQL语句。 6. 业务...

    springmvc4+mybatis3简单整合源码

    - **配置MyBatis**:编写MyBatis的全局配置文件,设置数据库连接信息,以及Mapper XML文件的位置。 - **创建Model**:定义数据模型类,这些类通常对应数据库中的表。 - **创建Mapper**:编写Mapper接口,包含...

    springMVC结合mybatis的小实例

    2. **配置Mybatis** 创建Mybatis的全局配置文件,配置数据源、事务管理器和SqlSessionFactory。同时,定义Mapper接口和对应的XML映射文件,用于编写SQL语句。 3. **Spring与Mybatis整合** 在Spring的配置文件中,...

    springMVC和mybatis整合,mybatis使用注解模式

    在SpringMVC配置中,指定basePackage属性,该属性值为包含Mapper接口的包名,Spring会自动扫描并加载这些接口。 接下来,我们可以在SpringMVC的Controller层使用@Autowired注解注入Mapper接口的实现,这样就可以...

    SpringMVC3.2.0+MyBatis3.1.1+Spring3.2.0 整合

    而spring-mybatis.xml则用于配置MyBatis的相关设置,如SqlSessionFactory和MapperScannerConfigurer,这样Spring能自动扫描并管理Mapper接口。 服务层(service层)是业务逻辑处理的核心,包括接口和实现类。测试类的...

    maven+springmvc4+mybatis源代码

    【标题】"maven+springmvc4+mybatis源代码" 涵盖了现代Java Web开发中的三个关键组件:Maven、Spring MVC 4和MyBatis。这是一个典型的三层架构,包括构建管理、表现层和持久层。下面将详细阐述这三个技术及其在项目...

    图书管理系统SpringMvc+mybatis

    《图书管理系统SpringMvc+Mybatis实现详解》 在IT领域,构建高效、稳定的软件系统是至关重要的。本项目“图书管理系统”就是这样一个实例,它利用了SpringMvc和Mybatis两大主流框架,为图书管理提供了全面的解决...

    springMVC+mybatis整合及测试(亲测可运行)

    4. **配置Mybatis**:配置Mybatis的主配置文件,如`mybatis-config.xml`,设置数据源、事务管理器、Mapper XML文件的位置等。 5. **编写Mapper接口和XML文件**:在Mapper接口中定义SQL操作方法,并在对应的XML文件...

Global site tag (gtag.js) - Google Analytics