spring与mybatis的整合
- 项目结构
Dao
userDaoImpI实现类 第三种方式
1 2 3 4 5 6 7 8 9 10 | package com.whz.dao; import com.whz.pojo.User; import org.mybatis.spring.support.SqlSessionDaoSupport; import java.util.List; public class UserDaoImpl extends SqlSessionDaoSupport implements UserMapper { public List<User> selectUser() { return getSqlSession().getMapper(UserMapper. class ).selectUser(); } } |
UserMapper接口
1 2 3 4 5 6 7 8 9 | package com.whz.dao; import com.whz.pojo.User; import org.apache.ibatis.annotations.Select; import java.util.List; public interface UserMapper { List<User> selectUser(); } |
UserMapper.xml
1 2 3 4 5 6 7 8 9 | <?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.whz.dao.UserMapper" > <select id= "selectUser" resultType= "com.whz.pojo.User" > select * from website </select> </mapper> |
UserMapperImp实现类 第二种方式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package com.whz.dao; import com.whz.pojo.User; import org.mybatis.spring.SqlSessionTemplate; import java.util.List; public class UserMapperImp implements UserMapper { private SqlSessionTemplate sqlsession; public void setSqlsession(SqlSessionTemplate sqlsession) { this .sqlsession = sqlsession; } public List<User> selectUser() { //使用mapper是由配置文件一路传值过来 UserMapper mapper = sqlsession.getMapper(UserMapper. class ); return mapper.selectUser(); } } |
pojo
User.java
1 2 3 4 5 6 7 8 9 10 11 | package com.whz.pojo; import lombok.Data; @Data public class User { private String account; private String password; private String name; } |
test
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | package com.whz.test; import com.whz.dao.UserMapper; import com.whz.pojo.User; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.util.List; public class test { public static void main(String[] args) { ApplicationContext app= new ClassPathXmlApplicationContext( "spring-dao.xml" ); UserMapper userMapper = (UserMapper) app.getBean( "userDao" ); List<User> users = userMapper.selectUser(); for (User user: users){ System.out.println(user.getName()); } } } |
resources
db.properties
1 2 3 4 | jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql: //localhost:3306/web?characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT jdbc.username=root jdbc.password= 1234 |
mybatis-config.xml 第二种、第三种方式会用到。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?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> <!-- 类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写 --> <typeAliases> < package name= "com.whz.pojo" /> </typeAliases> <mappers> <!-- 这些配置会告诉 MyBatis 去哪里找映射文件 resource绑定路径不能写点--> <mapper resource= "com/whz/dao/UserMapper.xml" /> </mappers> </configuration> |
spring-dao.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | <?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"> <!--使用context来引用properties配置文件--> <context:property-placeholder location= "classpath:db.properties" /> <bean id= "dataSource" class = "org.springframework.jdbc.datasource.DriverManagerDataSource" > <!-- 配置连接池属性 --> <property name= "driverClassName" value= "${jdbc.driver}" /> <property name= "url" value= "${jdbc.url}" /> <property name= "username" value= "${jdbc.username}" /> <property name= "password" value= "${jdbc.password}" /> </bean> <!-- 3 .配置SqlSessionFactory对象 --> <bean id= "sqlSessionFactory" class = "org.mybatis.spring.SqlSessionFactoryBean" > <!-- 注入数据库连接池 --> <property name= "dataSource" ref= "dataSource" /> <!-- 绑定mybatis配置文件,如果使用第一种方式就不用绑定mybatis配置文件,因为没有你还绑定啥?--> <property name= "configLocation" value= "classpath:mybatis-config.xml" /> </bean> <!-- 第一种MapperFactoryBean方式--> <!-- <bean id= "per" class = "org.mybatis.spring.mapper.MapperFactoryBean" >--> <!-- <property name= "mapperInterface" value= "com.whz.dao.UserMapper" />--> <!-- <property name= "sqlSessionFactory" ref= "sqlSessionFactory" />--> <!-- </bean>--> <!-- 第二种SqlSessionTemplate方式需要有接口实现类,且需要有mybatis-config.xml的配置文件映射接口--> <!-- <bean id= "sqlSession" class = "org.mybatis.spring.SqlSessionTemplate" >--> <!-- <constructor-arg index= "0" ref= "sqlSessionFactory" />--> <!-- </bean>--> <!-- <bean id= "mapper" class = "com.whz.dao.UserMapperImp" >--> <!-- <property name= "sqlsession" ref= "sqlSession" ></property>--> <!-- </bean>--> <!-- 第三种 需要实现类但是不需要注入sqlsession,直接调用getsqlsession--> <bean id= "userDao" class = "com.whz.dao.UserDaoImpl" > <property name= "sqlSessionFactory" ref= "sqlSessionFactory" /> </bean> </beans> |
web
pom文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | <?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" > <parent> <artifactId>Mybits</artifactId> <groupId>com.whz</groupId> <version> 1.0 -SNAPSHOT</version> </parent> <modelVersion> 4.0 . 0 </modelVersion> <artifactId>Mybatis03</artifactId> <dependencies> <!-- junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version> 4.12 </version> </dependency> <!-- mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version> 3.5 . 2 </version> </dependency> <!-- mysql-connector-java--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version> 5.1 . 47 </version> </dependency> <!-- spring相关--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version> 5.1 . 10 .RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version> 5.1 . 10 .RELEASE</version> </dependency> <!-- aspectJ AOP 织入器--> <!-- https: //mvnrepository.com/artifact/org.aspectj/aspectjweaver --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version> 1.9 . 4 </version> </dependency> <!-- mybatis-spring整合包 【重点】--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version> 2.0 . 2 </version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version> 1.18 . 20 </version> <scope>compile</scope> </dependency> </dependencies> <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>** /*.properties</include> <include>**/ *.xml</include> </includes> <filtering> false </filtering> </resource> <resource> <directory> src/main/resources </directory> </resource> </resources> </build> </project> |
本文作者:小魏同学呀
本文链接:https://www.cnblogs.com/weitongxue/p/15998633.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步