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

gradle + spring4 + springmvc4 + mybatis3 + driud1 + logback1(CRUD操作)

    博客分类:
  • J2EE
阅读更多

 

 依赖库:

gradle + spring4 + springmvc4 + mybatis3 + driud1 + logback1

 

目录结构:




 

 

 

build.gradle

 

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'eclipse-wtp'
apply plugin: 'jetty'

// JDK 6
sourceCompatibility = 1.6
targetCompatibility = 1.6

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
 
	compile 'ch.qos.logback:logback-classic:1.1.3'
	compile 'org.springframework:spring-webmvc:4.1.6.RELEASE'
	compile 'org.springframework:spring-tx:4.1.6.RELEASE'
	compile 'org.springframework:spring-jdbc:4.1.6.RELEASE'
	compile 'org.springframework:spring-test:4.1.6.RELEASE'
	compile 'javax.servlet:jstl:1.2'
	compile 'com.alibaba:druid:1.0.2'
	compile 'mysql:mysql-connector-java:5.1.25'
	compile 'org.mybatis:mybatis:3.2.2'
	compile 'org.mybatis:mybatis-spring:1.2.0'
	compile 'org.aspectj:aspectjweaver:1.7.2'
	compile 'org.freemarker:freemarker-gae:2.3.23'
	

}

// Embeded Jetty for testing
jettyRun{
	contextPath = "spring4"
	httpPort = 8080
}

jettyRunWar{
	contextPath = "spring4"
	httpPort = 8080
}

//For Eclipse IDE only
eclipse {

  wtp {
    component {
      
      //define context path, default to project folder name
      contextPath = 'spring4'
      
    }
    
  }
}

 

spring-core-config.xml


 

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	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:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="
        http://www.springframework.org/schema/beans     
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context.xsd 
        http://www.springframework.org/schema/tx 
		http://www.springframework.org/schema/tx/spring-tx.xsd
		http://www.springframework.org/schema/aop
		http://www.springframework.org/schema/aop/spring-aop.xsd">
 
 	<!-- 包扫描 -->
	<context:component-scan base-package="com.business.dao,com.business.service" />

	<!-- 1.加载数据库配置的属性文件 -->
	<context:property-placeholder location="classpath:jdbc.properties"/>
	
	<!-- 2.数据源dataSource  DRUID -->
	<!-- 配置数据源 -->
	<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
		<property name="url" value="${jdbc.url}"/>
		<property name="username" value="${jdbc.username}"/>
		<property name="password" value="${jdbc.password}"/>

		<!-- 初始化连接大小 -->
		<property name="initialSize" value="0" />
		<!-- 连接池最大使用连接数量 -->
		<property name="maxActive" value="20" />
		<!-- 连接池最大空闲 -->
		<property name="maxIdle" value="20" />
		<!-- 连接池最小空闲 -->
		<property name="minIdle" value="0" />
		<!-- 获取连接最大等待时间 -->
		<property name="maxWait" value="60000" />
		
		<!-- <property name="poolPreparedStatements" value="true" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="33" /> -->

		<!-- <property name="validationQuery" value="${validationQuery}" /> -->
		<property name="testOnBorrow" value="false" />
		<property name="testOnReturn" value="false" />
		<property name="testWhileIdle" value="true" />

		<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
		<property name="timeBetweenEvictionRunsMillis" value="60000" />
		<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
		<property name="minEvictableIdleTimeMillis" value="25200000" />

		<!-- 打开removeAbandoned功能 -->
		<property name="removeAbandoned" value="true" />
		<!-- 1800秒,也就是30分钟 -->
		<property name="removeAbandonedTimeout" value="1800" />
		<!-- 关闭abanded连接时输出错误日志 -->
		<property name="logAbandoned" value="true" />

		<!-- 监控数据库 -->
		<!-- <property name="filters" value="stat" /> -->
		<property name="filters" value="mergeStat" />
	</bean>
	
	<!-- 3.SessionFactory-->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<!-- 整合mybatis,包扫描 mapper文件 -->
		<property name="configLocation" value="classpath:sqlMapConfig.xml"/>
		<property name="mapperLocations" value="classpath:com/business/mapper/*.xml"/>
	</bean>

	<!-- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.taurus.persistence" />
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
	</bean> -->

	<!-- 4. 事务 -->
	<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"/>
	</bean>

	<tx:advice id="txAdvice" transaction-manager="txManager">
		<tx:attributes>
			<tx:method name="insert*" propagation="REQUIRED"/>
			<tx:method name="update*" propagation="REQUIRED"/>
			<tx:method name="delete*" propagation="REQUIRED"/>
			<tx:method name="save*" propagation="REQUIRED"/>
			
			<tx:method name="find*" read-only="true"/>
			<tx:method name="get*" read-only="true"/>
			<tx:method name="view*" read-only="true"/>
		</tx:attributes>
	</tx:advice>
	
	<aop:config>
		<aop:pointcut expression="execution(* com.business.service.*.*(..))" id="txPointcut"/>
		<aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
	</aop:config>
	
	
</beans>

 spring-mvc-config.xml

 

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="
        http://www.springframework.org/schema/beans     
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context.xsd ">
 
	<context:component-scan base-package="com.business.controller" />
 
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
		<property name="prefix" value="/WEB-INF/views/jsp/" />
		<property name="suffix" value=".jsp" />
	</bean>
 
	<mvc:resources mapping="/resources/**" location="/resources/" />
	 
	<mvc:annotation-driven />
 
</beans>	

 

web.xml


 

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	version="2.5">

	<display-name>BusinessOnline</display-name>
	<description>Spring MVC web application</description>

	<!-- For web context -->
	<servlet>
		<servlet-name>springmvc-dispatcher</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/spring-mvc-config.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>springmvc-dispatcher</servlet-name>
		<url-pattern>*.action</url-pattern>
	</servlet-mapping>

	<!-- For root context -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/spring-core-config.xml</param-value>
	</context-param>

	<!-- 编码过滤器,解决中文乱码  -->
	<filter>
		<filter-name>SpringEncoding</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>utf-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>SpringEncoding</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>

 

logback.xml


 

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<layout class="ch.qos.logback.classic.PatternLayout">

			<Pattern>
				%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
			</Pattern>

		</layout>
	</appender>

	<logger name="org.springframework" level="debug" additivity="false">
		<appender-ref ref="STDOUT" />
	</logger>
	
	<logger name="com.business" level="debug" additivity="false">
		<appender-ref ref="STDOUT" />
	</logger>
	
	<root level="debug">
		<appender-ref ref="STDOUT" />
	</root>

</configuration>


 

jdbc.properties

 

 

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/student?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root

#jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
#jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
#jdbc.username=scott
#jdbc.password=tiger


 

 

sqlMapConfig.xm

 

 

<?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>
	
	
</configuration>

 

jar:



 

实体类:

package com.business.domain;

public class Student {

	private int id;
	private String username;
	private String password;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	
}

 

dao

BaseDao:

 
package com.business.dao;

import java.io.Serializable;
import java.util.List;
import java.util.Map;


/**
 * 泛型类  基础的dao接口
 * @author xiaoxuan
 *
 * @param <T>
 */
public interface BaseDao<T> {

//	public List<T> findPage(Page page);				//分页查询
	public List<T> find(Map paraMap);				//带条件查询,条件可以为null,既没有条件;返回list对象集合
	public T get(Serializable id);					//只查询一个,常用于修改
	public void insert(T entity);					//插入,用实体作为参数
	public void update(T entity);					//修改,用实体作为参数
	public void deleteById(Serializable id);		//按id删除,删除一条;支持整数型和字符串类型ID
	public void delete(Serializable[] ids);			//批量删除;支持整数型和字符串类型ID
	
}

 

 

StudentDao:

package com.business.dao;

import com.business.domain.Student;

public interface StudentDao extends BaseDao<Student> {

}

 

dao实现

BaseDaoImpl:
package com.business.dao.impl;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.beans.factory.annotation.Autowired;

import com.business.dao.BaseDao;


public abstract class BaseDaoImpl<T> extends SqlSessionDaoSupport implements BaseDao<T>{
	@Autowired
	//mybatis-spring 1.0无需此方法;mybatis-spring1.2必须注入。
	public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory){
		super.setSqlSessionFactory(sqlSessionFactory);
	}
	
	private String ns; //命名空间
	public String getNs() {
		return ns;
	}
	public void setNs(String ns) {
		this.ns = ns;
	}
	
	public List<T> find(Map paraMap) {
		List<T> oList = this.getSqlSession().selectList(ns + ".find",paraMap);
		return oList;
	} 
	
	public T get(Serializable id) {
		return this.getSqlSession().selectOne(ns + ".get", id);
	}
	
	public void insert(T entity) {
		this.getSqlSession().insert(ns + ".insert", entity);
	}
	
	public void update(T entity) {
		this.getSqlSession().update(ns + ".update", entity);
	}
	
	public void deleteById(Serializable id) {
		this.getSqlSession().delete(ns + ".deleteById", id);
	}

	public void delete(Serializable[] ids) {
		this.getSqlSession().delete(ns + ".delete", ids);
	}
	

}
 StudentDaoImpl:
package com.business.dao.impl;

import org.springframework.stereotype.Repository;

import com.business.dao.StudentDao;
import com.business.domain.Student;

@Repository
public class StudentDaoImpl extends BaseDaoImpl<Student> implements StudentDao {

	public StudentDaoImpl(){
		super.setNs("com.business.mapper.StudentMapper");
	}

}
 mapper
StudentMapper.xml
<?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.business.mapper.StudentMapper">
	<resultMap type="com.business.domain.Student" id="stuRM">
		<id property="id" column="id" />
		
		<result property="username" column="username"/>
		<result property="password" column="password"/>
	</resultMap>

	<select id="find" parameterType="map" resultMap="stuRM" >
		select * from student 
		where 1=1
		<if test="id != null">and id=#{id}</if>
	</select>
	
	<select id="get" parameterType="integer" resultMap="stuRM">
		select * from student
		where id=#{id}
	</select>
	
	<update id="update" parameterType="com.business.domain.Student">
		update student   
		set password=#{password}
		where username=#{username}
	</update>
	
	<insert id="insert" parameterType="com.business.domain.Student">
		insert into student
		(username,password)
		values(
			#{username},
			#{password}
			<!-- <if test="type eq 'xxx' ">0,</if> -->
		)
	</insert>
	
	<delete id="deleteById" parameterType="integer">  
        delete student where id=#{id}  
   </delete> 
</mapper>
 
StudentController:
package com.business.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.business.dao.StudentDao;
import com.business.domain.Student;

@Controller
public class StudentController {

	@Autowired
	StudentDao studentDao;
	
	@RequestMapping("/test.action")
	public String testget(Model model){
		Student stu = studentDao.get(1);
		System.err.println(stu);
		model.addAttribute("stu", stu);
		return "/index";
	}
}
 
 

 

 

 

 

  • 大小: 24.7 KB
分享到:
评论

相关推荐

    spring +spring mvc+mybatis +bootstrap 基本整合

    3. **MyBatis集成**:学习如何配置MyBatis的SqlSessionFactory和SqlSession,创建Mapper接口,编写XML映射文件,以及如何在Spring中注入Mapper实例以执行SQL操作。 4. **数据库连接**:根据描述,需要修改jdbc的...

    spring+springmvc+mybatis搭建的一个酒店管理系统附带mysql数据库

    在本项目中,MyBatis作为数据访问层,与MySQL数据库进行交互,执行CRUD(创建、读取、更新、删除)操作,实现对酒店管理系统的数据操作。 4. **MySQL数据库**:MySQL是一款广泛使用的开源关系型数据库管理系统,...

    spring+springmvc+mybatis+mysql 实现多模块聚合项目

    综上所述,"spring+springmvc+mybatis+mysql"实现的多模块聚合项目是一个典型的Java Web开发实践,它涵盖了从数据库操作到Web交互,再到模块化设计的多个重要层面。对于初学者来说,理解并掌握这个项目中的各项技术...

    mybatis与spring整合全部jar包(包括springmvc)

    - 使用Spring Data JPA或MyBatis-Plus增强ORM能力:这些工具提供了更高级的CRUD操作,减轻开发负担。 - 使用自动化构建工具(如Maven或Gradle)管理依赖,确保版本兼容性。 SSM整合使得Java Web开发更加高效,...

    springmvc-mybatis整合例子

    3. **依赖管理**:在pom.xml(Maven)或build.gradle(Gradle)文件中添加Spring MVC和MyBatis的依赖,包括Spring Web、Spring Context、Spring JDBC、MyBatis、MyBatis-Spring等。 4. **配置Spring**: - 创建`...

    基于SSM和SpringBoot+mybatis的宿舍管理系统.zip

    【标题】中的“基于SSM和SpringBoot+mybatis的宿舍管理系统”指的是一个结合了Spring、SpringMVC、SpringBoot和MyBatis四个主要技术框架的宿舍管理软件项目。SSM是Spring、SpringMVC和MyBatis的缩写,它们是Java开发...

    springmvc+ibatis写的宿舍管理系统

    【SpringMVC+iBatis 实现的宿舍管理系统详解】 SpringMVC 和 iBatis 是 ...在实际开发中,还可以进一步优化,例如引入 MyBatis Plus 进行更高效的 CRUD 操作,或者使用 Spring Boot 进行快速开发,减少配置工作。

    【ssm项目源码】客户信息管理系统.zip

    在本项目中,MyBatis与Spring整合,通过Mapper接口实现了对数据库的CRUD(创建、读取、更新、删除)操作,提供了灵活的数据访问能力。 4. 客户信息管理:系统的核心功能是对客户信息进行管理,包括客户的基本信息...

    massz&SSM;框架整合

    SSM框架整合指的是将Spring、SpringMVC和MyBatis三个主流的Java开发框架集成到一个项目中的过程。这三个框架分别负责不同的职责:Spring作为应用的容器,管理对象的生命周期和依赖;SpringMVC处理HTTP请求和响应,是...

    SSM实现班级管理系统大作业

    SSM实现班级管理系统大作业是一份基于Java技术栈的软件开发项目,主要采用了Spring、SpringMVC和MyBatis三个框架的集成,旨在提供一套完整的班级管理解决方案。这个项目不仅包含源代码,还可能包括数据库设计、配置...

    ssm框架需要的jar包

    SSM框架,全称为Spring、SpringMVC和MyBatis的集成框架,是Java开发Web应用时常用的三大组件。这个框架组合提供了强大的模型-视图-控制器(MVC)架构支持,以及数据库操作的能力,极大地提高了开发效率。下面将详细...

    基于ssm社区疫情联防联控系统.zip

    MyBatis则作为持久层框架,负责数据库操作,实现了ORM(对象关系映射),方便数据库的CRUD操作。 【标签】 1. **毕业设计**:表明这是一个学生在毕业时完成的项目,通常涵盖了课程所学的主要技术和概念,是理论知识...

    基于SSM洗衣店管理系统源码.zip

    SSM洗衣店管理系统是一个典型的Java Web项目,使用了Spring、SpringMVC和MyBatis三个框架的集成,也就是我们常说的SSM框架。这个系统可能是为帮助洗衣店进行日常运营和管理而设计的,比如记录订单、管理客户信息、...

    基于springboot的华府便利店信息管理系统源码数据库.zip

    4. "ssm":SSM是Spring、SpringMVC和MyBatis的缩写,通常用于构建Java Web应用。虽然标题没有明确提及SSM,但在SpringBoot项目中,可能会看到这些组件的影子,例如使用MyBatis作为持久层框架。 5. "jsp":JSP(Java...

    基于SSM的兴趣班和延时班管理系统源码.zip

    SSM(Spring、SpringMVC、MyBatis)是一个经典的Java Web开发框架组合,广泛应用于企业级应用系统。本项目“基于SSM的兴趣班和延时班管理系统源码”是针对教育管理领域的一个实例,适合毕业设计或者学习SSM框架的...

    ssm增删改查

    SSM(Spring、SpringMVC、MyBatis)是一个经典的Java web开发框架组合,用于实现高效、灵活且可扩展的企业级应用。在这个"ssm增删改查"项目中,我们将探讨SSM框架如何实现基本的数据操作:增、删、改、查。以下是...

    Java项目-基于SSM的科研成果申报管理系统源码.zip

    这是一个基于Java技术栈的课程设计项目,主要使用了Spring、SpringMVC和MyBatis(SSM)框架来构建一个科研成果申报管理系统。这个系统旨在帮助科研机构或高校管理科研项目的申报过程,包括项目的创建、审核、跟踪和...

    【ssm项目源码】学校维修管理系统.zip

    【ssm项目源码】学校维修管理系统的源代码是一套基于Spring、SpringMVC和MyBatis(简称SSM)的Java Web应用框架实现的系统。这个系统的主要目的是为学校的后勤管理部门提供一个高效、便捷的报修管理和跟踪平台,帮助...

    基于SSM的学生成绩管理系统源码.zip

    SSM(Spring、SpringMVC、MyBatis)是一个经典的Java web开发框架组合,常用于构建企业级应用。本项目“基于SSM的学生成绩管理系统源码”提供了一个全面的示例,可以帮助学习者理解如何在实际开发中运用这三个框架。...

    ssm的客户关系管理系统.rar

    SSM(Spring、SpringMVC、MyBatis)是一个经典的Java web开发框架组合,广泛应用于企业级应用系统,包括客户关系管理系统(CRM)。这个“ssm的客户关系管理系统.rar”压缩包很可能包含了基于SSM框架构建的CRM系统的...

Global site tag (gtag.js) - Google Analytics