当前位置: 首页 > news >正文

试用型网站怎么做大连百度推广开户

试用型网站怎么做,大连百度推广开户,企业信息管理信息系统,忂州网站建设全文目录:开篇语前言**1. MyBatis 无参构造器的作用****2. 为什么需要无参构造器?****3. 示例:使用无参构造器****3.1 Java 类:User****3.2 MyBatis Mapper 接口:UserMapper****3.3 MyBatis 配置文件:mybat…

全文目录:

    • 开篇语
    • 前言
      • **1. MyBatis 无参构造器的作用**
      • **2. 为什么需要无参构造器?**
      • **3. 示例:使用无参构造器**
        • **3.1 Java 类:User**
        • **3.2 MyBatis Mapper 接口:UserMapper**
        • **3.3 MyBatis 配置文件:mybatis-config.xml**
        • **3.4 MyBatis SQL 映射文件:UserMapper.xml**
        • **3.5 使用 MyBatis 获取数据**
        • **3.6 结果**
    • **4. 无参构造器的自动生成**
    • **5. 反射与 MyBatis 反射机制**
      • **5.1 无参构造器与 MyBatis 的映射机制**
    • **6. 总结**
    • 文末

开篇语

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛

  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。

  我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。

小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!

前言

在 Java 中,MyBatis 是一个常用的持久层框架,它简化了数据库操作。为了能正确地映射数据库的记录到 Java 对象,MyBatis 会根据数据库字段和 Java 类的字段进行映射。MyBatis 在执行查询操作时,通常需要对象的 无参构造器 来实例化结果映射的 Java 对象。

1. MyBatis 无参构造器的作用

在 MyBatis 中,当进行数据映射时,框架需要通过反射创建 Java 对象。为了能成功地反射创建对象,Java 类必须有一个 无参构造器,否则 MyBatis 无法实例化该类。

2. 为什么需要无参构造器?

  1. MyBatis 使用反射实例化对象:MyBatis 会使用反射调用 Java 类的构造方法来创建对象,构造器用于初始化对象。
  2. 映射机制:MyBatis 会通过反射将查询结果(如数据库表中的每一行数据)映射到 Java 对象中。对于每一行数据,MyBatis 会根据列名和 Java 对象的字段名进行映射,如果没有无参构造器,MyBatis 可能无法正确地反射实例化对象。
  3. XML 或注解映射:在 MyBatis 中,无论是通过 XML 配置还是注解配置映射 SQL,框架都会使用无参构造器实例化返回的实体类对象。

3. 示例:使用无参构造器

假设我们有一个简单的 User 类,并且使用 MyBatis 来查询数据库中的 User 数据。为了让 MyBatis 正常工作,我们必须提供一个无参构造器。

3.1 Java 类:User
public class User {private int id;private String name;private int age;// 无参构造器public User() {}// 带参构造器public User(int id, String name, int age) {this.id = id;this.name = name;this.age = age;}// Getter 和 Setter 方法public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "User{id=" + id + ", name='" + name + "', age=" + age + "}";}
}
3.2 MyBatis Mapper 接口:UserMapper
import org.apache.ibatis.annotations.Select;public interface UserMapper {// 使用注解进行 SQL 查询@Select("SELECT id, name, age FROM users WHERE id = #{id}")User selectUserById(int id);
}
3.3 MyBatis 配置文件:mybatis-config.xml
<configuration><mappers><mapper class="com.example.mapper.UserMapper"/></mappers>
</configuration>
3.4 MyBatis SQL 映射文件:UserMapper.xml

如果你使用 XML 配置,可以使用以下的方式来配置 SQL 映射:

<mapper namespace="com.example.mapper.UserMapper"><select id="selectUserById" resultType="com.example.model.User">SELECT id, name, age FROM users WHERE id = #{id}</select>
</mapper>
3.5 使用 MyBatis 获取数据
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.InputStream;public class MyBatisTest {public static void main(String[] args) {// 加载 MyBatis 配置文件String resource = "mybatis-config.xml";InputStream inputStream = MyBatisTest.class.getClassLoader().getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);try (SqlSession session = sqlSessionFactory.openSession()) {// 获取 UserMapper 实例UserMapper userMapper = session.getMapper(UserMapper.class);// 使用无参构造器实例化 User 对象User user = userMapper.selectUserById(1);System.out.println(user);}}
}
3.6 结果

假设数据库中的 users 表包含以下数据:

idnameage
1John30

执行查询后,selectUserById(1) 返回的结果会被 MyBatis 映射到 User 对象,并输出如下:

User{id=1, name='John', age=30}

4. 无参构造器的自动生成

在 Java 中,如果你没有显式定义无参构造器,Java 编译器会自动为你生成一个无参构造器,前提是你没有定义任何构造器。

例如,以下 User 类没有定义任何构造器:

public class User {private int id;private String name;private int age;// Java 会自动提供一个无参构造器
}

在这种情况下,Java 会自动生成一个无参构造器,等同于:

public User() {
}

但如果你显式地定义了一个带参数的构造器,Java 编译器就不会自动生成无参构造器了。为了确保 MyBatis 能正常使用反射调用无参构造器,你需要手动提供无参构造器。


5. 反射与 MyBatis 反射机制

MyBatis 在执行映射时使用了 Java 的反射机制来实例化对象并填充数据。反射机制是通过调用无参构造器来创建对象实例的,因此无参构造器是必需的。MyBatis 会通过反射调用无参构造器,然后使用反射将查询结果填充到对象的字段中。

5.1 无参构造器与 MyBatis 的映射机制

当 MyBatis 查询数据库时,它会根据 SQL 查询结果的列名,查找与之匹配的 Java 对象的字段名,并将结果映射到该字段。然后,MyBatis 会通过无参构造器创建一个新的对象,并使用 set 方法填充数据。

如果没有无参构造器,MyBatis 无法使用反射创建对象,因此会抛出异常。


6. 总结

在 MyBatis 中,无参构造器对于映射数据库查询结果到 Java 对象至关重要。它使得 MyBatis 能够通过反射机制动态地创建对象并将查询结果填充到对象的字段中。如果你使用了自定义构造器,确保至少有一个无参构造器,以便 MyBatis 正确地反射创建对象。

  • 无参构造器:当 MyBatis 进行映射时,通过反射调用无参构造器创建对象。
  • Java 自动生成无参构造器:如果没有显式定义构造器,Java 会自动为类生成一个无参构造器,但如果定义了其他构造器,则需要显式定义无参构造器。

确保在使用 MyBatis 时,至少为每个映射类提供一个无参构造器。

… …

文末

好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。

… …

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!


⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。
⭐️若有疑问,就请评论留言告诉我叭。


版权声明:本文由作者原创,转载请注明出处,谢谢支持!

http://www.dtcms.com/a/455969.html

相关文章:

  • 手机评测哪个网站做的好点百度一下浏览器
  • 蛋糕网站建设规划书南通建筑人才网
  • 海南电商网站建设超酷网站
  • 创建设计公司网站做wd网站实训报告总结
  • 网站建设技术招聘黄石市下陆区建设管理局网站
  • 公司网站域名申请网络营销顾问
  • 前端网站开发实例网站怎么做双机房切换
  • 企业介绍微网站怎么做网站推广软件有哪些
  • 上海专业建设网站网络购物消费者行为论文
  • 网站建设 域名主机做网站哪家专业
  • 甘肃省城乡与建设厅网站首页9377网页游戏排行榜
  • wordpress更改站点名称建网站公司销售
  • 广西金兰工程建设管理有限公司网站摄影网站源码 国外
  • h5网站开发软件有哪些wordpress 图片放大
  • ppt网站源码网上广告宣传怎么做
  • 网站建设过程小结做网站之前需要准备什么条件
  • 外贸如何建立网站神箭手wordpress
  • dedecms 子网站谷歌网站推广好做吗
  • 12360官方网站下载营销型建设网站公司
  • 织梦网站如何做二级导航栏一级消防工程师考试条件
  • 北京公司网站制作企业网站备案多少钱
  • 加强单位门户网站建设的通知网站开发类标书报价明细表
  • 商业网站建设知识点怎么看一个网站是用模板什么做的
  • 选图片的网站做怎么样的网站好
  • 网站维护一般怎么做互联网保险案例
  • cms建站系统介绍自适应网站建设都找全网天下
  • 石家庄市规划建设局网站手机制作表格的软件免费
  • 自己建设网站怎么挣钱红色主题网站模板
  • 苏州建设工程合同备案网站莆田网站建设电话
  • 辽宁建设厅查询网站黄江二手车东莞网站建设