spring整合mybatis

本文详细介绍了如何使用Maven搭建一个包含MyBatis、SpringMVC、Spring和MySQL连接的项目,涵盖了依赖配置、POJO定义、Mapper配置、Service实现及事务管理等内容。

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

让我们来创建一个maven项目吧!!!

pom.xml配置:

<!-- 连接池  hikariCP  c3p0 -->
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>2.7.8</version>
</dependency>
     <!-- spring mvc  -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>5.0.0.RELEASE</version>
		</dependency>


		<!-- jdbc -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.47</version>
		</dependency>


		<!-- mybatis -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.0</version>
		</dependency>

		<!-- log4j core -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>2.11.1</version>
		</dependency>

		<!-- log4j api -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
			<version>2.11.1</version>
		</dependency>

		<!-- mybatis-spring -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.3.0</version>
		</dependency>

		<!-- spring-jdbc -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>5.0.0.RELEASE</version>
		</dependency>

		<!-- aspectjweaver -->
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>1.8.11</version>
		</dependency>

pojo包:

User.pojo

public class User{
    private int uid;
    private String uname;
    private String blood;
    private String hooby;
    /*
       数据库字段uid uname blood hobby 
       然后get set   注:可以使用快捷方法生成get set
    */
}

 

总的配置文件:

<configuration>
    <mappers>
       <mapper resource="com/pojo/user.xml"/>
    </mappers>
</configuration>

user.xml

<mapper namespace="com.dao.UserDao">
     <!- 查所有的用户 ->
     <select id="findAll">
          select uid,uname,blood,hobby from user
     </select>
</mapper>

UserDao.java

public interface UserDao {
	public List findAll();
}

UserServer.java

@Service("userService")
public class UserService{
   //注解
   @Autowired
   private UserDao userDao;
   public List findAll(){
      return userDao.findAll();
   }
}

applicationContext.xml

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
	xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="
	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
	http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-4.3.xsd">

   <import resource="mybatis.xml" />
</bean>

mybatis.xml

<!-- 数据源  hikariCP  C3PO  -->
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource">
		<property name="username" value="root"></property>
		<property name="password" value="admin"></property>
		<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
		<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/zby"></property>
</bean>	

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

	<!-- dao -->
	<bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
		<property name="sqlSessionFactory" ref="sessionFactory"></property>
		<property name="mapperInterface" value="com.dao.UserDao"></property>
	</bean>

	<!-- service -->
	<bean id="userService" class="com.service.UserService">
		<property name="userDao" ref="userDao"></property>
	</bean>

	<!-- 事务之事务管理器 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>

	<!-- 设置事务属性 -->
	<tx:advice id="mytx" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="add*" read-only="false" timeout="-1"
				isolation="DEFAULT" propagation="REQUIRED" />
			<tx:method name="update*" read-only="false" timeout="-1"
				isolation="DEFAULT" propagation="REQUIRED" />
			<tx:method name="del*" read-only="false" timeout="-1"
				isolation="DEFAULT" propagation="REQUIRED" />

			<tx:method name="get*" read-only="true" timeout="-1"
				isolation="DEFAULT" propagation="REQUIRED" />
			<tx:method name="query*" read-only="true" timeout="-1"
				isolation="DEFAULT" propagation="REQUIRED" />
			<tx:method name="find*" read-only="true" timeout="-1"
				isolation="DEFAULT" propagation="REQUIRED" />
		</tx:attributes>
	</tx:advice>
	
	<!-- 事务之织入 -->
	<aop:config>
	   <aop:advisor advice-ref="mytx" pointcut="execution(* com.service.*.*(..))"/>
	</aop:config>

log4j_zby.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="OFF" monitorInterval="1800">
    <properties>
        <property name="LOG_HOME">/WEB-INF/logs</property>
        <property name="FILE_NAME">finance-pay</property>
    </properties>
 
 
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
 
        <RollingFile name="running-log" fileName="${LOG_HOME}/${FILE_NAME}.log"
            filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz"
            immediateFlush="true">
            <PatternLayout
                pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="20" />
        </RollingFile>
    </Appenders>
    <Loggers>
 
        <!-- <Logger name="com.cssweb.test.app" level="trace" additivity="true"> 
            <AppenderRef ref="running-log" /> </Logger> -->
 
        <Root level="debug">
               <!-- 这里是输入到文件,很重要-->
            <AppenderRef ref="running-log" />
            <!-- 这里是输入到控制台-->
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
</Configuration>

最后我们进行测试

public class findAllTest{

	public static void main(String[] args) {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		StudentService service = applicationContext.getBean(StudentService.class);
		List list = service.findAll();
		System.out.println(list.size());

	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZBY52031

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值