mybatis 结合Spring 配置使用


maven引入mysql,spring,mybatis

package com.test.dao;

import java.util.List;


import com.test.vo.User;

public interface UserNewDao {
	public List<User> Login(User user);

	public User getUsermes(User user);

	public int getUserNum();

	public List<User> getPageUser(long id, int pageSize);

	/*
	 * public void addUser(User user);
	 * 
	 * public void updateUser(User user);
	 * 
	 * public void deleteUser(int UserId);
	 */
}

 

<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${springframework.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${springframework.version}</version>
			<scope>runtime</scope>
		</dependency>
<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>${mybatis.version}</version>
		</dependency>

		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>${mybatis-spring.version}</version>
		</dependency>
<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>${mysql.version}</version>
		</dependency>


		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-dbcp2</artifactId>
			<version>2.7.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-pool2</artifactId>
			<version>2.7.0</version>
		</dependency>

<!--  @ResponseBody 返回Json时,需要手动添加jackson依赖  -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.10.0.pr3</version>
		</dependency>

spring配置web.xml

<!-- 配置Spring的核心监听器 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext.xml</param-value>
	</context-param>

创建applicationContext.xml,生成id mybatisuserService对象

beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context"
	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-3.0.xsd
                        http://www.springframework.org/schema/context 
                        http://www.springframework.org/schema/context/spring-context-3.0.xsd">

	<context:component-scan base-package="com.test.service" />

	<!-- mybatis配置 -->

	<!-- 配置数据源 -->
	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName">
			<value>org.gjt.mm.mysql.Driver</value>
		</property>
		<property name="url">
			<value>jdbc:mysql://localhost:3306/usersystem?characterEncoding=utf8&useSSL=true
			</value>
			<!--springmybaitis是我的数据库 -->
		</property>
		<property name="username">
			<value>root</value>
		</property>
		<property name="password">
			<value>wys123</value>
		</property>
	</bean>

	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="configLocation" value="classpath:mybatis-config.xml"></property>
	</bean>

	<bean id="usernewDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
		<property name="mapperInterface" value="com.test.dao.UserNewDao"></property>
		<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
	</bean>


	<bean id="mybatisuserService" class="com.test.service.MyBatisUserService"></bean>

	<bean id="user" class="com.test.vo.User"></bean>


<!-- 配置SqlSessionFactoryBean -->
	<bean id="sqlSessionFactory"
		class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 引用数据源组件 -->
		<property name="dataSource" ref="dataSource" />
		<!-- 引用MyBatis配置文件中的配置 -->
		<property name="configLocation"
			value="classpath:mybatis-config.xml" />
	</bean>

	<!-- Mapper代理开发,使用Spring自动扫描MyBatis的接口并装配 (Sprinh将指定包中的所有被@Mapper注解标注的接口自动装配为MyBatis的映射接口) -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- mybatis-spring组件的扫描器,com.dao只需要接口(接口方法与SQL映射文件中的相同) -->
		<property name="basePackage" value="com.sf.myTest.dao" />
		<property name="sqlSessionFactoryBeanName"
			value="sqlSessionFactory" />
	</bean>


</beans>

查询方法:mybatisuserService对应spring中的id

@Resource(name = "mybatisuserService")
	private MyBatisUserService mybatisuserService;
@RequestMapping(value = "user.login", method = RequestMethod.GET)
	public String userLogin(String username,String userpwd, ModelMap modelMap) {
		if (StringUtils.isEmpty(username)) {
			modelMap.addAttribute("usernameerror", "用户名不能为空");
			return "login";
		} else if (StringUtils.isEmpty(userpwd)) {
			modelMap.addAttribute("userpwderror", "密码不能为空");
			return "login";
		}
		User user=new User();
		user.setUsername(username);
		user.setUserpwd(userpwd);
		user = mybatisuserService.Login(user);
		if (user == null) {
			modelMap.addAttribute("loginerror", "该用户不存在");
			return "login";
		}
		return "index";
	}

mybatisuserService对应的类

public class MyBatisUserService {
	@Resource(name = "usernewDao")
	private UserNewDao usernewdao;

	/*
	 * public UserNewDao getUsernewdao() { return usernewdao; }
	 * 
	 * public void setUsernewdao(UserNewDao usernewdao) { this.usernewdao =
	 * usernewdao; }
	 */

	public User Login(User user) {
		List<User> userlist = usernewdao.Login(user);
		for (User list : userlist) {
			return list;
		}
		return null;
	}

	public User getUsermes(User user) {
		return usernewdao.getUsermes(user);
	}

	public long getUserNun() {
		return usernewdao.getUserNum();
	}

	public List<User> getPageUser(long id, int pageSize) {
		return usernewdao.getPageUser(id, pageSize);
	}
}

创建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>
	<!-- <typeAliases>
	别名,mapper namespace可以="User“
		<typeAlias alias="User" type="com.test.vo.User" />
	</typeAliases> -->
	
	<mappers>
	      <mapper resource="com/test/dao/UserNewDao.xml" />
	</mappers>
</configuration>


创建Usernew'Dao.xml,namespace对应类名,对应类里的方法

<mapper namespace="com.test.dao.UserNewDao">
	<select id="Login" parameterType="com.test.vo.User" resultType="com.test.vo.User">
		SELECT * FROM user WHERE username=#{username} AND userpwd=#{userpwd}
	</select>

	<!-- 多对一查询 -->
	<select id="getUsermes" parameterType="com.test.vo.User"
		resultMap="UserMesPostsMap">
		SELECT user.*,usermes.* FROM user, usermes WHERE
		user.username=#{username} AND
		user.id=usermes.userno
	</select>
	<resultMap type="com.test.vo.User" id="UserMesPostsMap">
		<result property="username" column="username" />
		<result property="id" column="id" />
		<!-- <result property="userpwd" column="userpwd" /> -->
		<association property="usermes" javaType="com.test.vo.Usermes">
			<!-- <collection property="usermes" ofType="com.test.vo.Usermes" > -->
			<result property="userno" column="userno" />
			<result property="username" column="username" />
			<result property="userbalance" column="userbalance" />
			<!-- </collection> -->
		</association>
	</resultMap>

	<select id="getUserNum" resultType="int">
		SELECT count(id) FROM user
	</select>

	<select id="getPageUser" resultMap="UserMesPostsMap">
		SELECT user.*,usermes.* FROM
		user left join usermes on
		usermes.userno=user.id where
		user.id>#{arg0}
		<!-- <if test="arg1 < 0 && arg1==0"> -->
		limit #{arg1}
		<!-- </if> -->
	</select>
	
</mapper> 

创建对应的UserNewDao

package com.test.dao;

import java.util.List;


import com.test.vo.User;

public interface UserNewDao {
	public List<User> Login(User user);

	public User getUsermes(User user);

	public int getUserNum();

	public List<User> getPageUser(long id, int pageSize);

	/*
	 * public void addUser(User user);
	 * 
	 * public void updateUser(User user);
	 * 
	 * public void deleteUser(int UserId);
	 */
}

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值