JDBC简介
JDBC(Java Data Connectivity,java数据库连接)是一种用于执行sql语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
数据库厂商使用驱动jar包实现JDBC接口,我们只需要导入相应的数据库驱动即可用统一接口访问数据库。
JDBC-MYSQL驱动下载
https://dev.mysql.com/downloads/connector/j/
上面为linux版本,下面为windows版本。
下载解压之后将里面的jar包放入idea项目文件夹,右键文件夹点击add as Library。
JDBC使用
- 注册驱动
- 获取连接
- 获取Statement
- 执行sql
- 关闭连接
//1.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver"); //建议写,可以没有,会通过jar包中META-INF/services自动注册
//从properties文件中获取user=root ,password=123。
Properties properties = new Properties();
properties.load(new FileReader("src/mysql.properties"));
String url="jdbc:mysql://127.0.0.1:3306/test";
//2.获取连接
Connection connection = DriverManager.getConnection(url,properties);
//Connection connection = DriverManager.getConnection(url,user,password); 也可以这样
//3.获取Statement
Statement statement = connection.createStatement();
//4.执行sql
String sql="delete from user where name='kd'";
boolean n = statement.execute(sql);
//5.关闭连接
statement.close();
connect.close();
通过结果集查询
String sql="select * from user";
ResultSet resultSet = statement.executeQuery(sql);
while(resultSet.next()){
int uid = resultSet.getInt(1);
String name = resultSet.getString(2);
String password = resultSet.getString(3);
Date birth = resultSet.getDate(4);
int sal = resultSet.getInt(5);
System.out.println(uid+name+password+birth+sal);
}
resultSet.close();
PreparedStatement 预处理查询
- 用?代替sql中的参数
- 有效解决sql注入问题(Statement存在sql注入问题)
- 效率较高
String sql="select * from user where uid=? and name=?";
//通过连接获取preparedStatement对象
PreparedStatement preparedStatement = connect.prepareStatement(sql);
int uid=2;
String name="xiaod";
//向?赋值
preparedStatement.setInt(1,uid);
preparedStatement.setString(2,name);
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next())
{
String passwd = resultSet.getString(3);
System.out.println(passwd);
}
resultSet.close();