让我们来创建一个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());

}

}