您的位置:首页 > 教育 > 锐评 > 精兴装修公司怎么样_国内包装设计网站_soso搜索引擎_市场营销平台

精兴装修公司怎么样_国内包装设计网站_soso搜索引擎_市场营销平台

2025/2/24 2:20:18 来源:https://blog.csdn.net/weixin_46619605/article/details/145759822  浏览:    关键词:精兴装修公司怎么样_国内包装设计网站_soso搜索引擎_市场营销平台
精兴装修公司怎么样_国内包装设计网站_soso搜索引擎_市场营销平台

Mybatis简介

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs (Plain Old Java Objects, 普通的 Java 对象) 映射成数据库中的记录。

核心特点
1、简化数据库操作:

  • MyBatis 通过 XML 或注解配置 SQL 语句,避免了繁琐的 JDBC 代码。

  • 开发者只需关注 SQL 本身,而不需要处理连接、预编译语句、结果集等底层细节。

2、灵活的 SQL 映射:

  • 支持动态 SQL,可以根据条件生成不同的 SQL 语句。

  • 提供强大的映射功能,支持将查询结果直接映射为 Java 对象或集合。

3、与 Spring 集成:

  • MyBatis 可以轻松与 Spring 框架集成,简化配置和管理。

4、轻量级:

  • MyBatis 是一个轻量级框架,核心库非常小,学习成本低。

5、支持多种数据库:

  • MyBatis 支持多种数据库(如 MySQL、Oracle、PostgreSQL 等),具有良好的可移植性。

Spring Boot 整合原生的 mybatis

maven依赖

<?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><artifactId>spring-boot-demo-orm-mybatis</artifactId><version>1.0.0-SNAPSHOT</version><packaging>jar</packaging><name>spring-boot-demo-orm-mybatis</name><description>Demo project for Spring Boot</description><parent><groupId>com.xiaoma</groupId><artifactId>spring-boot-demo</artifactId><version>1.0.0-SNAPSHOT</version></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><mybatis.version>1.3.2</mybatis.version></properties><dependencies><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><finalName>spring-boot-demo-orm-mybatis</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

SpringBootDemoOrmMybatisApplication.java

@MapperScan(basePackages = {"com.xiaoma.orm.mybatis.mapper"})
@SpringBootApplication
public class SpringBootDemoOrmMybatisApplication {public static void main(String[] args) {SpringApplication.run(SpringBootDemoOrmMybatisApplication.class, args);}
}

application.yaml

spring:datasource:url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8username: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Drivertype: com.zaxxer.hikari.HikariDataSourceinitialization-mode: alwayscontinue-on-error: trueschema:- "classpath:db/schema.sql"data:- "classpath:db/data.sql"hikari:minimum-idle: 5connection-test-query: SELECT 1 FROM DUALmaximum-pool-size: 20auto-commit: trueidle-timeout: 30000pool-name: SpringBootDemoHikariCPmax-lifetime: 60000connection-timeout: 30000
logging:level:com.xiaoma: debugcom.xiaoma.orm.mybatis.mapper: trace
mybatis:configuration:# 下划线转驼峰map-underscore-to-camel-case: truemapper-locations: classpath:mappers/*.xmltype-aliases-package: com.xiaoma.orm.mybatis.entity

UserMapper.java

@Mapper
@Component
public interface UserMapper {/*** 查询所有用户** @return 用户列表*/@Select("SELECT * FROM orm_user")List<User> selectAllUser();/*** 根据id查询用户** @param id 主键id* @return 当前id的用户,不存在则是 {@code null}*/@Select("SELECT * FROM orm_user WHERE id = #{id}")User selectUserById(@Param("id") Long id);/*** 保存用户** @param user 用户* @return 成功 - {@code 1} 失败 - {@code 0}*/int saveUser(@Param("user") User user);/*** 删除用户** @param id 主键id* @return 成功 - {@code 1} 失败 - {@code 0}*/int deleteById(@Param("id") Long id);}

UserMapper.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.xiaoma.orm.mybatis.mapper.UserMapper"><insert id="saveUser">INSERT INTO `orm_user` (`name`,`password`,`salt`,`email`,`phone_number`,`status`,`create_time`,`last_login_time`,`last_update_time`)VALUES (#{user.name},#{user.password},#{user.salt},#{user.email},#{user.phoneNumber},#{user.status},#{user.createTime},#{user.lastLoginTime},#{user.lastUpdateTime})</insert><delete id="deleteById">DELETEFROM `orm_user`WHERE `id` = #{id}</delete>
</mapper>

UserMapperTest.java

@Slf4j
public class UserMapperTest extends SpringBootDemoOrmMybatisApplicationTests {@Autowiredprivate UserMapper userMapper;@Testpublic void selectAllUser() {List<User> userList = userMapper.selectAllUser();Assert.assertTrue(CollUtil.isNotEmpty(userList));log.debug("【userList】= {}", userList);}@Testpublic void selectUserById() {User user = userMapper.selectUserById(1L);Assert.assertNotNull(user);log.debug("【user】= {}", user);}@Testpublic void saveUser() {String salt = IdUtil.fastSimpleUUID();User user = User.builder().name("testSave3").password(SecureUtil.md5("123456" + salt)).salt(salt).email("testSave3@xkcoding.com").phoneNumber("17300000003").status(1).lastLoginTime(new DateTime()).createTime(new DateTime()).lastUpdateTime(new DateTime()).build();int i = userMapper.saveUser(user);Assert.assertEquals(1, i);}@Testpublic void deleteById() {int i = userMapper.deleteById(1L);Assert.assertEquals(1, i);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com