SSM开发之mybatis整合

本文详细介绍了MyBatis与Spring框架的整合过程,包括配置SqlSessionFactory、使用MapperScannerConfigurer、配置mybatis基础文件、整合log4j,以及通过具体实例演示了如何在Spring环境中操作数据库。

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

mybatis下载地址:https://github.com/mybatis/mybatis-3/
mybatis用到jar包:myBatis-3.4.1.jar、mysql-connector-java-5.1.37-bin.jar、log4j.jar
mybatis整合Spring用到的jar包:mybatis-spring-1.3.0.jar

一、 配置SqlSessionFactory

1、在Spring的配置文件中进行配置,配置事务管理器(配置Spring时有介绍):

	<!-- 连接池 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
		<property name="jdbcUrl"
			value="jdbc:mysql://127.0.0.1:3306/paperanalyse?useUnicode=true&amp;characterEncoding=utf-8"></property>
		<property name="user" value="root"></property>
		<property name="password" value="root"></property>
	</bean>

	<!-- 事务 -->
	<bean id="dataSourceTransactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<!-- 基于注解使用事务 -->
	<tx:annotation-driven transaction-manager="dataSourceTransactionManager"/>

2、整合Spring和mybatis:

	<!-- 整合spring与mybatis -->
	<bean class="org.mybatis.spring.SqlSessionFactoryBean">
		
		<!-- 配置数据源 -->
		<property name="dataSource" ref="dataSource"></property>
		
		<!-- mybatis配置文件 -->
		<property name="configLocation" value="/WEB-INF/conf/mybatis-conf.xml"></property>
		
		<!-- mybatis的sql映射文件 -->
		<property name="mapperLocations" value="classpath:com/ssm/framework/mapper/*.xml"></property>
		
		<!-- 配置类型别名 -->
		<property name="typeAliasesPackage" value="com.ssm.framework.beans"></property>
	</bean>

mybatis的基础配置文件为/WEB-INF/conf/mybatis-conf.xml
3、MapperScannerConfigurer

	<!-- MapperScannerConfigurer 为指定包下的Mapper接口批量生成代理实现类,查找类路径下的映射器并自动将它们创建成MapperFactoryBean -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.ssm.framework.dao"></property>
	</bean>

二、mybatis-conf.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>
	<!-- settings配置项 -->
	<settings>
	
		<!-- 映射下划线到驼峰命名 -->
	 	<setting name="mapUnderscoreToCamelCase" value="true"/>
	 	<!-- 设置Mybatis对null值的默认处理 -->
	 	<setting name="jdbcTypeForNull" value="NULL"/>
	 	<!-- 开启延迟加载 -->
	 	<setting name="lazyLoadingEnabled" value="true"/>
	 	<!-- 设置加载的数据是按需还是全部 -->
	 	<setting name="aggressiveLazyLoading" value="false"/>	
	 	<!-- 配置开启二级缓存 -->
	 	<setting name="cacheEnabled" value="true"/>

	</settings>
</configuration>

三、导入log4j.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
 
 <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
   <param name="Encoding" value="UTF-8" />
   <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" />
   </layout>
 </appender>
 <logger name="java.sql">
   <level value="debug" />
 </logger>
 <logger name="org.apache.ibatis">
   <level value="info" />
 </logger>
 <root>
   <level value="debug" />
   <appender-ref ref="STDOUT" />
 </root>
</log4j:configuration>

四、测试

1、表结构:
在这里插入图片描述
2、创建UserBean,代码如下:

package com.ssm.framework.beans;

public class UserBean {
	
	//用户名
	private String username;
	
	//密码
	private String password;
	
	//用户类型
	private String usertype;

	public String getUsertype() {
		return usertype;
	}

	public void setUsertype(String usertype) {
		this.usertype = usertype;
	}

	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;
	}
	
	

}

3、创建接口LoginDao.java,代码如下:

package com.ssm.framework.dao;

import java.util.Map;

import com.ssm.framework.beans.UserBean;

public interface LoginDao {
	
	public UserBean loginFun(Map<String, Object> map);

}

4、创建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.ssm.framework.dao.LoginDao">

	<!-- 获取用户信息 -->
	<select id="loginFun" resultType="com.ssm.framework.beans.UserBean">
	
		SELECT * FROM user
		where 1=1 and username = #{username} and password = #{password}
		
	</select>

</mapper>

namespace为接口的全限定名,resultType为返回类型
5、在Service的实现类中需要使用@Autowired(自动装配)注入Bean,代码如下:

package com.ssm.framework.service.Impl;

import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ssm.framework.beans.UserBean;
import com.ssm.framework.dao.LoginDao;
import com.ssm.framework.service.LoginService;

@Service
public class LoginServiceImpl implements LoginService{
	
	@Autowired
	private LoginDao loginDao;

	@SuppressWarnings("unchecked")
	@Override
	public JSONObject loginFun(JSONObject param) {
		
		JSONObject json = new JSONObject();
		
		Map<String, Object> params = JSONObject.parseObject(JSON.toJSONString(param), Map.class);
		
		UserBean userBean = loginDao.loginFun(params);
		
		if(userBean != null) {
			json.put("usermsg", userBean);
			System.out.println(userBean.getUsername());
			json.put("success", true);
		} else {
			json.put("message", "用户名或密码错误");
			json.put("success", false);
		}
		
		return json;
	}

}

6、页面输入用户名和密码,点击登录按钮:
在这里插入图片描述
7、控制台打印:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值