JAVAWEB笔记

  学的是黑马程序员JavaWeb全套基础教程,java web从入门到项目实战(IDEA版javaweb)

链接

反射

JAVAWEB笔记_第1张图片

JAVAWEB笔记_第2张图片

 获取Class对象的方式:

 1.Class.forName

JAVAWEB笔记_第3张图片

 JAVAWEB笔记_第4张图片

 2和3

package cn.ljy;

import cn.domain.Person;

public class ljyhs {
    public static void main(String[] args) throws Exception {
        //1.
        Class cls=Class.forName("cn.domain.Person");
        System.out.println(cls);
       // 2.
        Class cls2= Person.class;
        System.out.println(cls2);
        //3.
        Person p=new Person();
        Class cls3=p.getClass();
        System.out.println(cls3);
    }
}

输出:

 

 用==去判断它们是否为同一个ClassJAVAWEB笔记_第5张图片

 Class对象功能:

JAVAWEB笔记_第6张图片

 演示:

1.获取成员变量们

1.

注意:

JAVAWEB笔记_第7张图片

 JAVAWEB笔记_第8张图片

 这里只有a 的修饰符为public,所以只有a输出

那我们如何获取a的值呢?

我们可以用如下方法:

JAVAWEB笔记_第9张图片

 因为我们还没给a赋值,所以a的值为0

我们怎么设置a 的值呢/

JAVAWEB笔记_第10张图片

2. JAVAWEB笔记_第11张图片

 这个是不看修饰符的,把所有的成员变量输出

这样我们是不是可以对私有成员变量进行赋值呢?

答案的可以的

让我这个南航第一帅来演示一下:

JAVAWEB笔记_第12张图片

d.setAccessible(true);//设置访问权限

这个是关键,我们没有这个的话会报错

2.获取构造方法们

3

4

JavaWeb课程介绍

JAVAWEB笔记_第13张图片

数据库的基本概念 

 JAVAWEB笔记_第14张图片

JDBC 

 

快速入门:

JAVAWEB笔记_第15张图片

mysql数据库软件

JAVAWEB笔记_第16张图片JAVAWEB笔记_第17张图片

 图形化界面工具sqlyog

JAVAWEB笔记_第18张图片

 现在我们就可以来学习真正jdbc了

先给一段代码来看看:

public class Main {
    public static void main(String[] args) throws Exception {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ljy","root","root");
        String sql="update dept set loc='sc' where id=1";
        Statement stmt=conn.createStatement();
        int count=stmt.executeUpdate(sql);
        System.out.println(count);
        stmt.close();
        conn.close();
    }
}

数据库的信息被修改了

JAVAWEB笔记_第19张图片

1.DriverManager

JAVAWEB笔记_第20张图片

JAVAWEB笔记_第21张图片

 JAVAWEB笔记_第22张图片

 练习:

向dept里添加数据

package org.example;

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

public class text1 {
    public static void main(String[] args) {
        Connection conn=null;
        Statement stat=null;
        try {
            //注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            //定义sql
            String str="insert into dept values(2,'cxk','bj')";
            //获取Connection对象
            conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/ljy","root","root");
            //获取sql的对象Statement
            stat=conn.createStatement();
            //执行sql
            int count = stat.executeUpdate(str);//受影响的句子个数

        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }finally {
            if(stat!=null){
                try {
                    stat.close();
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }
            }
            if(conn!=null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }
            }
        }
    }
}

JAVAWEB笔记_第23张图片

Resultset :结果集对象,封装查询结果
 

JAVAWEB笔记_第24张图片 

 例如:

package org.example;

import java.sql.*;

public class text2 {
    public static void main(String[] args) {
        Connection conn=null;
        Statement stat=null;
        ResultSet rs=null;
        try {
            //注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            //定义sql
            String str="select * from dept";
            //获取Connection对象
            conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/ljy","root","root");
            //获取sql的对象Statement
            stat=conn.createStatement();
            //执行sql
            rs=stat.executeQuery(str);
            //处理结果
            rs.next();//移动游标
            int id= rs.getInt(1);
            String name= rs.getString(2);
            String loc= rs.getString("loc");
            System.out.println(id+"---------"+name+"---------"+loc);

        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }finally {
            if(stat!=null){
                try {
                    stat.close();
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }
            }
            if(rs!=null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }
            }
            if(conn!=null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    throw new RuntimeException(e);
                }
            }
        }
    }
}

那如果我们要获取整张表的数据的话,我们应该怎么做呢?

我们没法知道有多少条数据,所以直接手动用next() 不太现实,所以这里我们就要想起循环了。

注:

 我们可以这样改进代码:

JAVAWEB笔记_第25张图片

没有问题!!!

 例题:

解答如下:

package ljy;

public class domain {
    private  int id;
    private  String name;
    private  String loc;


    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 String getLoc() {
        return loc;
    }

    public void setLoc(String loc) {
        this.loc = loc;
    }

    @Override
    public String toString() {
        return "domain{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", loc='" + loc + '\'' +
                '}';
    }
}

 

package org.example;

import com.mysql.jdbc.Driver;
import ljy.domain;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class text3 {
    public static void main(String[] args) {
       List list= new text3().findAll();
       System.out.println(list);
    }
    public List findAll(){
        Connection conn=null;
        Statement sta=null;
        ResultSet res=null;
        List list=null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn= DriverManager.getConnection("jdbc:mysql:///ljy","root","root");
            String sql="select * from dept";
            sta= conn.createStatement();
            res=sta.executeQuery(sql);
            list=new ArrayList();
            while (res.next()) {
                int id = res.getInt(1);
                String name = res.getString(2);
                String loc = res.getString("loc");
                domain d=new domain();
                d.setId(id);
                d.setLoc(loc);
                d.setName(name);
                list.add(d);
            }
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }finally {
            {
                if(sta!=null){
                    try {
                        sta.close();
                    } catch (SQLException e) {
                        throw new RuntimeException(e);
                    }
                }
                if(res!=null){
                    try {
                        res.close();
                    } catch (SQLException e) {
                        throw new RuntimeException(e);
                    }
                }
                if(conn!=null){
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        throw new RuntimeException(e);
                    }
                }
            }
        }
    return list;
    }
}

 

jdbc工具类:

为了简化代码

 

你可能感兴趣的:(Java,笔记,java,intellij-idea)