Java反射之类的字节码对象的三种调用方式和JDBC【多测师】
类的字节码对象:
package com.section02;
import org.apache.log4j.Logger;
import com.section01.Student;
/**
* @author xiaoshu
* 同一个类在JVM中只存在一份字节码对象
*也就是说下述clazz==clazz1==clazz2
*/
public class JDBCTester2 {
private static Logger logger = Logger.getLogger(JDBCTester2.class);
public static void main(String[] args) throws Exception {
logger.info("我是info级别的日志信息");
//三种获取类的字节码对象的方式
//第1种:
Class<Student> clazz = Student.class;
System.out.println(clazz); //class com.section01.Student
//第2种:
Class<?> clazz1= Class.forName("com.mysql.jdbc.Driver");
System.out.println(clazz1); //class com.mysql.jdbc.Driver
//第3种:
java.util.Date str = new java.util.Date();
Class<?> clazz2 = str.getClass();
System.out.println(clazz2); //class java.util.Date
}
}
JDBC:java连接数据库 java database connectivity 是一种用于执行sql语句的javaAPI
package com.section02;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import org.apache.log4j.Logger;
public class JDBCTester {
private static Logger logger = Logger.getLogger(JDBCTester.class);
public static void main(String[] args) throws Exception {
//装载驱动程序Driver,安装驱动管理器DriverManager
//装载一个类,装载mysql的驱动--类--告诉我类的名称com.xxx.xxx.xxxDriver
Class.forName("com.mysql.jdbc.Driver");
//建立连接:要从数据库拿到一个连接
//获取数据库连接需要的信息:协议 主机地址 端口号 路径(哪个数据库) 用户名 密码
String url = "jdbc:mysql://127.78.118.2/future";
String user = "futurevistor";
String password = "123456";
Connection conn= DriverManager.getConnection(url, user, password);
//准备sql语句
//插入一个用户
String sql="insert into member(regname,pwd,mobilephone,leaveamount)
values('xiaoshu','123456','15367498888','10000');";
//创建陈述对象(创建一个执行语句的声明对象)
Statement stmt = conn.createStatement();
//执行sql语句
stmt.execute(sql);
System.out.println("已经插入了sql语句:"+sql);
logger.info("这是info级别的日志" + sql);
logger.warn("这是warn级别的日志" + sql);
logger.error("这是error级别的日志" + sql);
//关闭资源(关闭陈述语句,关闭连接) 数据库资源比较稀缺要关闭
stmt.close();
conn.close();
}
//CRUD 增删改查
}