Java:JDBC_从入门到学生信息管理系统

本文介绍了Java程序的执行流程,详细讲解了JDBC的基础使用,包括配置JDBCUtils、处理字符编码问题,探讨了PreparedStatement防止SQL注入的作用,并展示了如何通过对象封装和代码重构实现学生信息管理系统的模块化编程。最后,文章提供了运行测试成功的案例。
摘要由CSDN通过智能技术生成

1.Java是怎么执行的?

(^-^)复习一下简单的java程序:

public class Text{
    public static void main(String args[]) {
        System.out.println("Hello!");
    }
    
}

                jdk:java开发工具

                jre:运行环境,给用户用的

                jvm:java虚拟机,可使java跨平台运行。(java文件在编译时会生成一个class文件(字节码文件),并在jvm中运行class文件,只运行不编译,则不会生成class文件)

                 编译,生成自解开码文件

                运行   自解码文件。

package com.google.demo01;//用来定位的,说你的java这个文件在哪

        在建立项目时com.(干嘛用的).(叫啥)->java文件

2.简单的JDBC

(1)jdbc体验

package com.company.zjx;

import com.mysql.jdbc.Driver;
import com.mysql.jdbc.Statement;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;

public class JDBC_demo {
    private static final String URL = "jdbc:mysql://localhost:3306/student";
    public static final String USER = "root";
    public static final String PASSWORD = "123456";
    public static Connection connection;
    public static Statement statement;
    public static final String DRIVER = "com.mysql.jdbc.Driver";
    public static ResultSet resultSet;

    public static void main(String[] args) {
        try {
            //加载驱动
            Class.forName(DRIVER);
            //获取sql连接
            connection = DriverManager.getConnection(URL, USER, PASSWORD);
            //获取sql操作对象
            statement = (Statement) connection.createStatement();
            //executeQuery:执行查询,返回结果集
            resultSet = statement.executeQuery("select * from info");
            while (resultSet.next()) {
                int id = resultSet.getInt(1);
                String name = resultSet.getString(2);
                int age = resultSet.getInt(3);
                System.out.println("id=" + id + " name=" + name + " age=" + age);
            }


        } catch (Exception e) {
            e.printStackTrace();
        } finally { //关闭连接:后用先关
            try {
                resultSet.close();
                statement.close();
                connection.close();
            } catch (SQLException throwAbles) {
                throwAbles.printStackTrace();
            }
        }

    }
}

info表的信息:

运行结果:

(2)封装JDBCUtils(单例设计)

创建一个  .properties  后缀的文件,在此文件中添加以下配置项

将配置文件放在resources文件夹下。

原因:基于 InputStream 读取配置文件,该方式的优点在于可以读取任意路径下的配置文件。

          但使用ClassLoder读取配置文件,该方式只能读取类路径下的配置文件,所以一般需要将配置文件放在src路径目录下。

通过静态代码块,预先执行读取配置文件的配置项,做预处理。

package com.company.zjx.JDBCUtil;

import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

public class JDBCUtils {
    private static String driver;
    private static String url;
    private static String user;
    private static String password;

    //通过静态代码块,来预先执行读取配置文件的配置项,做预处理。
    static {
        try {
            // JDBCUtils.class.getClassLoader();//当前类加载
            InputStream inputStream = ClassLoader.getSystemResourceAsStream("db.properties");//系统类加载器

            //Properties extends HashTable
            Properties properties = new Properties();
            properties.load(inputStream);

            driver = properties.getProperty("driver");
            url = properties.getProperty("url");
            user = properties.getProperty("user");
            password = properties.getProperty("password");

            System.out.println(driver + " " + url + " " + user + " " + password);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void init() {
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值