一、准备jar包
1.mybatis.jar和mybatis-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
具体的一些信息,可以根据自己的数据库情况进行一定的修改。
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;
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 + "]"; } }
<?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>
对于熟悉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>
<?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
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); }
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); } }
相关推荐
《SpringMVC与MyBatis整合初探》 在当今的Java Web开发领域,SpringMVC和MyBatis是两大主流框架,它们分别负责控制层和数据访问层的处理。SpringMVC作为Spring框架的一部分,提供了强大的MVC设计模式实现,而...
关于mybatis的spring boot可执行代码,对应的解说博客地址在:https://blog.csdn.net/heidashou/article/details/105812796,含有全过程截图和解说。
这个资源集合可能包含了从基础到高级的Spring技术应用,特别强调了Spring Boot的初探。 描述中的“采用 Spring Boot + MyBatis”表明该项目采用了MyBatis作为持久层框架。MyBatis是一个优秀的SQL映射框架,它能够将...
【初探微服务与Spring Boot】 微服务架构是一种软件开发方法,它将应用程序设计为一组小型、独立的服务,每个服务都专注于一个特定的业务功能,且可以独立部署、扩展和维护。这种架构模式有助于提高软件的可伸缩性...
SpringBlade 是一个基于 Java8 的微服务架构,采用 Spring Boot 2、Spring Cloud Greenwich、Mybatis 等核心技术。它致力于创造新颖的开发模式,将开发中遇到的痛点、生产中所踩的坑整理归纳,并将解决方案都融合到...
- **核心技术栈**:SpringBoot 2、SpringCloud Greenwich、MyBatis等,为开发者提供强大的后端技术支持。 - **前端支持**:提供了基于React和Vue的两个前端框架供用户快速构建企业级SaaS微服务平台。 #### 二、...
6. **数据访问**:Spring对各种持久化技术的支持,如JDBC、ORM框架(Hibernate、MyBatis),以及Spring Data JPA和Spring Data MongoDB等。 7. **Spring Boot**:现代Spring应用的快速启动框架,介绍其特性,如自动...
SpringBlade使用的核心技术包括SpringBoot、SpringCloud Greenwich、Mybatis等,并提供基于React和Vue的前端框架,以便快速搭建企业级的SaaS微服务系统平台。 快速开始部分介绍了SpringBlade项目开发前的准备工作。...
《基于Hibernate+Spring+Struts的学生信息管理系统初探》 在Java开发领域,Spring、Hibernate和Struts是经典的“SSH”框架组合,常用于构建企业级应用,如本例中的学生信息管理系统。这个初级版系统展示了如何将这...
《Spring in Action》是Spring框架领域的一本权威著作,尤其以最新版著称。这本书以其详尽的内容和丰富的示例闻名,旨在帮助Java开发者深入理解并...无论是对Spring的初探还是深入研究,这本书都是一份不可多得的资源。
《Spring框架初探》 Spring框架是Java企业级应用开发中的重要组成部分,它以其轻量级、模块化和全面的特性赢得了广大开发者喜爱。本文将深入探讨Spring框架的基础知识,帮助初学者理解并掌握这一强大的工具。 首先...
SpringBlade的核心技术包括Spring Boot 2、Spring Cloud Greenwich和Mybatis,它还提供了React和Vue两个前端框架选项。此框架关注开发效率和问题解决,例如通过集成Sentinel实现服务稳定性保护,选用Nacos作为注册...
1. **Spring初探** 在这一章中,我们将从Spring框架的基础出发,介绍其诞生背景和主要目标。我们会讲解Spring如何简化Java应用的开发,以及它提供的依赖注入(Dependency Injection, DI)机制,这是Spring的核心...
而Spring Data则为与各种数据库交互提供了统一的接口,如JPA和MyBatis。 对于并发编程,Java提供了丰富的线程API,包括Thread类和Runnable接口,以及ExecutorService和Future等高级并发工具。通过合理使用这些工具...
**1.5 初探PAFA** 初学者可以通过官方文档或示例项目了解PAFA的基本结构和工作原理。熟悉Spring框架的开发者将更容易上手PAFA。 **1.6 SPRING与PAFA的关系** Spring框架是PAFA的基础,PAFA在其之上进行扩展和定制...
《Spring Boot初探:搭建与应用》 Spring Boot是由Pivotal团队提供的全新框架,它为简化Spring应用程序的初始搭建以及开发过程提供了便利。在Java领域,Spring Boot以其开箱即用、快速开发的特点,备受开发者青睐。...
第七篇:整合Mybatis] 第八篇:通用Mapper与分页插件的集成] 第九篇:整合Lettuce Redis] 第十篇:使用Spring Cache集成Redis] 第十一篇:集成Swagger在线调试] 第十二篇:初探RabbitMQ消息队列] 第十...
整合Mybatis 通用Mapper与分页插件的集成 整合Lettuce Redis 使用Spring Cache集成Redis 集成Swagger在线调试 初探RabbitMQ消息队列 RabbitMQ延迟队列 actuator 服务监控与管理 actuator与spring-boot-admin 定时...