第一个Spring整合Mybatis项目【jar包问题】

我的项目目录
在这里插入图片描述
实体类MyUser

package com.po;

public class MyUser {
	private Integer uid;
	private String uname;
	private String usex;
	}

省略set和get方法
接口UserDao

package com.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import com.po.MyUser;


@Mapper
/*
 * 使用 Spring 自动扫描 MyBatis 的接口并装配
(Spring 将指定包中所有被@Mapper 注解标注的接口自动装配为 MyBatis 的映射接口
 */
@Repository("userDao")
public interface UserDao {
	/*
	 * 接口方法对于SQL映射文件UserMapper.xml中的id
	 */
	public MyUser selectUserById(Integer uid);
	public List<MyUser> selectAllUser();
	public int addUser(MyUser user);
	public int updateUser(MyUser user);
	public int deleteUser(Integer uid);
}

此处有@Mapper和Repository注解
直接用控制层调用dao层

package com.controller;

import java.util.List;

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

import com.dao.UserDao;
import com.po.MyUser;
import com.service.UserService;

@Controller("userController")

public class UserController {
	@Autowired
	private UserDao userDao;
	public void test() {
		// select one user
		MyUser auser = userDao.selectUserById(1);
		System.out.println(auser);
		System.out.println("------------------------------");
		// insert one user
		MyUser addmu = new MyUser();
		addmu.setUname("姬云启");
		addmu.setUsex("male");
		int add = userDao.addUser(addmu);
		System.out.println("添加了" + add + "条记录");
		System.out.println("------------------------------");
		// update one user
		MyUser updatemu = new MyUser();
		updatemu.setUid(1);
		updatemu.setUname("张三");
		updatemu.setUsex("famale");
		int up = userDao.updateUser(updatemu);
		System.out.println("修改了" + up + "条记录");
		System.out.println("------------------------------");
		// delete
		int dl = userDao.deleteUser(9);
		System.out.println("删除了" + dl + "条记录");
		System.out.println("------------------------------");
		// 查询所有用户
		List<MyUser> list = userDao.selectAllUser();
		for (MyUser myUser : list)
			System.out.println(myUser);
	}
}

Spring的配置文件applicationContext.xml

<?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:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
           http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
	<!-- 指定需要扫描的包,注解生效 -->
	<context:component-scan base-package="com.dao" />
	<context:component-scan base-package="com.controller" />
	<!-- 扫描数据池 -->
	<context:property-placeholder
		location="classpath:jdbc.properties" ignore-resource-not-found="false" local-override="false"  />
	<!-- 配置数据源 -->
		<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
		<!-- Mysql数据库驱动 -->
		<property name="driverClassName" value="${jdbc.driver}" />
		<!-- URL -->
		<property name="url" value="${jdbc.url}" />
		<!-- Username -->
		<property name="username" value="${jdbc.username}" />
		<!-- password -->
		<property name="password" value="${jdbc.password}" />
		<!-- 最大链接数 -->
		<property name="maxTotal" value="30" />
		<!-- 最大空闲链接数 -->
		<property name="maxIdle" value="10" />
		<!-- 初始化连接数 -->
		<property name="initialSize" value="5" />
		</bean>

	<!-- 为数据源添加事物管理器 -->
	<bean id="txManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<!-- 开启事物注解 -->
	<tx:annotation-driven transaction-manager="txManager"/>
	
	<!-- 配置Mybatis工厂,同时指定数据源,并与Mybatis完美整合 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<!--configLocation 的属性值为 MyBatis 的核心配置文件  -->
		<property name="configLocation" value="classpath:com/mybatis/mybatis-config.xml" />
	</bean>
	
	<!-- Mapper 代理开发,使用 Spring 自动扫描 MyBatis的接口并装配
	(Spring 将指定包中所有被@Mapper 注解标注的接口自动装配为 MyBatis 的映射接口 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- mybatis-spring组件的扫描器 -->
		<property name="basePackage" value="com.dao" />
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
	</bean>
</beans>

1.此处需要注意的就是我配置数据源的class属性,需要依赖commons-dbcp包
2.配置Mybatis工厂时的classpath:com/mybatis/mybatis-config.xml指明@Mapper来此处寻找映射位置,然后又从此处返回mybatis-config.xml
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>

	<!-- 注册映射文件 -->
	<mappers>
		<mapper resource="com/mybatis/UserMapper.xml" />
	</mappers>

</configuration>

测试类和sql就不写了
记录一下我的log4j.properties

#Global logging configuration
log4j.rootLogger=ERROR, stdout

#Uncomment for MyBatis logging
log4j.logger.org.apache.ibatis=ERROR

#Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

jdbc

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/springmvc?CharacterEncoding=utf8&serverTimezone=UTC
jdbc.username=root
jdbc.password=129869

最需要注意的就是jar包问题,困扰了我一天

在这里插入图片描述
有需要的自取

https://mvnrepository.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值