SpringMVC集成Mybatis
1.pom.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 | <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version> 5.1 . 6 </version> </dependency> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version> 0.9 . 5.5 </version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version> 4.3 . 5 .RELEASE</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version> 3.5 . 5 </version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version> 2.0 . 5 </version> </dependency> |
2,applicationContext.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 | <context:property-placeholder location= "classpath:jdbc.properties" /> <bean id= "datasource" class = "com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method= "close" > <property name= "driverClass" value= "${jdbc.driver}" /> <property name= "jdbcUrl" value= "${jdbc.url}" /> <property name= "user" value= "${jdbc.username}" /> <property name= "password" value= "${jdbc.password}" /> <!-- 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数 --> <property name= "acquireIncrement" value= "${jdbc.pool.increment}" /> <!-- 初始连接池大小 --> <property name= "initialPoolSize" value= "${jdbc.pool.init}" /> <!-- 连接池中连接最小个数 --> <property name= "minPoolSize" value= "${jdbc.pool.min}" /> <!-- 连接池中连接最大个数 --> <property name= "maxPoolSize" value= "${jdbc.pool.max}" /> </bean> <bean id= "sqlSessionFactory" class = "org.mybatis.spring.SqlSessionFactoryBean" > <property name= "dataSource" ref= "datasource" /> <!-- 指定*Mapper.xml位置--> <property name= "mapperLocations" value= "classpath:mapper/*.xml" /> </bean> <bean class = "org.mybatis.spring.mapper.MapperScannerConfigurer" > <!-- 指定的是接口(Java)路径--> <property name= "basePackage" value= "com.blueStarWei.mapper" /> <property name= "sqlSessionFactoryBeanName" value= "sqlSessionFactory" /> </bean> <!-- 声明式事务管理 : 定义事物管理器,由spring管理事务 --> <tx:annotation-driven/> <bean id= "transactionManager" class = "org.springframework.jdbc.datasource.DataSourceTransactionManager" > <property name= "dataSource" ref= "datasource" /> </bean> |
3,创建jdbc.properties【resources路径下】
1 2 3 4 5 6 7 8 9 10 11 | jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql: //127.0.0.1:3306/wei_db jdbc.username=root jdbc.password=root #pool settings jdbc.pool.init= 10 jdbc.pool.increment= 3 jdbc.pool.min= 5 jdbc.pool.max= 20 |
4,创建PersonMapper.java【java路径下】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package com.blueStarWei.mapper; import com.blueStarWei.bean.Person; public interface PersonMapper { int addPerson(Person person); String getName( int id); Person getPersonById( int id); } |
5, 创建PersonMapper.xml【resources/mapper路径下】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?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.blueStarWei.mapper.PersonMapper" > <insert id= "addPerson" > insert into person(id,name,age,address) values(#{id},#{name},#{age},#{address}) </insert> <select id= "getName" parameterType= "int" resultType= "java.lang.String" > select name from person where id = #{id} </select> <select id= "getPersonById" parameterType= "int" resultType= "com.blueStarWei.bean.Person" > select * from person where id = #{id} </select> </mapper> |
6,修改controller【java路径下】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | package com.blueStarWei.controller; import com.blueStarWei.mapper.PersonMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping ( "/hello" ) public class HelloWorld { @Autowired private PersonMapper person; @RequestMapping ( "/name/{id}" ) public String say( @PathVariable int id){ return person.getName(id); } } |
备注:
如果*Mapper.xml放置在src/main/java路径下,需要在pom.xml种添加如下配置。(IDEA默认只编译resources下的xml文件)
1 2 3 4 5 6 7 8 9 10 11 | <!-- 促使IDEA编译src/main/java路径下的xml--> <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build> |
更多内容,请访问:http://www.cnblogs.com/BlueStarWei
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix