maven项目spring整合mybatis
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>SSM</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.3.4</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.20</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.6</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.12</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.18</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </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>
mybatis-config.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> <mappers> <mapper resource="com/dao/IRootMapper.xml"/> </mappers> </configuration>
database.properties 数据库配置文件
jdbc.Url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true jdbc.username=root jdbc.Password=123456 jdbc.maxActive=20 ##### spring.xml ```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 https://www.springframework.org/schema/beans/spring-beans.xsd"> <import resource="springJDBC.xml"/> <import resource="spring-service.xml"/> </beans>
springJDBC.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 https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!-- 关联数据库配置文件--> <context:property-placeholder location="classpath:database.properties"/> <!-- 数据库连接池--> <bean id="myDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="maxActive" value="${jdbc.maxActive}"/> <property name="url" value="${jdbc.Url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.Password}"/> </bean> <!-- sqlSessionFactory--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="myDataSource"/> <!-- 绑定mybatis配置文件--> <property name="configLocation" value="classpath:mybatis-config.xml"/> </bean> <!-- 配置dao接口扫描包 动态实现dao接口注入到spring(反射)--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- 注入sqlSessionFactory--> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <!-- 扫描包--> <property name="basePackage" value="com.dao"/> </bean> </beans>
spring-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" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="com.service"/> <!-- service实现类层注入--> <bean id="rootServiceImpl" class="com.service.RootServiceImpl"> <property name="IRootMapper" ref="IRootMapper"/> </bean> <!-- 事务--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- 注入数据源--> <property name="dataSource" ref="myDataSource"/> </bean> <!-- aop织入--> </beans>
Root实体类
package com.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; //lombok @AllArgsConstructor //全参构造方法 @NoArgsConstructor //无参构造 @Data //get set方法 public class Root { private String user; private String password; }
dao层
IRootMapper接口
package com.dao; import com.pojo.Root; public interface IRootMapper { public Root select(Root root); }
IRootMapper.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="com.dao.IRootMapper"> <select id="select" resultType="com.pojo.Root"> select * from ssm.root where user =#{user} and password = #{password} </select> </mapper>
service层
IRootService service层接口
package com.service; import com.pojo.Root; public interface IRootService { public Root select(Root root); }
RootServiceImpl service层接口实现类
package com.service; import com.dao.IRootMapper; import com.pojo.Root; import lombok.Data; @Data public class RootServiceImpl implements IRootService{ private IRootMapper iRootMapper; @Override public Root select(Root root) { return this.iRootMapper.select(root); } }
测试
@org.junit.Test public void rootServiceTest(){ ApplicationContext applicationContext = new ClassPathXmlApplicationContext("springJDBC.xml","spring-service.xml"); RootServiceImpl impl = applicationContext.getBean("rootServiceImpl",RootServiceImpl.class); Root root = impl.select(new Root("root", "123456")); System.out.println(root); }