jdbc是java数据库连接,这是一种用于执行sql语言的javaAPI,可以为多种关系数据库提供统一访问,有了jdbc,java程序员只用写一个程序就可以访问多种不同的数据库
JDBC搭建-
首先需要初始化驱动程序,这样就可以打开与数据库通信的通道了
//根据类名加载mysql驱动类
Class.forName("com.mysql.cj.jdbc.Driver");
//DriverManager.registerDriver(new Driver());
这两种方法都可以初始化驱动程序
-
接下来就是要与数据库建立连接:
这里需要使用DriverManager.getConnection()方法来创建一个
Connection对象,它代表一个物理连接的数据库.
Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/schooldb?serverTimezone=Asia/Shanghai", "user", "password");
127.0.0.1表示需要连接的ip地址
3306表示连接的端口
schooldb表示自己想要连接的数据库名
user表示数据库的用户名
password表示数据库的密码
-
获得Satement执行sql语句
Statement st = connection.createStatement();
Satement中的方法:
executeUpdate(String sql) 用于执行ddl语句和dml(增,删,改)语句
st.executeUpdate("INSERT INTO student(NAME,gender,birthday,phone)" + "VALUE('"+name+"','"+gender+"','"+birthday+"','"+phone+"')");
-
获得PrepareStatement执行sql语句
在sql语句中参数位置使用占位符,使用setXX方法向sql中设置参数
PrepareStatement ps = connection.prepareStatement(sql);
PrepareStatement中的方法: executeUpdate() 用于执行ddl语句和dml(增,删,改)语句
//预编译方式 预先将sql及参数预编译到PreparedStatement对象中/*
PreparedStatement ps = connection.prepareStatement("insert into student(name,gender,birthday,phone)" + "value(?,?,?,?)");
ps.setObject(1, name);
ps.setObject(2, gender);
ps.setObject(3, birthday);
ps.setObject(4, phone);
ps.executeUpdate();//执行
我们不难发现,用预编译方法比Satement方法方便很多,节省时间,提高效率
-
最后关闭关闭与数据库的链接通道
st.close();
rs.close();
connection.close();
ps.close();



