英语渣渣学Java的day7

文章目录练习题反射暴力反射Constructor类概述Method类概述注解元注解的概述练习题1 消息类别表infotype:列 类型id 类型名称create table info_type(id int primary key AUTO_INCREMENT,name varchar(50))1)利用jdbc查询 列表package com.gec.js;import java.sql.Connection;import java.sql.DriverManager;impor
摘要由CSDN通过智能技术生成

练习题

1 消息类别表
infotype:列 类型id 类型名称
create table info_type(
id int primary key AUTO_INCREMENT,
name varchar(50)
)
1)利用jdbc查询 列表

package com.gec.js;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class XiaoShiBiaoDemo {
   
	public static void main(String[] args) throws SQLException {
   
	
		try (
				Connection conn = DriverManager.getConnection("jdbc:mysql:///hrm", "root", "");

				Statement st = conn.createStatement();

		) {
   
		     

			ResultSet rs = st.executeQuery("SELECT * FROM info i,info_type t WHERE  i.id=t.id ");//查询

			while (rs.next()) {
   

				Object id = rs.getObject(1);
				Object name = rs.getObject(2);
				Object id1 = rs.getObject(3);
				Object title = rs.getObject(4);
				Object content = rs.getObject(5);
				Object info_type_id = rs.getObject(6);
				Object author = rs.getObject(7);
				Object createDate = rs.getObject(8);

				System.out.println(id + "," + name + "," + id1 + "," + title + "," + content + "," + info_type_id + ","
						+ author + "," + createDate);
				System.out.println(
						"————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————");
				
			}
		
		} catch (Exception e) {
   
			e.printStackTrace();
		}
	}
}

效果图
在这里插入图片描述

2 消息表
info:列 消息id 消息标题 消息内容 消息类型id 作者 createdate
CREATE TABLE info(
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(50),
content VARCHAR(1000),
info_type_id INT,
author VARCHAR(30),
createDate DATE,
#外键
FOREIGN KEY(info_type_id) REFERENCES info_type(id)
)
2)插入一条数据

package com.gec.zy;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.junit.Test;

public class XiaoShiBiaoDemo {
   
	public static void main(String[] args) throws SQLException {
   
	

		try (Connection conn = DriverManager.getConnection("jdbc:mysql:///hrm", "root", "");

				Statement st = conn.createStatement();

		) {
   
			//插入语句
			st.executeUpdate("INSERT INTO info_type(id,NAME) VALUES (4,'刘备')");
			ResultSet rs2 = st.executeQuery("SELECT * FROM info_type ");
				while (rs2.next()) {
   
				Object id3 = rs2.getObject(1);
				Object name4 = rs2.getObject(2);
				System.out.println(id3 + "," + name4);

			}
		} catch (Exception e) {
   
			e.printStackTrace();
		}
	}
	

}

效果图
在这里插入图片描述

反射

一、什么是反射:
(1)Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。

(2)Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁。

二、反射的原理:
下图是类的正常加载过程、反射原理与class对象:

Class对象的由来是将.class文件读入内存,并为之创建一个Class对象。
在这里插入图片描述
各种框架的设计
在这里插入图片描述
以上三个图标上面的名字就是Java的三大框架,简称SSH.
这三大框架的内部实现也大量使用到了反射机制,所有要想学好这些框架,则必须要求对反射机制熟练了。

使用反射机制解剖类的前提
必须先要获取到该类的字节码文件对象,即 Class类型对象。关于Class描述字节码文件如下图所示:
在这里插入图片描述
说明:

Java中使用Class类表示某个class文件
任何一个class文件都是Class这个类的一个实例对象.
2.获取Class对象的三种方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉莫的羔羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值