往事随风起,风止意难平
文章目录
- 前言
- 一、SM整合
- 1.1建表
- 1.2新建项目,选择quickstart模板
- 1.3修改目录
- 1.4修改pom.xml文件,添加相关依赖
- 1.5添加Mybatis相应的模板(SqlMapConfig.xml和XXXMapper.xml文件)
- 1.6添加SqlMapConfig.xml文件(MyBatis核心文件)并拷贝jdbc.properties属性文件到resources目录下
- 1.7添加applicationContext_mapper.xml
- 1.8添加applicationContext_service.xml
- 1.9添加Users实体类,Accounts实体类
- 1.10添加mapper包,添加UsersMapper接口和UsersMapper.xml文件并开发
- 1.11添加service包,添加UsersService接口和UsersServiceImpl实现类
- 1.12添加测试类进行功能测试
- 总结
前言
mybatis还没看,我淦
一、SM整合
1.1建表
1.2新建项目,选择quickstart模板
1.3修改目录
两个resources
1.4修改pom.xml文件,添加相关依赖
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>spring_008_sm</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<!-- 单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- aspectj依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>5.3.22</version>
</dependency>
<!-- spring核心ioc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.22</version>
</dependency>
<!-- 做spring事务用到的-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.3.22</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.22</version>
</dependency>
<!-- mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<!-- mybatis和spring集成的依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.7</version>
</dependency>
<!-- mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
<!-- 阿里公司的数据库连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.11</version>
</dependency>
</dependencies>
<build>
<!-- 目的是把src/main/java目录中的xml文件包含到输出结果中。输出到classes目录中-->
<resources>
<resource>
<directory>src/main/java</directory> <!--所在的目录-->
<includes><!--包括目录下的.properties和.xml文件都会扫描到-->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory> <!--所在的目录-->
<includes><!--包括目录下的.properties和.xml文件都会扫描到-->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>
1.5添加Mybatis相应的模板(SqlMapConfig.xml和XXXMapper.xml文件)
| Settings | Editor | File and Code Templates
SqlMapConfig.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>
<!--读取属性文件中数据库的配置-->
<properties resource="db.properties"></properties>
<!--设置日志输出语句,显示相应操作的sql语名-->
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<typeAliases>
<package name="com.bjpowernode.pojo"></package>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url"
value="jdbc:mysql://localhost:3308/ssm?useSSL=false&
serverTimezone=UTC&allowPublicKeyRetrieval=true"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<package name="mapper文件所在的包名"></package>
</mappers>
</configuration>
XXXMapper.xml模板:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="接口的完全限定名称">
</mapper>
1.6添加SqlMapConfig.xml文件(MyBatis核心文件)并拷贝jdbc.properties属性文件到resources目录下
SqlMapConfig.xml在main/java/resources目录下
<?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>
<!--读取属性文件中数据库的配置-->
<!-- <properties resource="db.properties"></properties>-->
<!--设置日志输出语句,显示相应操作的sql语名-->
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<!-- <typeAliases>-->
<!-- <package name="com.bjpowernode.pojo"></package>-->
<!-- </typeAliases>-->
<!-- 数据源-->
<!-- <environments default="development">-->
<!-- <environment id="development">-->
<!-- <transactionManager type="JDBC"/>-->
<!-- <dataSource type="POOLED">-->
<!-- <property name="driver" value="com.mysql.jdbc.Driver"/>-->
<!-- <property name="url"-->
<!-- value="jdbc:mysql://localhost:3308/ssm?useSSL=false&-->
<!-- serverTimezone=UTC&allowPublicKeyRetrieval=true"/>-->
<!-- <property name="username" value="root"/>-->
<!-- <property name="password" value="123456"/>-->
<!-- </dataSource>-->
<!-- </environment>-->
<!-- </environments>-->
<!-- <mappers>-->
<!-- <package name="mapper文件所在的包名"></package>-->
<!-- </mappers>-->
</configuration>
jdbc.properties:
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm?useSSL=false&serverTimezone=Hongkong&characterEncoding=utf-8&
autoReconnect=true"
jdbc.username=root
jdbc.password=123456
1.7添加applicationContext_mapper.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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!-- 读取属性文件jdbc.properties-->
<context:property-placeholder location="jdbc.properties"/>
<!-- 创建数据源-->
<!-- 此为数据库连接池-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- 配置SqlSessionFactoryBean类-->
<bean class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 配置数据源-->
<property name="dataSource" ref="dataSource"/>
<!-- 配置MyBatis的核心配置文件-->
<property name="configLocation" value="SqlMapConfig.xml"/>
<!-- 注册实体类的别名-->
<property name="typeAliasesPackage" value="org.example.pojo"/>
</bean>
<!-- 注册mapper.xml文件-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="org.example.mapper"/>
</bean>
</beans>
1.8添加applicationContext_service.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:context="http://www.springframework.org/schema/context" 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/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 导入applicationContext_mapper.xml文件-->
<import resource="applicationContext_mapper.xml"/>
<!--SM是基于注解的开发,所以添加包扫描-->
<context:component-scan base-package="org.example.service.impl"/>
<!-- 事务处理-->
<!-- 1.添加事务管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 因为事务必须关联数据库处理,所以要配置数据源-->
<property name="dataSource" ref="dataSource"/> <!-- 该处dataSource来自第一行import-->
</bean>
<!-- 2.添加事务的注解驱动-->
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
</beans>
1.9添加Users实体类,Accounts实体类
1.10添加mapper包,添加UsersMapper接口和UsersMapper.xml文件并开发
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="org.example.mapper.UsersMapper">
<!--
int insert(Users users);
实体类
private Integer userid;
private String username;
private String upass;
-->
<insert id="insert" parameterType="users">
insert into users values (#{userid},#{username},#{upass})
</insert>
</mapper>
1.11添加service包,添加UsersService接口和UsersServiceImpl实现类
1.12添加测试类进行功能测试
总结
德鲁伊数据库连接池 Druid
ssm整合时junit依赖必须用4.12不然不支持spring接管的单元测试
Spring来创建对象并进行依赖注入
这就是IOC的体现
事务是AOP的体现