JDBC连接数据库的操作步骤如下:
1、加载数据库驱动程序;
导入这个jar包:mysql-connector-java-5.1.7-bin.jar
try{
//将数据库的驱动拷贝到项目中 架包
Class.forName("com.mysql.jdbc.Driver");
}catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
会抛出一个异常
2、获取数据库连接对象;
(1)、在获取连接数据库对象之前了解三个参数
url:定义了连接数据库时的协议、子协议、数据源标识,它们之间用冒号隔开。它的书写形式: 协议:子协议:数据源标识
协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。
例如:
“jdbc:mysql://127.0.0.1:3306/stu?characterEncoding=utf-8”
root:数据库用户名;
password:数据库密码;
(2)、
•要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。
•使用DriverManager的getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。
例如:
String url = "jdbc:mysql://127.0.0.1:3306/stu?characterEncoding=utf-8";
Connection conn = DriverManager.getConnection(url, "root","123456");
此时设置的字符编码为utf-8;
3、创建sql语句;
创建sql语句时候定义成String类型
//创建sql语句
String sql = "update student set age=?,c_id=? where id=?";
4,创建preparedStatement;
(1)、执行静态sql语句,通过Statement实例来实现;
//将sql语句放到数据库中执行 获取结果
Statement st = conn.createStatement();
(2)、执行动态sql语句,通过PreparedStatement实例实现;
PreparedStatement ps = conn.prepareStatement(sql);
(3)、执行调用存储过程或者函数的sql语句,使用CallableStatement实例实现;
调用存储过程
CallableStatement pc = conn.prepareCall("{call countstubyclass(?,?)}");
调用函数
CallableStatement pc = conn.prepareCall("{?=call countstubyclass(?)}");
注意:CallableStatement类和PreparedStatement类是Statement类的子类,可以调用父类方法。
5、遍历结果集(执行sql语句);
jdbc连接数据库分为两个操作:查询和更新;更新又可以分为增加,删除,修改,统一起来就叫做增删查改!
(1)、执行查询操作的时候获取到结果集;
注意:MySQL数据库中列是从左到右编号的,并且从列1开始;
ResultSet rs= ps.executeQuery();
//遍历结果集
while(rs.next()) {
//实例化实体类对象
Student stu = new Student();
//获取数据库中student表的name字段的值
String name = rs.getString("name");
String classname = rs.getString("class_name");
//获取一行数据 保存到一个对象中
stu.setName(name);
}
(2)、执行更新操作的时候获取影响行数;
//执行sql语句
PreparedStatement ps = conn.prepareStatement(sql);
//获取影响行数
int row = ps.executeUpdate();
if(row>0) {//当影响行数大于0的时候就说明更新操作执行成功
System.out.println("更新成功!");
}
6、关闭资源:在处理相关异常之后关闭对应的资源
逐个关闭;遵循原则:先开的后关,后开的先关
方式1:局部变量
Connection conn = DriverManager.getConnection(url, "root", "123456");
//创建sql语句
String sql = "select * from student";
//将sql语句放到数据库中执行 获取结果
Statement st = conn.createStatement();
//将获取到的数据保存到结果集中
ResultSet rs = st.executeQuery(sql);
//关闭资源 原则:先开的后关 后开的先关
rs.close();
st.close();
conn.close();
conn ,st ,rs 这三个对象相当于是局部变量,必须在所定义的方法体内进行资源关闭操作;
方式二:全局变量
Connection conn = null;
Statement st = null;
ResultSet rs = null;
在方法体最后关闭资源
if(rs !=null){ // 关闭记录集
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt !=null){ // 关闭声明
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn !=null){ // 关闭连接对象
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
以上就是jdbc连接数据库的步骤,若有不到之处请大师们批评指正