以前学习JDBC的时候很多不懂的地方,后来慢慢用多了 也就会了,但是后来一直使用各种框架,对JDBC有一点遗忘 今天我们就来看看JDBC技术 到底如何使用 所谓的JDBC就是 连接数据库的一套API 也就是一套方法罢了,下面他们提供几个常用的接口和类
DriverManger 驱动程序管理类 用于 装载驱动程序 并为创建数据库连接提供支持
Connection 接口 用于连接某一数据库
Statement 用于执行Sql语句 他下面有两个常用子接口
preparStatement是Statement下的子接口 用于执行预编译的Sql语句防止sql注入 经常使用
ResultSet 该接口用于对我们查询到的结果集合进行处理
首先我们创建一张表 我使用的是数据库操作软件是Navice 创建一张t_user表
里面有 ID主键 一个name 一个age列
我再这里使用的是mySql数据库 所以我要导入Mysql的驱动包 复制到lib目录下并构建到配置路径中
下面是我们使用JDBC的步骤在网上找的图片
package com.hljex.Dao;
import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
public class JdbcTool {
private static Connection con = null;
public static Connection GetConnection(){
//创建一个JdbcTool 工具类 用于专门得到数据库链接
try {
//加载mysql驱动
Class.forName("com.mysql.jdbc.Driver");
//获取数据库链接对象
con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
}
接下来我们使用Statement 做一个查找 当然我们一般都是使用preparStatement 因为这个可以防止sql注入是预先编译SQL 语句的
下面是我们做了一个简单的查询
package com.hljex.Dao;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
public class JdbcDao {
public static void TestDao() throws ClassNotFoundException, SQLException{
//我们建立三个变量
Connection con = null; //用于连接数据库
Statement str = null;//用于向数据库发送sql语句
ResultSet resu = null;//用于处理我们查找到的结果集
Class.forName("com.mysql.jdbc.Driver");
//获取连接对象 传入要连接的数据库地址 并传入用户名称和密码
con = (Connection)JdbcUtil.GetConnection();
//创建sql语句
String sql = "select * from t_user";
//获取发送sql语句Statement对象
str = (Statement) con.createStatement();
//执行sql
resu = str.executeQuery(sql);
//打印出我们查询到的数据
while (resu.next()) {
System.out.println(resu.getInt("pk_id"));
System.out.println(resu.getString("f_name"));
}
}
//创建main方法 调用TestDao() 抛出异常信息
public static void main(String[] args) throws ClassNotFoundException, SQLException {
TestDao();
}
}
查询结果:
当然我们也要使用经常用到的preparStatement 预编译的对象嘛
package com.hljex.Dao;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
public class JdbcDao {
public static void TestDao() throws ClassNotFoundException, SQLException{
//我们建立三个变量
Connection con = null; //用于连接数据库
PreparedStatement str = null;//用于向数据库发送sql语句
ResultSet resu = null;//用于处理我们查找到的结果集
Class.forName("com.mysql.jdbc.Driver");
//获取连接对象 传入要连接的数据库地址 并传入用户名称和密码
con = (Connection)JdbcUtil.GetConnection();
//创建sql语句
String sql = "select * from t_user";
//获取发送sql语句PreparedStatement对象 最大的区别就是 这里我们获取sql执行对象的时候是要把Sql语句传入过去的
str = (PreparedStatement) con.prepareStatement(sql);
//执行sql
resu = str.executeQuery();
while (resu.next()) {
System.out.println(resu.getInt("pk_id"));
System.out.println(resu.getString("f_name"));
}
}
//创建main方法 调用TestDao() 抛出异常信息
public static void main(String[] args) throws ClassNotFoundException, SQLException {
TestDao();
}
}
当然我们也是查询出来的