<version>5.3.6</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
[领取资料](
)
### [](
)编写实体类(需要导入lombok依赖)
package com.study.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int id;//加群1025684353一起吹水聊天
private String name;
private String pwd;
}
### [](
)编写实现接口
package com.study.mapper;
import com.study.pojo.User;
import java.util.List;
public interface UserMapper {
public List<User> selectUser();
//添加一个用户
int addUser(User user);//加群1025684353一起吹水聊天
//根据id删除用户
int deleteUser(int id);
}
[领取资料](
)
### [](
)编写配置文件
**UserMapper.xml**
**注意:delete故意写错**
<?xml version="1.0" encoding="UTF-8" ?>
<select id="selectUser" resultType="user">
select * from mybatis.user
</select>
<insert id="addUser" parameterType="user">
insert into mybatis.user(id, name, pwd) values (#{id},#{name},#{pwd})
</insert>
<delete id="deleteUser" parameterType="int">
deletes from mybatis.user where id=#{id}
</delete>
**spring-dao.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"
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">
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.MysqL.jdbc.Driver"/>
<property name="url" value="jdbc:MysqL://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.sqlSessionfactorybean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<property name="mapperLocations" value="classpath:com/study/mapper/*.xml"/>
</bean>
<bean id="sqlSession" class="org.mybatis.spring.sqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>
**mybatis-config.xml**
<?xml version="1.0" encoding="UTF-8" ?>
<typeAliases>
<package name="com.study.pojo"/>
</typeAliases>
**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/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="userMapper" class="com.study.mapper.UserMapperImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
[领取资料](
)
### [](
)编写接口实现类
package com.study.mapper;
import com.study.pojo.User;
import org.mybatis.spring.sqlSessionTemplate;
import org.mybatis.spring.support.sqlSessionDaoSupport;
import java.util.List;//加群1025684353一起吹水聊天
public class UserMapperImpl extends sqlSessionDaoSupport implements UserMapper{
@Override
public List<User> selectUser() {
User user =new User(30,"bbb","123456");
UserMapper mapper = getsqlSession().getMapper(UserMapper.class);
mapper.addUser(user);
mapper.deleteUser(30);
return mapper.selectUser();
}
@Override
public int addUser(User user) {
return getsqlSession().getMapper(UserMapper.class).addUser(user);
}
@Override
public int deleteUser(int id) {//加群1025684353一起吹水聊天
return getsqlSession().getMapper(UserMapper.class).deleteUser(id);
}
}
### [](
)编写测试类
[领取资料](
)
import com.study.mapper.UserMapper;
import com.study.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClasspathXmlApplicationContext;
import java.util.List;
public class MyText {//加群1025684353一起吹水聊天
public static void main(String[] args) {
ApplicationContext context = new ClasspathXmlApplicationContext("applicationContext.xml");
UserMapper userMapper = context.getBean("userMapper", UserMapper.class);
List<User> userList = userMapper.selectUser();
for (User user : userList) {
System.out.println(user);
}
}
}
### [](
)测试
[领取资料](
)
**运行测试前数据库**
[](
)
**运行测试出错**
[](
)
**刷新数据库数据添加成功**
[](
)
**在程序开发中,这样的BUG重的,所以我们需要在spring中开启事务防止这样的漏洞发生**
[](
)在spring中使用事务
===========================================================================
### [](https://gitee.com/vip204888/java-p7)一、在spring配置文件开启JDBC事务
<property name="dataSource" ref="dataSource" />
### [](https://gitee.com/vip204888/java-p7)二、配置好事务管理器后我们需要去配置事务的通知
[领取资料](https://gitee.com/vip204888/java-p7)
<tx:advice id=“txAdvice” transaction-manager=“transactionManager”>
<tx:attributes>
<!--给哪些方法配置事务-->
<!--配置事务的传播特性 propagation:默认required-->
<tx:method name="add" propagation="required"/>
<tx:method name="delete" propagation="required"/>
<tx:method name="update" propagation="required"/>
<!--read-only:只读-->
<tx:method name="select" read-only="true"/>
<tx:method name="*" propagation="required"/>
一线互联网大厂Java核心面试题库
正逢面试跳槽季,给大家整理了大厂问到的一些面试真题,由于文章长度限制,只给大家展示了部分题目,更多Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、dubbo、Linux、Tomcat、ZooKeeper、Netty等等…已整理上传,感兴趣的朋友可以看看支持一波!
<tx:method name="add" propagation="required"/>
<tx:method name="delete" propagation="required"/>
<tx:method name="update" propagation="required"/>
<!--read-only:只读-->
<tx:method name="select" read-only="true"/>
<tx:method name="*" propagation="required"/>
一线互联网大厂Java核心面试题库
[外链图片转存中…(img-0fjAlKZf-1630680578445)]
正逢面试跳槽季,给大家整理了大厂问到的一些面试真题,由于文章长度限制,只给大家展示了部分题目,更多Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、dubbo、Linux、Tomcat、ZooKeeper、Netty等等…已整理上传,感兴趣的朋友可以看看支持一波!
CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。