`

spring+mybatis初探

 
阅读更多

一、准备jar

 
1.mybatis.jarmybatis-spring.jar官方下载地址:

 http://code.google.com/p/mybatis/

2.spring的所有jar

3.数据库驱动jar

4.junit测试jar

5.log4j日志jar

二、配置文件

1. 数据库连接基本信息jdbc.properties放在src

driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:oralsb
username=scott
password=tiger
maxActive=255
maxIdle=20
maxWait=100

 

具体的一些信息,可以根据自己的数据库情况进行一定的修改。

2.在数据库中创建表与及相应的序列

CREATE TABLE T_USER
(
       ID INT PRIMARY KEY,
       NAME VARCHAR2(15),
       PASSWORD VARCHAR2(20)
);

CREATE SEQUENCE T_USER_SEQ START WITH 1 INCREMENT BY 1 NOCACHE;

COMMIT;

 

3.创建相应的JavaBean

package com.springmybatis.model;

public class User {
	private int id;
	private String name;
	private String password;

	public int getId() {
		return id;
	}
	public void setId(int 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;
	}
	
	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", password=" + password + "]";
	}

}

 

4.准备表的映射文件User.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.springmybatis.model.User">

	<resultMap id="userMap" type="User">
		<id column="id" property="id" />
		<id column="name" property="name" />
		<id column="password" property="password" />
	</resultMap>

	<select id="getUser" parameterType="int" resultMap="userMap">
		SELECT * FROM T_USER WHERE ID = #{id}
	</select>

	<insert id="addUser" parameterType="User">
		INSERT INTO T_USER
		  (ID, NAME, PASSWORD)
		VALUES
		  (T_USER_SEQ.NEXTVAL, #{name, jdbcType=VARCHAR}, #{password, jdbcType=VARCHAR})
	</insert>

	<update id="updateUser" parameterType="User">
		UPDATE T_USER SET NAME = #{name, jdbcType=VARCHAR}, PASSWORD = #{password, jdbcType=VARCHAR} WHERE ID = #{id, jdbcType=INTEGER}
	</update>

</mapper>

 

5. 总配置文件sqlMapConfig.xml

对于熟悉Mybatis这个orm框架的肯定知道,一般都需要一个对数据库操作的总配置文件。

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

	<typeAliases>
		<typeAlias alias="User" type="com.springmybatis.model.User" />
	</typeAliases>

	<mappers>
		<mapper resource="com/springmybatis/model/User.xml" />
	</mappers>
	
</configuration>

 

6.spring配置文件beans.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:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
						http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
						http://www.springframework.org/schema/context
						http://www.springframework.org/schema/context/spring-context-3.1.xsd">

	<!-- 添加扫描包 -->
	<context:component-scan base-package="com.springmybatis" />

	<bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>
				<value>classpath:jdbc.properties</value>
			</list>
		</property>
	</bean>

	<bean id="dataSource" destroy-method="close"
		class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="${driverClassName}" />
		<property name="url" value="${url}" />
		<property name="username" value="${username}" />
		<property name="password" value="${password}" />
		<!-- 最大连接数量 -->
		<property name="maxActive" value="${maxActive}" />
		<!-- 最大空闲连接数量 -->
		<property name="maxIdle" value="${maxIdle}" />
		<property name="maxWait" value="${maxWait}" />
		<property name="validationQuery" value="select count(1) from Dual" />
		<!-- test when get connection -->
		<property name="testOnBorrow" value="true" />
		<!-- test when return connection to pool -->
		<property name="testOnReturn" value="true" />
		<property name="testWhileIdle" value="true" />
	</bean>

	<!-- 创建sqlSessionFactory,同时指定数据源 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="configLocation" value="classpath:sqlMapConfig.xml" />
	</bean>
	
	<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg index="0" ref="sqlSessionFactory" />
	</bean>

</beans>

 

7.编写相应的DAO

7.1 IUserDAO.java

package com.springmybatis.dao;

import com.springmybatis.model.User;

public interface IUserDAO {
	
	public boolean addUser(User user);

	public boolean updateUser(User user);
	
	public User getUser(int id);

}

 

7.2 UseDAOImpl.java

package com.springmybatis.dao;

import javax.annotation.Resource;

import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.stereotype.Component;

import com.springmybatis.model.User;

@Component("userDAO")
public class UserDAOImpl implements IUserDAO {

	private SqlSessionTemplate sqlSessionTemplate;

	public SqlSessionTemplate getSqlSessionTemplate() {
		return sqlSessionTemplate;
	}

	@Resource(name="sqlSessionTemplate")
	public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
		this.sqlSessionTemplate = sqlSessionTemplate;
	}

	@Override
	public boolean addUser(User user) {
		int result = sqlSessionTemplate.insert("com.springmybatis.model.User.addUser", user);
		return result != 0;
	}

	@Override
	public boolean updateUser(User user) {
		int result = sqlSessionTemplate.update("com.springmybatis.model.User.updateUser", user);
		return result != 0;
	}

	@Override
	public User getUser(int id) {
		User user = sqlSessionTemplate.selectOne("com.springmybatis.model.User.getUser", id);
		return user;
	}

}

 

三、日志文件配置

1. 日志文件配置log4j.properties放在src

log4j.rootLogger=DEBUG, stdout, fileout
#log4j.logger.test=info
#log4j.logger.org.apache.jasper = DEBUG
#log4j.logger.org.apache.catalina.startup.TldConfig = DEBUG
#log4j.logger.org.apache.catalina.session.ManagerBase = DEBUG

log4j.logger.com.fiscal = DEBUG
log4j.logger.com.system = DEBUG

log4j.logger.com.ibatis = DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource = DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner = DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = DEBUG
log4j.logger.java.sql.Connection = DEBUG
log4j.logger.java.sql.Statement = DEBUG
log4j.logger.java.sql.PreparedStatement = DEBUG
log4j.logger.java.sql.ResultSet = DEBUG

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.fileout=org.apache.log4j.RollingFileAppender
log4j.appender.fileout.File=C:\\ibatis.log
log4j.appender.fileout.MaxFileSize=10000KB

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %m%n
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout 
log4j.appender.fileout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %m%n

 

2.web.xml添加如下配置

<!-- Log4j 配置 -->
<context-param>
	<param-name>log4jRefreshInterval</param-name>
	<param-value>60000</param-value>
</context-param>
<listener>
	<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

 

四、测试

package com.springmybatis.test;

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

import com.springmybatis.dao.IUserDAO;
import com.springmybatis.dao.UserDAOImpl;
import com.springmybatis.model.User;

public class UserTest {
	
	@Test
	public void testAddUser() {
		ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
		IUserDAO userDAO = context.getBean("userDAO", UserDAOImpl.class);
		User user = new User();
		user.setName("李四");
		user.setPassword("12345");
		boolean result = userDAO.addUser(user);
		System.out.println(result);
	}
	
	@Test
	public void testUpdateUser() {
		ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
		IUserDAO userDAO = context.getBean("userDAO", UserDAOImpl.class);
		User user = new User();
		user.setId(1);
		user.setName("李四123456789");
		user.setPassword("54321");
		boolean result = userDAO.updateUser(user);
		System.out.println(result);
	}
	
	@Test
	public void testGetUser() {
		ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
		IUserDAO userDAO = context.getBean("userDAO", UserDAOImpl.class);
		User user = userDAO.getUser(1);
		System.out.println(user);
	}
	
}

 

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

相关推荐

    springmvc+mybatis初探

    《SpringMVC与MyBatis整合初探》 在当今的Java Web开发领域,SpringMVC和MyBatis是两大主流框架,它们分别负责控制层和数据访问层的处理。SpringMVC作为Spring框架的一部分,提供了强大的MVC设计模式实现,而...

    mybatis-spring-boot-starter初探 代码.zip

    关于mybatis的spring boot可执行代码,对应的解说博客地址在:https://blog.csdn.net/heidashou/article/details/105812796,含有全过程截图和解说。

    SpringMVC精品资源--个人博客,Spring Boot 开山之作,采用 Spring Boot + MyBa.zip

    这个资源集合可能包含了从基础到高级的Spring技术应用,特别强调了Spring Boot的初探。 描述中的“采用 Spring Boot + MyBatis”表明该项目采用了MyBatis作为持久层框架。MyBatis是一个优秀的SQL映射框架,它能够将...

    初探微服务与Spring Boot

    【初探微服务与Spring Boot】 微服务架构是一种软件开发方法,它将应用程序设计为一组小型、独立的服务,每个服务都专注于一个特定的业务功能,且可以独立部署、扩展和维护。这种架构模式有助于提高软件的可伸缩性...

    SpringBlade 开发手册.pdf

    SpringBlade 是一个基于 Java8 的微服务架构,采用 Spring Boot 2、Spring Cloud Greenwich、Mybatis 等核心技术。它致力于创造新颖的开发模式,将开发中遇到的痛点、生产中所踩的坑整理归纳,并将解决方案都融合到...

    SpringBlade开发手册.pdf

    - **核心技术栈**:SpringBoot 2、SpringCloud Greenwich、MyBatis等,为开发者提供强大的后端技术支持。 - **前端支持**:提供了基于React和Vue的两个前端框架供用户快速构建企业级SaaS微服务平台。 #### 二、...

    pring初探共18页.pdf.zip

    6. **数据访问**:Spring对各种持久化技术的支持,如JDBC、ORM框架(Hibernate、MyBatis),以及Spring Data JPA和Spring Data MongoDB等。 7. **Spring Boot**:现代Spring应用的快速启动框架,介绍其特性,如自动...

    SpringBlade快速开发手册

    SpringBlade使用的核心技术包括SpringBoot、SpringCloud Greenwich、Mybatis等,并提供基于React和Vue的前端框架,以便快速搭建企业级的SaaS微服务系统平台。 快速开始部分介绍了SpringBlade项目开发前的准备工作。...

    hibernate+spring_struts开发的学生信息管理系统(初级版)

    《基于Hibernate+Spring+Struts的学生信息管理系统初探》 在Java开发领域,Spring、Hibernate和Struts是经典的“SSH”框架组合,常用于构建企业级应用,如本例中的学生信息管理系统。这个初级版系统展示了如何将这...

    spring in action 最新

    《Spring in Action》是Spring框架领域的一本权威著作,尤其以最新版著称。这本书以其详尽的内容和丰富的示例闻名,旨在帮助Java开发者深入理解并...无论是对Spring的初探还是深入研究,这本书都是一份不可多得的资源。

    2.spring_beginning

    《Spring框架初探》 Spring框架是Java企业级应用开发中的重要组成部分,它以其轻量级、模块化和全面的特性赢得了广大开发者喜爱。本文将深入探讨Spring框架的基础知识,帮助初学者理解并掌握这一强大的工具。 首先...

    Saber开发手册基础版

    SpringBlade的核心技术包括Spring Boot 2、Spring Cloud Greenwich和Mybatis,它还提供了React和Vue两个前端框架选项。此框架关注开发效率和问题解决,例如通过集成Sentinel实现服务稳定性保护,选用Nacos作为注册...

    spring 课件下载

    1. **Spring初探** 在这一章中,我们将从Spring框架的基础出发,介绍其诞生背景和主要目标。我们会讲解Spring如何简化Java应用的开发,以及它提供的依赖注入(Dependency Injection, DI)机制,这是Spring的核心...

    基于计算机软件开发的JAVA编程应用初探.zip

    而Spring Data则为与各种数据库交互提供了统一的接口,如JPA和MyBatis。 对于并发编程,Java提供了丰富的线程API,包括Thread类和Runnable接口,以及ExecutorService和Future等高级并发工具。通过合理使用这些工具...

    基于SPRING框架的平安PAFA架构解析

    **1.5 初探PAFA** 初学者可以通过官方文档或示例项目了解PAFA的基本结构和工作原理。熟悉Spring框架的开发者将更容易上手PAFA。 **1.6 SPRING与PAFA的关系** Spring框架是PAFA的基础,PAFA在其之上进行扩展和定制...

    springbillt.zip

    《Spring Boot初探:搭建与应用》 Spring Boot是由Pivotal团队提供的全新框架,它为简化Spring应用程序的初始搭建以及开发过程提供了便利。在Java领域,Spring Boot以其开箱即用、快速开发的特点,备受开发者青睐。...

    springboot项目整合.zip

    第七篇:整合Mybatis] 第八篇:通用Mapper与分页插件的集成] 第九篇:整合Lettuce Redis] 第十篇:使用Spring Cache集成Redis] 第十一篇:集成Swagger在线调试] 第十二篇:初探RabbitMQ消息队列] 第十...

    Java Springboot学习资料.rar

    整合Mybatis 通用Mapper与分页插件的集成 整合Lettuce Redis 使用Spring Cache集成Redis 集成Swagger在线调试 初探RabbitMQ消息队列 RabbitMQ延迟队列 actuator 服务监控与管理 actuator与spring-boot-admin 定时...

Global site tag (gtag.js) - Google Analytics