手动搭建spring+springMVC+mybatis框架

早上整合完spring+pringmvc+hibernate框架,趁热打铁整合下spring+pringmvc+mybatis其实都差不多 就是hibernate和mybatis换一下相关配置就好了

1.首先新建一个项目大概的结构如下:我就不解释具体的分层了:

在这里插入图片描述
相关的jar包
在这里插入图片描述

2.配置文件:其他的配置基本一样 就这个文件贴出来吧
(1)applicationContext.xml
<?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:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">    
   
   <!-- 只解析除controller之外的注解(即解析service、dao), 避免重复加载导致事务失效  -->
   <context:component-scan base-package="com.ldy" />
   
    <!-- 配置数据源 -->
    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/ldybase?characterEncoding=UTF-8" />
        <property name="username" value="root" />
        <property name="password" value="123456" />
    </bean>  	 
   
   <!-- 事务管理器 -->
    <!-- 让spring管理sqlsessionfactory 使用mybatis和spring整合包中的 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 数据库连接池 -->
		<property name="dataSource" ref="dataSource" />
		<!-- 加载mybatis的全局配置文件 -->
		<property name="configLocation" value="classpath:config/sqlConfig.xml" />
	</bean>
	<!-- 自动扫描 将Mapper接口生成代理注入到Spring -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.ldy.mapper" />
	</bean>
</beans>
3.配置完xml文件就剩简单的代码实现了。
(1)UserAction.java
package com.ldy.action;

import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.ldy.model.User;
import com.ldy.service.UserService;
/**
 * 用户action层与前端交互
 * @author ldy
 *
 */
@Controller
@RequestMapping("/user")
public class UserAction {
		@Autowired
	    private UserService userService; 
		/**
	     * 添加用户数据
	     * @param request request
	     */
	    @RequestMapping(value = "/addUser.do")
	    public String addUser(HttpServletRequest request) throws Exception {
	    	//获取用户信息
	        try {
	        	String name = request.getParameter("name");
				String password = request.getParameter("password");
				int age = Integer.parseInt(request.getParameter("age"));
				System.out.println(name+" "+password+" "+age);
		        User user=new User();
		        user.setName(name);
		        user.setAge(age);
		        user.setPassword(password);
	        	userService.addUser(user);
	            return "/success";
	        } catch (Exception e) {
	        	e.printStackTrace();
	            return "/error";
	        }    
	    }
}
(2)UserService.java和UserServiceImpl.java写一起了
package com.ldy.service;
import com.ldy.model.User;
/**
 * 用户逻辑处理接口层
 * @author ldy
 */
public interface UserService {
	
	public void addUser(User user);

}
----------------------------------------------------------------------------------------------
package com.ldy.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.ldy.mapper.UserMapper;
import com.ldy.model.User;
import com.ldy.service.UserService;

/**
 * 用户逻辑处理实现层
 * @author ldy
 */
@Service
@Transactional
public class UserServiceImpl implements UserService {
	@Autowired
    private UserMapper userMapper;
    
	/**
        *  添 加用户数据
     * @param user 用户对象
     */
    public void addUser(User user){
    	userMapper.insert(user);
    }

}
(3)UserMapper.java和UserMapper.xml写一起
package com.ldy.mapper;
import com.ldy.model.User;
public interface UserMapper {
	public void insert(User user);
}
--------------------------------------------
<?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.ldy.mapper.UserMapper">
    <insert id="insert" parameterType="com.ldy.model.User">
        <selectKey keyProperty="id" resultType="String" order="BEFORE">
     	   select replace(uuid(), '-', '') as id from dual
   		 </selectKey>
        insert into user values(#{id},#{name},#{password},#{age})
    </insert>
</mapper>
(4)User.java这个就是数据库对应的实体类了。我这边没有配置数据库映射文件hbm.xml 因为我直接在实体类上用注解去和数据库对应上,感觉这样比较省事。然后我user表的id是varchar类型的是系统产生的32位的uuid
package com.ldy.model;


/**
 * 用户实体类
 * @author ldy
 *
 */
public class User {
	private String id ;
	
	private String name;
	
	private String password;
	
	private int age;
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值