Spring相关配置
//数据源
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
<property name="url" value="jdbc:sqlserver://127.0.0.1:1433;databaseName=ibatisDB"></property>
<property name="username" value="sa"></property>
<property name="password" value="zhaoyu"></property>
</bean>
//MyBatis支持
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:sqlMapConfig.xml"></property>
<property name="dataSource" ref="dataSource"></property>
</bean>
<bean id="dao" class="com.dao.impl.DaoImpl">
//注入
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
//事务管理器
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local="dataSource"/>
</property>
</bean>
//通过引用bean方式配置事物(不是更加方便的设置切入点方式)
<bean id="DaoProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="target">
<ref local="dao"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="search*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
MyBatis相关配置
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD sql Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig> <!-- 都写在spring配置文件中,这里只需要配置映射文件 -->
<sqlMap resource="com/entity/User.xml"/>
</sqlMapConfig>
实体类
package com.entity;
public class User {
private int id;
private String name;
private int age;
//省略get set
@Override
public String toString() {
// TODO Auto-generated method stub
return "编号:"+id+" 姓名:"+name+" 年龄:"+age;
}
}
配置SQL
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD sql Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="user">
<typeAlias alias="user" type="com.entity.User"/> //alias别名 type类型
<select id="getUsers" resultClass="user" >
<![CDATA[select * from t_user]]>
</select>
<insert id="insert" parameterClass="user">
insert into t_user(name,age) values(#name#,#age#)
</insert>
<update id="update" parameterClass="java.util.Map">
<![CDATA[update t_user set name=#name#,age=#age# where id = #id#]]>
</update>
<delete id="delete" parameterClass="int">
<![CDATA[delete from t_user where id = #id#]]>
</delete>
</sqlMap>
DAO代码
package com.dao.impl;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.orm.ibatis.SqlMapClientCallback;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import com.dao.Dao;
import com.entity.User;
import com.ibatis.sqlmap.client.SqlMapExecutor;
public class DaoImpl extends SqlMapClientDaoSupport implements Dao {
public void save(User user) {
getSqlMapClientTemplate().insert("insert", user);
}
public void delete(int id) {
getSqlMapClientTemplate().delete("delete",id);
}
public void update(String name, int age, int id) {
Map<String,Object> map = new HashMap<String,Object>();
map.put("name", name);
map.put("age", age);
map.put("id", id);
getSqlMapClientTemplate().update("update",map);
}
@SuppressWarnings("unchecked")
public List<User> searchUsers() {
return getSqlMapClientTemplate().queryForList("getUsers");
}
/**
* 类似hibernate的回调接口,在此是一个demo
* @return
*/
public List<User> demo(){
getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor sqlMap) throws SQLException {
//sqlMap.queryForObject(arg0)
return null;
}
});
return null;
}
}
相关调用代码
package com;
import java.util.Iterator;
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.dao.Dao;
import com.entity.User;
public class Demo {
public static void main(String[] args) {
save();
showUser();
update();
delete();
}
//保存
public static void save(){
Dao dao = daoFartory();
User user = new User("zhaoliang228",24);
dao.save(user);
}
//修改
public static void update(){
Dao dao = daoFartory();
dao.update("zl", 100, 5);
}
public static void delete(){
Dao dao = daoFartory();
dao.delete(6);
}
//查询
public static void showUser(){
Dao dao = daoFartory();
List<User> users = dao.searchUsers();
Iterator<User> i = users.iterator();
while(i.hasNext()){
System.out.println(i.next());
}
}
public static Dao daoFartory(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
Dao dao = (Dao) ctx.getBean("dao");
return dao;
}
}
分享到:
相关推荐
MyBatis+SpringDemo项目是一个综合性的开发示例,它结合了MyBatis和Spring框架,展示如何在实际开发中整合这两个强大的工具,实现数据访问层(DAO)的操作。在这个项目中,我们将深入探讨MyBatis和Spring的核心概念...
【标题】"springboot-mybatis-demo"是一个演示项目,展示了如何在Spring Boot框架下整合MyBatis和MySQL数据库。这个项目是基于现有的示例代码进行调整和改造的,旨在为学习者提供一个基础的实践环境。 【描述】该...
在"java-mybatis、springmvc 整合demo源码(druid-demo)"中,我们主要探讨的是如何将这两个框架进行无缝集成,并解决在使用@Transactional注解时遇到的事务管理问题。 首先,我们需要了解MyBatis与SpringMVC的整合...
本文将深入探讨这个"mybatis+spring maven下整合完整demo"所涉及的关键知识点,帮助你理解如何在这样的环境中进行开发。 1. **MyBatis**:MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。...
Spring MVC、MyBatis 和 Spring Security 是 Java Web 开发中常用的三大框架,它们各自负责不同的职责,但在实际项目中常被整合使用以构建强大的企业级应用。本整合 demo 展示了如何将这三个框架协同工作,提供高效...
MyBatis和Spring的整合是Java开发中常见的技术组合,它们各自在数据访问层提供了强大的支持。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC代码和手动设置参数以及...
本教程通过一个简单的Demo展示了如何将MyBatis、Spring和Maven这三个流行的技术结合使用。下面将详细介绍这个整合过程中的关键知识点。 首先,**MyBatis** 是一个优秀的持久层框架,它简化了数据库操作,通过SQL...
MybatisSpring1Demo是一个关于如何将Mybatis与Spring框架整合的实际示例项目。这个项目旨在展示如何在Java应用中同时使用这两个流行的技术,以便于数据库操作和依赖注入。接下来,我们将详细探讨Mybatis和Spring各自...
SpringBoot简化了Spring应用的初始搭建以及开发过程,而MyBatis则是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。现在我们来深入探讨如何将这两个框架整合,并通过这个名为"xyspringboot"的Demo来...
Springmvc+mybatis+spring 系统demo下载,基于myeclipse + tomcat 开发完成,下载后根据一份简单的使用说明就可以直接运行,代码实现简单的数据增删改查,希望给初学者参考
这个最新的Struts2 Spring MyBatis整合的Demo项目是一个典型的MVC架构,旨在展示如何将这三者有效地集成在一起。 Struts2作为前端控制器,负责处理HTTP请求,并调度到相应的业务逻辑。它提供了丰富的动作和结果类型...
在"SpringMVC+Mybatis demo"中,MyBatis与Spring结合,通过Spring的SqlSessionFactoryBean创建SqlSessionFactory,进一步生成SqlSession实例。Mapper接口的实现通常会使用`@Mapper`注解,这样Spring能够自动扫描并...
由于Spring官方并未直接提供与MyBatis的集成解决方案,我们需要借助第三方库“mybatis-spring-1.0.0.jar”,这是由MyBatis官方提供的用于Spring框架的适配器。 首先,让我们了解MyBatis和Spring的基本概念。MyBatis...
Spring cloud + mybatis 案例; Spring Cloud是基于Spring Boot的一整套实现微服务的框架。他提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群...
本DEMO以Spring 3.2.6、Struts 2.3.15和MyBatis 3为技术栈,展示了如何将这三者进行高效整合,实现灵活、松耦合的业务逻辑处理。 首先,Spring作为一款全面的轻量级框架,提供了依赖注入(DI)和面向切面编程(AOP...
在本项目"springBoot+mybatis简单demo完整详细版"中,我们将深入探讨如何使用Spring Boot与MyBatis框架构建一个简单的应用。Spring Boot以其快速启动、自动化配置和开箱即用的特点,大大简化了Java应用程序的开发...
在"springmvc-mybatis-spring整合demo"中,包含了上述所有配置和代码示例,导入项目后可以直接运行,观察其运行效果。这将帮助开发者快速理解并掌握这三个框架的整合方式,为实际开发提供参考。 总结,Spring MVC、...
**Spring MVC3与MyBatis 3整合的Demo工程** Spring MVC和MyBatis是Java Web开发中的两个重要框架,Spring MVC负责控制层,而MyBatis则专注于数据访问层。这个Demo工程提供了如何将两者结合使用的实例,适用于Oracle...
在MyBatis+Spring的Demo中,它会列出所需的jar包,如Spring框架、MyBatis框架以及数据库驱动等。 5. **.project文件**: 这是Eclipse项目的元数据文件,定义了项目的类型、构建配置以及其他属性。在这个Demo中,它...
"spring + springmvc + mybatis 整合 demo"是开发者们经常进行的一个实践项目,目的是演示如何将这三个框架集成到一起,创建一个完整的Web应用。首先,我们需要配置Spring的ApplicationContext,定义Bean并管理依赖...