mybatis+spring3实战1-数据映射器 mapper方式

原创 2013年12月04日 14:27:34

package com.zxh.customer.mapper.entity;

public class User {

 private Long custId;
 
 private String custName;
 
 public Long getCustId() {
  return custId;
 }

 public void setCustId(Long custId) {
  this.custId = custId;
 }

 public String getCustName() {
  return custName;
 }

 public void setCustName(String custName) {
  this.custName = custName;
 }
 
}

 

 

package com.zxh.customer.mapper.model;

import java.util.List;
import java.util.Map;

import com.zxh.customer.mapper.entity.User;

public interface UserMapper {

 // 方法名要和SQL映射文件中的id相同 包名+接口名与mapper的namespace相同
 public User selectUserById(Long custId);

 public List<User> selectUsersByName(User user);

 public void saveUser(User user);

 public void updateUser(User user);

 public void deleteUser(Long custId);
 
 /**
  * 使用map, 失去面向对象的领域模型概念
  */
// public Map selectUserById(Map map);
//
// public List<Map> selectUsersByName(Map map);
//
// public void saveUser(Map map);
//
// public void updateUser(Map map);
//
// public void deleteUser(Map map);
}

 

 

<?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.zxh.customer.mapper.model.UserMapper">

 <select id="selectUserById" parameterType="long" resultType="User">
  SELECT CUST_ID as "custId", CUST_NAME "custName" FROM CUST WHERE
  CUST_ID = #{id}
 </select>
 
 <!-- like #{custName} 或者  like contact(contact('%', #{custName}), '%')-->
 <select id="selectUsersByName" parameterType="User" resultType="User">
  SELECT CUST_ID as "custId", CUST_NAME "custName" FROM CUST WHERE
  CUST_NAME like '%${custName}%'
 </select>

 <insert id="saveUser" parameterType="User">
  insert into cust(cust_id,
  cust_name) values(seq_cust.nextval, #{custName})
 </insert>

 <update id="updateUser" parameterType="User">
  update cust set cust_name = #{custName} where cust_id = #{custId}
 </update>

 <delete id="deleteUser" parameterType="int">
  delete from cust where
  cust_id = #{custId}
 </delete>

</mapper> 

 

 

 

package com.zxh.customer.mapper.service;

import java.util.List;

import com.zxh.customer.mapper.entity.User;

public interface IUserService {

 public User selectUserById(Long custId);

 public List<User> selectUsersByName(User user);

 public void saveUser(User user);

 public void updateUser(User user);

 public void deleteUser(Long custId);

}

 

 

 

package com.zxh.customer.mapper.service;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.zxh.customer.mapper.entity.User;
import com.zxh.customer.mapper.model.UserMapper;

@Service("userService")
@Transactional
public class UserServiceImpl implements IUserService {
 
 @Resource
 private UserMapper userMapper;

 public User selectUserById(Long custId) {
  
  return this.userMapper.selectUserById(custId);
 }

 public List<User> selectUsersByName(User user) {
  
  return this.userMapper.selectUsersByName(user);
 }

 public void saveUser(User user) {
  
  this.userMapper.saveUser(user);
 }

 public void updateUser(User user) {
  
  this.updateUser(user);
 }

 public void deleteUser(Long custId) {
  
  this.deleteUser(custId);
 }

}

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
 xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
 xsi:schemaLocation=" 
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.2.xsd 
        http://www.springframework.org/schema/aop
   http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">


 <context:annotation-config />
 <context:component-scan base-package="com.zxh.customer.mapper" />
 <context:property-placeholder
  location="classpath:sysconfig/jdbc_config.properties" />


 <bean id="dataSource"
  class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName" value="${driver}" />
  <property name="url" value="${url}" />
  <property name="username" value="jtorder" />
  <property name="password" value="jtorder" />
 </bean>

 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="mapperLocations"
   value="classpath*:com/zxh/customer/mapper/model/**/*.xml" />
  <property name="typeAliasesPackage" value="com.zxh.customer.mapper.entity" />
  <property name="configLocation" value="classpath:sysconfig/Configuration.xml" />
 </bean>

 <bean id="transactionManager"
  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource">
   <ref bean="dataSource" />
  </property>
 </bean>
 <tx:annotation-driven transaction-manager="transactionManager" />

 

 <!-- MapperScannerConfigurer来帮我们自动扫描和注册Mapper接口,无需像下面单独设置,防止接口类很多的情况! 多个值得情况使用逗号、分号、空格分隔 -->
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="com.zxh.customer.mapper.model" />
 </bean>
 <!-- 数据映射器接口 -->
 <!-- <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
  <property name="mapperInterface" value="com.zxh.customer.spring.dao.UserMapper"
  /> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean> -->

</beans>

 

 

 

 

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE configuration 
     PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
     "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

 <!-- 设置mybatis3 运行时的行为方式 -->
 <settings>
  <!-- 设置超时时间,它决定驱动等待一个数据库响应的时间 -->
  <setting name="defaultStatementTimeout" value="60000" />
  <!-- 启用或禁用 缓存 -->
  <setting name="cacheEnabled" value="false" />
  <!-- 启用或禁用延迟加载。当禁用时, 所有关联对象都会即时加载 -->
  <setting name="lazyLoadingEnabled" value="true" />  
  <!-- 等等 -->
 </settings>
 
</configuration>

 

 

 

driver=oracle.jdbc.driver.OracleDriver
url=jdbc\:oracle\:thin\:@172.16.1.241\:1521\:jtcrm

 

 

 

 

 

package springtest;

import java.util.HashMap;
import java.util.Map;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.zxh.customer.mapper.entity.User;
import com.zxh.customer.mapper.service.IUserService;

public class Test {

 public static void main(String[] args) throws Exception {

  ApplicationContext context = new ClassPathXmlApplicationContext(
    "sysconfig/applicationContext.xml");
  IUserService userService = (IUserService) context
    .getBean("userService");

//   User user = userService.selectUserById(604763L);
//   System.out.println(user.getCustName());

  // Map map = new HashMap();
  // map.put("custName", "测试测试");
  // List<Map> list = userService.queryUsers(map);
  // System.out.println(list.size());

  User user = new User();
  user.setCustName("封建礼教");
  userService.saveUser(user);

  // Map map = new HashMap();
  // map.put("custId", "612035");
  // try {
  // userService.deleteUser(map);
  // } catch (Exception e) {
  // e.printStackTrace();
  // }

  System.out.println("成功");
 }

}

 

 

springmvc学习笔记(7)-springmvc整合mybatis之mapper

本文记录springmvc整合dao的配置
  • h3243212
  • h3243212
  • 2016年03月09日 19:18
  • 9611

Spring + Mybatis - 原始dao开发整合 与 Mapper代理整合

1.准备     这段时间学习了Spring和Mybatis的知识,我们知道持久层的 mapper,dao都需要spring进行管理, 需要spring通过单例的方式管理SqlSessionFact...
  • LABLENET
  • LABLENET
  • 2015年12月31日 11:01
  • 2664

【SSM 8】spring集成Mybatis通用Mapper

上篇博客中介绍了关于Mybatis底层封装的思路问题,那么这篇博客,就介绍一下怎么引入通用的mapper插件。 备注:环境是maven构建部署...
  • u013034889
  • u013034889
  • 2016年10月09日 20:24
  • 4716

数据源架构模式之数据映射器

http://lobert.iteye.com/blog/2102312 前面分别介绍了数据源架构模式之表数据入口、数据源架构模式之行和数据入口数据源架构模式之活动记录,相较于这三种...
  • liu0808
  • liu0808
  • 2017年07月15日 23:46
  • 194

Mybatis学习之路--类别名&数据源&事务管理器&映射器

1.typeAliases 类型别名是为 Java 类型设置一个短的名字。它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。这个主要用在java普通对象,为了方便配置。一般的...
  • qq513036862
  • qq513036862
  • 2016年12月27日 17:26
  • 122

数据映射(data mapping)基本概念

数据映射(Data Mapping):给定两个数据模型,在模型之间建立起数据元素的对应关系,将这一过程称为数据映射。数据映射是很多数据集成任务的第一步,例如:数据迁移(data migration)、...
  • u013063153
  • u013063153
  • 2016年11月08日 18:09
  • 1680

Mybatis-Spring-注入映射器

注入映射器 为了代替手工使用 SqlSessionDaoSupport 或 SqlSessionTemplate 编写数据访问对象 (DAO)的代码,MyBatis-Spring 提供了一个动态...
  • lemonyFei
  • lemonyFei
  • 2013年05月14日 13:57
  • 23335

[php]领域模型和数据映射器

业务逻辑层使用的是领域模型,因为它能使用数据映射器中的大部分模式。         “万物皆对象”,领域模型就是对于项目中各种个体的抽象表达,就是一个类。它常常被描述为一组属性及附加的操作。它们是做某...
  • b15819620038
  • b15819620038
  • 2013年10月16日 00:25
  • 2306

MyBatis集合Spring(三)之mapper

我们可以配置Mapper接口作为Spring使用的MapperFactoryBean的Bean。 public interface StudentMapper { @Select("select s...
  • owen_william
  • owen_william
  • 2016年07月03日 16:11
  • 5096

Spring与Mybatis整合--使用MapperScannerConfigurer批量扫描Mapper接口实现

此文为续文,请阅读上文:http://blog.csdn.net/u013821825/article/details/51622361介绍使用MapperScannerConfigurer批量扫描M...
  • u013821825
  • u013821825
  • 2016年06月09日 19:06
  • 3030
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mybatis+spring3实战1-数据映射器 mapper方式
举报原因:
原因补充:

(最多只允许输入30个字)