mybatis与spring 的整合

该文章展示了如何在一个项目中整合MyBatis和Spring,包括配置db.properties、mybatis-config.xml和applicationContext.xml,创建实体类、Mapper接口和XML映射文件,以及Service层和测试类,实现数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一项目框架图:

二,整合jar包

三,整合实现

db.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.username=root
jdbc.password=123456
jdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC

1,mybatis-config.xml

<?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>
     <!-- mybatis框架的个性化配置可在此配置 -->
     <typeAliases>
	 <package name="com.xfu.pojo"/>
	</typeAliases>
</configuration>

 2,applicationContext.xml(整合的具体展现)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	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.xfu" />
	<!-- 读取外部配置文件到spring容器中 -->
	<context:property-placeholder
		location="classpath:db.properties" />
	<!-- 数据源 -->
	<bean id="dataSource"
		class="com.alibaba.druid.pool.DruidDataSource">
		<property name="driverClassName" value="${jdbc.driver}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
	</bean>
	
	<bean id="sqlSessionFactory"
		class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<!-- <property name="typeAliasesPackage" value="com.xfu.pojo" /> -->
		<property name="mapperLocations">
			<array>
				<!-- 配置单个映射文件 -->
				<!-- <value>classpath:com/xfu/mapper/UserMapper.xml</value> -->
				<!-- 配置多个映射文件使用 * 通配符 -->
				<value>classpath:com/xfu/mapper/*Mapper.xml</value>
			</array>
		</property>
		<!-- 配置mybatis-confg.xml主配置文件(注配置文件可以保留一些个性化配置,缓存,日志,插件) -->
		<property name="configLocation"
			value="classpath:mybatis-config.xml" />
		<!-- 配置别名,使用包扫描 -->
		<!-- <property name="typeAliasesPackage" value="com.xfu.pojo"></property> -->
	</bean>
	
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- 配置SqlSessionFactoryBean的名称 -->
		<property name="basePackage" value="com.xfu.mapper" />
		<!-- 可选,如果不写,Spring启动时候。容器中。自动会按照类型去把SqlSessionFactory对象注入进来 -->
		<!-- <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> -->

		<property name="sqlSessionFactoryBeanName"
			value="sqlSessionFactory" />
	</bean>
</beans>

3,实体类

package com.xfu.pojo;

import lombok.Data;

@Data
public class User {
	
	int id;
	String name;
	String pwd;

}

4,UserMapper

package com.xfu.mapper;

import java.util.List;

import com.xfu.pojo.User;

public interface UserMapper {

	
	List<User> findAllUser();
	
	User findAllUserBuId(int id);
	
	int UpadtefindById(User user);
}

5,UserMapper.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.xfu.mapper.UserMapper">
  	<select id="findAllUser" resultType="user">
  		select * from tbuser
  	</select>
  	<select id="findAllUserBuId" resultType="user" parameterType="int">
  		select * from tbuser where id=#{id}
  	</select>
  	<update id="UpadtefindById" parameterType="user">
  		update tbuser set name=#{name},pwd=#{pwd} where id=#{id}
  	</update>
  </mapper>

6,Userservice

package com.xfu.service;

import java.util.List;

import com.xfu.pojo.User;

public interface UserService {

	public List<User> findAllUser();
	
	public User findAllUserBuId(int id);
	
	public int UpadtefindById(User user);
}

7,UserServiceImpl

package com.xfu.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.xfu.mapper.UserMapper;
import com.xfu.pojo.User;
import com.xfu.service.UserService;
@Service
public class UserServiceImpl implements UserService{

	@Resource
	UserMapper usermapper;
	@Override
	public List<User> findAllUser() {
		
		return usermapper.findAllUser();
	}

	@Override
	public int UpadtefindById(User user) {
		
		return usermapper.UpadtefindById(user);
	}

	@Override
	public User findAllUserBuId(int id) {
		
		return usermapper.findAllUserBuId(id);
	}

}

8,测试类

package com.xfu.test;

import java.util.List;

import javax.annotation.Resource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.xfu.pojo.User;
import com.xfu.service.UserService;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:applicationContext.xml"})
public class UserTest {
	@Resource
	UserService userservice;
	@Test
	public void test() {
		List<User> list = userservice.findAllUser();
		list.forEach(System.out::println);
	}
	@Test
	public void tset2() {
		User user = userservice.findAllUserBuId(1);
		System.out.println(user);
	}
	
	public void test3() {
		User user=new User();
		user.setId(1);
		user.setName("admin");
		user.setPwd("admin");
		String a=userservice.UpadtefindById(user)>0?"恭喜你修改成功":"修改失败";
		System.out.println(a);
		
	}
	

}

四:运行结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值