Spring 03 Spring+Mybatis整合
pom.xml
<dependencies> <!--spring与Mybatis整合--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.8.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.10.RELEASE</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.16</version> </dependency> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.7</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.20</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.2.3</version> </dependency> </dependencies>
属性文件
jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3307/myb?useSSL=false&useUnicode=true&characterEncoding=UTF-8 jdbc.username=root jdbc.password=123
配置类
MybatisConfid.java
package com.config; import com.github.pagehelper.PageInterceptor; import org.apache.ibatis.plugin.Interceptor; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.mapper.MapperScannerConfigurer; import org.springframework.context.annotation.Bean; import javax.sql.DataSource; public class MyBatisConfig { @Bean public PageInterceptor pageInterceptor(){ return new PageInterceptor(); } @Bean public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource,PageInterceptor pageInterceptor){ SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean(); ssfb.setTypeAliasesPackage("com.entity"); ssfb.setPlugins(new Interceptor[]{pageInterceptor}); ssfb.setDataSource(dataSource); return ssfb; } //定义bean,返回MapperScannerConfigurer对象 @Bean public MapperScannerConfigurer mapperScannerConfigurer(){ MapperScannerConfigurer msc = new MapperScannerConfigurer(); msc.setBasePackage("com.mapper"); return msc; } }
DataSourseConfig.java
package com.config; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import javax.sql.DataSource; public class DataSourseConfig { @Value("${jdbc.driver}") private String driverClassName; @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String username; @Value("${jdbc.password}") private String password; @Bean //(value="dataSourse" public DataSource dataSource(){ DruidDataSource dataSource= new DruidDataSource(); dataSource.setDriverClassName(driverClassName); dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); return dataSource; } /* @Bean public DataSource dataSource(){ DruidDataSource dataSource= new DruidDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3307/myb?useSSL=false&useUnicode=true&characterEncoding=UTF-8"); dataSource.setUsername("root"); dataSource.setPassword("123"); return dataSource; }*/ }
SpringConfig.java
package com.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.PropertySource; @Configuration//表示该类是Spring配置类,用于代替ApplicationContext.xml @ComponentScan(value = {"com.service.impl"}) @Import(value = {DataSourseConfig.class,MyBatisConfig.class})/*导入第三方bean所在的类*/ @PropertySource(value = "classpath:jdbc.properties") public class SpringConfig { }
实体类
User.java

1 package com.entity; 2 3 import java.io.Serializable; 4 5 public class User implements Serializable { 6 private Integer id; 7 private String username; 8 private String password; 9 private String gender; 10 private String addr; 11 12 public Integer getId() { 13 return id; 14 } 15 16 public void setId(Integer id) { 17 this.id = id; 18 } 19 20 public String getUsername() { 21 return username; 22 } 23 24 public void setUsername(String username) { 25 this.username = username; 26 } 27 28 public String getPassword() { 29 return password; 30 } 31 32 public void setPassword(String password) { 33 this.password = password; 34 } 35 36 public String getGender() { 37 return gender; 38 } 39 40 public void setGender(String gender) { 41 this.gender = gender; 42 } 43 44 public String getAddr() { 45 return addr; 46 } 47 48 public void setAddr(String addr) { 49 this.addr = addr; 50 } 51 52 public User() { 53 } 54 55 public User(Integer id, String username, String password, String gender, String addr) { 56 this.id = id; 57 this.username = username; 58 this.password = password; 59 this.gender = gender; 60 this.addr = addr; 61 } 62 @Override 63 public String toString() { 64 return "User{" + 65 "id=" + id + 66 ", username='" + username + '\'' + 67 ", password='" + password + '\'' + 68 ", gender='" + gender + '\'' + 69 ", addr='" + addr + '\'' + 70 '}'; 71 } 72 73 }
Mapper层
UserMapper.java
package com.mapper; import com.entity.User; import org.apache.ibatis.annotations.*; import java.util.List; public interface UserMapper { @Insert("insert into tb_user values (null,#{username},#{password},#{gender},#{addr})") @Options(useGeneratedKeys = true,keyProperty = "id") void insertUser(User user); @Update("update tb_user set username=#{username},password=#{password},gender=#{gender},addr=#{addr} where id=#{id}") void updateUser(User user); @Delete("delete from tb_user where id=#{id}") void deleteUser(int id); @Select("select * from tb_user where id=#{id}") User selectById(int id); @Select("select * from tb_user") List<User> selectAll(); }
Service层
UserService.java
package com.service; import com.entity.User; import com.github.pagehelper.PageInfo; import java.util.List; public interface UserService { void insertUser(User user); void updateUser(User user); void deleteUser(int id); User selectById(int id); List<User> selectAll(); PageInfo<User> selectByPage(int pageNo, int pageSize);//分页查询
}
实现类 UserServiceImpl
package com.service.impl; import com.entity.User; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.mapper.UserMapper; import com.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; @Service("userService") public class UserServiceImpl implements UserService { @Autowired @Qualifier("userMapper") private UserMapper userMapper; public UserMapper getUserMapper() { return userMapper; } public void setUserMapper(UserMapper userMapper) { this.userMapper = userMapper; } @Override public void insertUser(User user) { userMapper.insertUser(user); } @Override public void updateUser(User user) { userMapper.updateUser(user); } @Override public void deleteUser(int id) { userMapper.deleteUser(id); } @Override public User selectById(int id) { return userMapper.selectById(id); } @Override public List<User> selectAll() { return userMapper.selectAll(); } @Override public PageInfo<User> selectByPage(int pageNo, int pageSize) { PageHelper.startPage(pageNo,pageSize); List<User> users = userMapper.selectAll(); PageInfo<User> pageInfo = new PageInfo<User>(users); return pageInfo; } }
test
分页查询
分类:
Java基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」