mybatis-jdbc-映射

一:数据列映射
drop table mybatis_java_map;
/**
*  mybatis与java的映射关系
*  bigint                    ---对应的long(Long)
*  varchar                 ---对应的Sring
*  int                         ---对应int(Integer)
*  DATETIME             ---对应java.util.Date
*  double                  ---对应double(Double)
*  blob                      ---这个需要一层转换
*  decimal                 ---对应BigDecimal
*  number                 ---对应BigDecimal
*/
CREATE TABLE `mybatis_java_map` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,   ---这个3同样也是与数据最终的存储长度没关系
  `int3` int(3) DEFAULT NULL,                ---这个3同样也是只是显示的宽度,但是长度不足用0填充,用mysq的命令可以查看
  `int4` int(4) zerofill,                    ---这个4与数据库存储的长度有关系
  `varchar4` varchar(4) DEFAULT NULL,        ---这个1,都不代表数据最后能存的长度,同理int,等都是一样的       
  `bigint1` bigint(1) DEFAULT NULL,          ---这个2,都不代表数据最后的存的长度         
  `bigint2` bigint(2) DEFAULT NULL,          ---这个tinyint(1) 与tinyint(4)其实相等当使用zerofill时候有效果,取值范围-128-127
  `status` tinyint(4) NOT NULL COMMENT '发布状态 0 正在发布 1 发布成功 2 发布失败', 

  /*
  MySQL允许使用非标准语法:FLOAT(M,D)或REAL(M,D)或DOUBLE PRECISION(M,D)。
  -- 这里,“(M,D)”表示该值一共显示长度的位数,其中D位,位于小数点后面(注意之后整数的位数为M-D)
  -- 例如,定义为FLOAT(7,4)的一个列可以显示为-999.9999。MySQL保存值时进行四舍五入,
  -- 因此如果在FLOAT(7,4)列内插入999.00009,近似结果是999.0001
  -- 例如: 你插入1234567.123 直接报错,因为一共长度是限制的,整数部分最长是3位
  -- 例如: 你插入1.12312123123123 是可以的默认给你四舍五入
  */
  `double1` double(7,4) NOT NULL COMMENT 'double的测试',        -- 同理4代表存放的总长度,3代表精度
  `decimal1` decimal(4,3) DEFAULT NULL COMMENT '优惠后的总金额', -- 这个数据类型直接就跟Util.Date映射上就行了
  `create_time` DATETIME NOT NULL COMMENT '创建时间',           -- 对于mysql当数据库修改了此列的时候使用这个值
  `_timestamp` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP COMMENT 'dba要求',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='服务池表'
 

select * from mybatis_java_map where  `int4` = 1

1.映射关系:

#切记int(10),int(11) 里面的数字10,与11 不代表存储的长度,代表的是显示宽度。参考—mysql-数据类型

2.非空默认值

非空默认值:`amount` double(10,2) NOT NULL DEFAULT '0.00' COMMENT '度量值'

使用mybatis插入语句(column1,column2),如果column没在列里面,这时候会设置默认值,注意:如果这个值是null这时候插入会报错

默认值:     `status` int(3) DEFAULT '1' COMMENT '状态'

使用mybatis插入的时候,这个对象如果是个integer类型这时候是null,数据库是可以插入进去的就是个空值,注意:没有这列的时候给你添加默认值

null在mysql中是个特殊的值。。。

============================================================================

3.unsigned  这样的标记会限制数的取值范围,

CREATE TABLE `o1` (`id` int(11) unsigned)

insert into o1(id) values(-1);

报错:Data truncation: Out of range value for column 'id' at row 1 性能也会好点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis-Plus-Boot兼容Spring Boot,因此可以在Spring Boot应用程序中使用MyBatis-Plus。MyBatis-Plus-Boot与Spring Boot紧密集成,可以使用Spring Boot的自动配置和约定来配置和使用MyBatis-Plus。 要在Spring Boot应用程序中使用MyBatis-Plus,需要在pom.xml文件中添加以下依赖项: ``` <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency> ``` 然后,在配置文件中添加以下配置: ``` spring: datasource: url: jdbc:mysql://localhost:3306/db_name username: username password: password driver-class-name: com.mysql.jdbc.Driver mybatis-plus: mapper-locations: classpath*:mapper/*Mapper.xml ``` 在这个示例中,我们配置了数据库连接信息和MyBatis-Plus的Mapper文件位置。在应用程序中,我们可以使用MyBatis-Plus提供的注解和方法来进行数据访问。例如,我们可以使用@TableName注解来将Java对象映射到数据库表: ``` @TableName("user") public class User { @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; private String email; // getters and setters } ``` 然后,我们可以使用MyBatis-Plus提供的方法来进行数据访问: ``` @Autowired private UserMapper userMapper; public void addUser(User user) { userMapper.insert(user); } public User getUserById(Long id) { return userMapper.selectById(id); } public List<User> getAllUsers() { return userMapper.selectList(null); } ``` 在这个示例中,我们注入了UserMapper对象,并使用它的insert、selectById和selectList方法来进行数据访问。 总之,MyBatis-Plus-Boot是兼容Spring Boot的,可以在Spring Boot应用程序中使用MyBatis-Plus来进行数据访问。它提供了丰富的注解和方法,使数据访问变得更加简单和方便。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值