目录
Statement 接口和PreparedStatement接口区别
JDBC概述
java数据库连接,是用java语言编写的接口和类,是一套标准的API
用于连接不同的数据库
连接步骤
1.导包
导入不用数据库提供的对应的jar包
2.加载mysql驱动类
两种方式 1.DriverManager.registerDriver(new Driver());
2.Class.forName("com.mysql.cj.jdbc.Driver");
3.建立JDBC与数据库之间的连接
Connection connection= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/chatdb?serverTimezone=Asia/Shanghai","root","123");
chatdb:所选择的数据库
serverTimezone=Asia/Shanghai:JDK8以后都需要填入时区
"root":账号
"123":密码
4.创建Statement 接口或者PreparedStatement接口执行sql语句
1.executeUpdate(String sql) 用于执行ddl语句和dml(增,删,改)语句
返回int类型的数据,即操作的行数
2.executeQuery(String sql); 用于执行查询语句 返回一个ResultSet 集合
5.接收结果
6.关闭数据库的连接
例1:使用Statement 接口
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Demo1 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection connection= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/chatdb?serverTimezone=Asia/Shanghai","root","123");
Statement st=connection.createStatement();
int result=st.executeUpdate("INSERT INTO tuser(user_name,user_password,birthday,reg_time)\n" +
"VALUE('123','123','2002-1-15',NOW())");
System.out.println(result);
st.close();
connection.close();
}
}
例2:使用PreparedStatement接口
import java.sql.*;
public class Demo2 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
String name="111";
String password="111";
Class.forName("com.mysql.cj.jdbc.Driver");
Connection connection= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/chatdb?serverTimezone=Asia/Shanghai","root","123");
PreparedStatement ps=connection.prepareStatement("insert into tuser(user_name,user_password)"+"value (?,?)"
);
ps.setObject(1, name);
ps.setObject(2, password);
ps.executeUpdate();
ps.close();
connection.close();
}
}
Statement 接口和PreparedStatement接口区别
PreparedStatement需要根据SQL语句来创建,使用参数设置,可读性较好,不易记错.安全性较高,能有效防止SQL注入攻击.
Statement需要直接拼接SQL语句,可读性差,不易维护.
本文含有隐藏内容,请 开通VIP 后查看