实体类

MyBatis映射文件 相关操作

早过忘川 提交于 2019-12-01 19:14:14
一、MyBatis映射文件 1、简介   MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好。   学习 MyBatis,需要了解 其如何对参数进行处理、如何将返回值进行映射。 2、实现简单的增删改查   使用一个简单的增删改查小案例,快速明白 mybatis 映射文件使用的流程。 step1:文件结构 step2:完整代码 【主要文件】 config/db.properties 用于设置数据库的配置信息 config/EmpMapper.xml sql映射文件,用于编写sql语句 config/mybatis-config.xml 全局配置文件 entity.Employee 实体类 mapper.EmpMapper 接口类,用于定义sql方法 test.Demo 测试类,用于测试增删改查 【config/db.properties 】 jdbc.driver = com.mysql.cj.jdbc.Driver jdbc.url = jdbc:mysql://localhost:3306/lyh?useUnicode=true

如何在JPA框架下实现分页查询.实例说明.

三世轮回 提交于 2019-12-01 13:11:39
1.创建实体类userinfo 2.编写dao层接口,继承JpaRepository<UserInfo,String>,两个变量分别是实体类名字和实体类的主键的名称.因为JpaRepository<UserInfo,String>继承PagingAndSortingRepository<T, ID>, CrudRepository<T, ID>所以封装的就有增删查改功能和分页功能 ** * 继承jpa的操作接口,去实现UserInfo表信息的处理 */ public interface UserInfoRepository extends JpaRepository<UserInfo,String> { } 3.编写service层;获得pageble对象    @Autowired private UserInfoRepository userInfoRepository; public List<UserInfo> queryList(int page, int pageSize) { Pageable pageable = PageRequest.of(page,pageSize); return userInfoRepository.findAll(pageable).getContent(); } 最后返回的就是数据库所有的实体对象所对应表的userinfo对象集合.

MyBatis详解 一篇就够啦

混江龙づ霸主 提交于 2019-12-01 11:45:22
MyBatis详解 一篇就够啦 第1章MyBatis框架配置文件详解 1.1 typeHandlers类型转换器   每当MyBatis 设置参数到PreparedStatement 或者从ResultSet 结果集中取得值时,就会使用TypeHandler 来处理数据库类型与java 类型之间转换。下表描述了默认 TypeHandlers 1.1.1 自定义类型转换器 假设表中字段是int类型,而实体类与之对应的属性是boolean类型,此时可以采用自定义类型转换器进行对应 (1)实体类 1 package com.chenyanbin.beans; 2 3 public class Dept { 4 private Integer deptNo; 5 private String dname; 6 private String loc; 7 private boolean flag; 8 public Integer getDeptNo() { 9 return deptNo; 10 } 11 public boolean isFlag() { 12 return flag; 13 } 14 public void setFlag(boolean flag) { 15 this.flag = flag; 16 } 17 public void setDeptNo(Integer

MyBatis详解 一篇就够啦

▼魔方 西西 提交于 2019-12-01 11:26:45
第1章MyBatis框架配置文件详解 1.1 typeHandlers类型转换器   每当MyBatis 设置参数到PreparedStatement 或者从ResultSet 结果集中取得值时,就会使用TypeHandler 来处理数据库类型与java 类型之间转换。下表描述了默认 TypeHandlers 1.1.1 自定义类型转换器 假设表中字段是int类型,而实体类与之对应的属性是boolean类型,此时可以采用自定义类型转换器进行对应 (1)实体类 1 package com.chenyanbin.beans; 2 3 public class Dept { 4 private Integer deptNo; 5 private String dname; 6 private String loc; 7 private boolean flag; 8 public Integer getDeptNo() { 9 return deptNo; 10 } 11 public boolean isFlag() { 12 return flag; 13 } 14 public void setFlag(boolean flag) { 15 this.flag = flag; 16 } 17 public void setDeptNo(Integer deptNo) { 18

JavaWeb报错:java.sql.SQLException: Invalid value for getInt()

痞子三分冷 提交于 2019-12-01 08:56:02
1.错误描述:在对数据库进行操作时,控制台报错:java.sql.SQLException: Invalid value for getInt() ; 2.错误原因:数据库中表的字段的类型与实体类中属性的类型不一致 3.解决方法:实体类中属性的类型应与数据库中表的字段的类型一致。例如:数据库表中字段类型为varchar,则实体类中应为String 来源: https://www.cnblogs.com/qingmuchuanqi48/p/11674459.html

mybatis关键查询

旧时模样 提交于 2019-12-01 07:41:20
一、一对一关联 1.1、提出需求   根据班级id查询班级信息(带老师的信息) 1.2、创建表和数据   创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系。 1 CREATE TABLE teacher( 2 t_id INT PRIMARY KEY AUTO_INCREMENT, 3 t_name VARCHAR(20) 4 ); 5 CREATE TABLE class( 6 c_id INT PRIMARY KEY AUTO_INCREMENT, 7 c_name VARCHAR(20), 8 teacher_id INT 9 ); 10 ALTER TABLE class ADD CONSTRAINT fk_teacher_id FOREIGN KEY (teacher_id) REFERENCES teacher(t_id); 11 12 INSERT INTO teacher(t_name) VALUES('teacher1'); 13 INSERT INTO teacher(t_name) VALUES('teacher2'); 14 15 INSERT INTO class(c_name, teacher_id) VALUES('class_a', 1); 16 INSERT INTO class(c_name

MyBatis中的关联查询

柔情痞子 提交于 2019-12-01 07:25:50
一:在使用MyBatis进行关联查询的时候,首先要确定表与表之间的关联关系   表与表之间一般存在三种关系,即一对一,一对多,多对多关系。   下面分别就三种关系讲解 1.一对一和一对多在Mybatis中进行关联查询的思路都是一样的,在一个实体类中创建另一个实体类的对象作为当前类的属性,这样的话数据库中表与表之间的关联关系就体现在了我们的实体类当中 如下,在我们的账单类(SmbmsBill)中添加了一个供应商类(SmbmsProvider)的对象 当我们查寻所有订单的时候就可以连带的把该账单上的供应商也一并查询出来 2.接下来我们开始创建接口以及查询方法 方法创建完成之后在我们的Mapper的配置文件中编写对应方法的实现 由于我们要查询的结果包含了两张表中的数据,MyBatis的自动映射无法把关联对象中的数据自动映射成功,所以我们需要进行手动映射 3.创建相应的resultMap节点 <resultMap id="SmbmsProviderResult" type="SmbmsBill">  <!--在此处需要主对象手动指定id和result节点进行手动映射-->  <!--property代表关联对象在实体类中的属性名 javaType 代表他的类型--> <association property="smbmsProvider" javaType="SmbmsProvider"

数据库中加个使用decimal字段

此生再无相见时 提交于 2019-12-01 05:04:30
实体类: @Entity @DynamicUpdate//若是数据库有默认的字段,会根据数据库默认字段进行修改 @Data //lombok 他可以创建set、get方法以及toString public class ProductInfo { @Id @GeneratedValue(strategy= GenerationType.IDENTITY) private Integer productId; private String productName;//名称 private BigDecimal productPrice;//加个 private Integer productType;//类目 } 注: public ProductVo getProductVo() { ProductVo productVo = new ProductVo(); productVo.setProductName("张三"); productVo.setProductType(1); return productVo; } 来源: https://www.cnblogs.com/gxlaqj/p/11656982.html

mybatis插入数据返回主键

别说谁变了你拦得住时间么 提交于 2019-12-01 05:02:07
问题定义:我们对某个数据执行了插入数据的操作之后,需要将主键返回,例如:订单支付完成了,这时候我们要把待支付表中对应的数据移除 但是,如何才能准确快速的移除呢?我们希望能在添加的时候将主键得到,以便后面的移 除操作更加方便。 1、自增主键情况下插入数据获取自增主键值 mybatis为我们提供了一个方法,能够插入数据时获取自动生成的值,并且把取的值赋值给实体类的某一属性 设置方法: 要求:主键必须是自增的 <insert id = "insert" useGeneratedKeys = "true" keyProperty = "id"> SQL语句 </insert> useGeneratedKeys = true  //是否返回自增主键值 keyProperty = "xxx"  //将值赋给哪个属性,这个属性是方法参数中的 2、主键非自增的情况下获取主键值 一般我们使用<selectKey>来实现。 一个<insert>块中只能有一个<selectKey> 下面我们了解一下selectKey中的属性 resultType:这个我们就不用解释了,返回类型 order:它有两个取值:1、BEFORE在添加之前查询 2、AFTER在添加之后查询  //这两个都是全大写 keyProperty:将取值赋值给方法参数,如果方法参数是实体类,一般赋值给实体类的字段 keyColumn