当前位置: 首页 > news >正文

Spring+Mybatis IOC + AOP + 开启事务 模板

萌新小白刚入行Java 框架的可以试着自己拿着这个代码改一改,看看能不能运行成功

第一步:创建maven项目,在pom.xml文件中引入以下需要用到的jar包

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.example</groupId><artifactId>mySpring</artifactId><version>1.0-SNAPSHOT</version></parent><artifactId>spring_mybatis</artifactId><name>Archetype - spring_mybatis</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>org.aspectj</groupId><artifactId>aspectjrt</artifactId><version>1.9.7</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.7</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.12</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.13</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.22</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.22</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>3.0.4</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.30</version><scope>compile</scope></dependency></dependencies><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources></build>
</project>

 第二步:连接数据库操作.

填写User 和Password 点击连接,连接无误后显示下图红色圈起来的部分.

此时右键点击红色部分再点开 Properties.

选择你需要连接数据库 .

第三步: 我们新建pojo包,继续新建实体类用于存储对象

第四步:创建mapper包,生成对应的接口\接口实现\编写SQL.xml文件  注意:创建名称时相同

(1), 接口定义:

package com.mapper;import com.pojo.User;import java.util.List;/*** @author helloZZ*/
public interface UserMapper
{List<User> selectUsers();int addUser(User user);int deleteUser(String id);
}

(2). 接口实现:

package com.mapper;import com.pojo.User;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.support.SqlSessionDaoSupport;import java.util.List;/*** @author helloZZ*/
public class UserMapperImpl extends SqlSessionDaoSupport implements UserMapper {@Overridepublic List<User> selectUsers() {User user = new User("8","ZZ123",23,"男","beijing","123456");UserMapper mapper = getSqlSession().getMapper(UserMapper.class);mapper.addUser(user);mapper.deleteUser("8");return mapper.selectUsers();}@Overridepublic int addUser(User user) {UserMapper mapper = getSqlSession().getMapper(UserMapper.class);return mapper.addUser(user);}@Overridepublic int deleteUser(String id) {UserMapper mapper = getSqlSession().getMapper(UserMapper.class);return mapper.deleteUser(id);}
}

(3). UserMapper.xml文件 

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.UserMapper"><insert id="addUser">insert into student(name,age,sex,addres,studentNumber) values(#{name},#{age},#{sex},#{addres},#{studentNumber})</insert><delete id="deleteUser">delete from student where id = #{id}</delete><select id="selectUsers" resultType="com.pojo.User">select * from student
</select></mapper>

第五步: 我们需要创建xml配置项一共有三个

(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"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsd"><import resource="spring-dao.xml"/><bean id="userMapper" class="com.mapper.UserMapperImpl"><property name="sqlSessionFactory" ref="sqlSessionFactory"/></bean>
</beans>

(spring-dao.xml)

这里注意需要更改数据库的配置!不要一股脑的copy

<?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:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/txhttps://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/aophttps://www.springframework.org/schema/aop/spring-aop.xsd"
><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><!--1.3配置连接池需要的参数--><property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/填写数据库名称?useSSL=false&amp;useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=UTC"/><property name="username" value="填写数据库的用户名称"/><property name="password" value="填写数据库的用户密码"/></bean><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="configLocation" value="classpath:sqlMapConfig.xml"/><property name="mapperLocations" value="classpath:com/mapper/*.xml"/></bean><!--    SqlSessionTemplate 就是我们使用的sqlSession--><bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"><constructor-arg ref="sqlSessionFactory" index="0"/></bean>
<!--    声明事务--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean>
<!--    配置事务--><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="addUser" propagation="REQUIRED"/><tx:method name="deleteUser" propagation="REQUIRED"/><tx:method name="updateUser" propagation="REQUIRED"/><tx:method name="queryUser" read-only="true"/><tx:method name="*" propagation="REQUIRED"/></tx:attributes></tx:advice><!--配置事务切入--><aop:config><aop:pointcut id="txPointCut" expression="execution(* com.mapper.*.*(..))"/><aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/></aop:config>
</beans>

(sqlMapConfig.xml)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><typeAliases><package name="com.pojo"/></typeAliases>
</configuration>

第六步:创建test包下新建测试类,测试我们是否成功查询\删除\新增功能

 

import com.mapper.UserMapper;
import com.pojo.User;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;import java.io.IOException;
import java.util.List;public class Test01 {public static void main(String[] args) {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");UserMapper userMapper = context.getBean("userMapper", UserMapper.class);List<User> users = userMapper.selectUsers();for (User user : users) {System.out.println(user);}}
}

 


http://www.mrgr.cn/news/39478.html

相关文章:

  • C++ | Leetcode C++题解之第447题回旋镖的数量
  • XSS | 存储型 XSS 攻击
  • Fingerprint.js:精准用户识别的浏览器指纹技术
  • STM32--GPIO点亮LED灯(手把手,超详细)
  • xmind怎么把左边的主题换到右边
  • 【前端开发入门】html快速入门
  • Linux: network: sysctl: tcp_mem
  • Java | Leetcode Java题解之第446题等差数列划分II-子序列
  • [题解] Codeforces Round 976 (Div. 2) A ~ E
  • 基于SSM+小程序的流浪动物领养管理系统(救助1)(源码+sql脚本+视频导入教程+文档)
  • Python:Pip包的安装与原理(Windows系统)
  • Java 入门基础篇09 - Java的数据类型转换
  • 【中间件学习】Nginx快速入门(为了配置一个项目)
  • Python库matplotlib之五
  • 0基础学习QT——配置开发环境
  • 信息安全数学基础(22)素数模的同余式
  • 9.26-9.29学习
  • 02Cesium中常用的鼠标事件
  • Redis中数据类型的使用(hash和list)
  • 资质申请中常见的错误有哪些?