JavaWeb之数据库JDBC

在创建好数据库后,需要通过Java实现数据库的增删改查操作

JDBC(Java DataBase Connectivity)意为Java数据库连接,是Java提供的用来操作数据库的API

一、数据库的连接

这一部分不要求掌握,大家直接简单阅读一下即可,实践中很少自己手写

1.配置文件jdbc.properties

配置文件用于存储数据库信息,通常放在与src同目录下的resources包下

driverClassName=com.mysql.cj.jdbc.Driver  //数据库驱动(下面解释)
url=jdbc:mysql://...  //数据库的位置
username=    //账号
password=    //密码

读取jdbc.properties中的信息:

Properties properties = new Properties();
properties.load(new FileInputStream("../resources/jdbc.properties"));     

String driver = properties.getProperty("driverClassName");
String url = properties.getProperty("url");
String username = properties.getProperty("username");
String password = properties.getProperty("password");                        

2.数据库连接核心API(类)

(1)DriverManager

所谓DriverManager即为Java内置的驱动/管理数据库的类,有如下两个常用方法:

//注册驱动
public static void registerDriver(java.sql.Driver driver);
//根据地址、用户名、密码连接至数据库
public static Connection getConnection(String url, String user, String password);

而上文提到的数据库驱动com.mysql.cj.jdbc.Driver类的静态代码块中就包含了驱动注册

具体应用为:

//1.注册驱动 (加载driver类时执行driver类的静态代码块中的registerDriver())
Class.forName(driver);
//2.获取连接对象
Connection connection = DriverManager.getConnection(url, username, password);

(2)Connection

Connection可以用于创建Statement/PreparedStatement对象来执行SQL语句

//获取执行SQL语句对象
Statement statement = connection.createStatement();
//预编译SQL语句得到PreparedStatement对象
PreparedStatement preparedStatement = connection.prepareStatement("SQL语句");

(3)Statement/PreparedStatement

a.Statement
//拼接SQL语句
String sql = "SELECT * FROM users WHERE username = '" + username + 
                            "' AND password = '" + password + "'";
//在数据库中执行SQL语句
//查询方法,将结果放入resultSet类中
ResultSet resultSet = statement.executeQuery(sql);
//增删改方法,返回数据库中受影响行数rows
int rows = statement.executeQuery(sql);

使用Statement执行SQL语句时,可能会出现SQL注入攻击问题

举例来说,如果用户输入的username是 admin'--,password是123456,那么SQL语句将变成:

SELEC

你可能感兴趣的:(JavaWeb,数据库,java)