使用jdbc连接数据库,可以分为7步骤:
加载jdbc驱动程序
可以通过Class类的静态方法forName实现
提供jdbc连接的url以及用户和密码
- 创建数据库的连接
向java.sql.DriverManager请求并获得Connection对象,一个connection对象就代表一个数据库的连接 - 创建一个statement对象
通过connection对象名调用去实现
1)执行静态sql语句:通过createStatement实例去实现
2)执行动态sql语句:通过PreparedStatement实例去实现
3)执行数据库存储sql过程:通过CallableStatement实例实现
Statement stmt = conn.createStatement() ;
PreparedStatement pstmt = conn.prepareStatement(sql) ;
CallableStatement cstmt = conn.prepareCall("{CALL demoSp(? , ?)}") ;
5.执行sql语句
Statement接口提供了三种sql语句的方法:
1)executeQuery:执行查询数据库的sql语句,返回一个ResultSet对象
2)executeUpdate:用于执行insert、update、delete、语句等等
3)execute:用于执行返回多个结果集,多个更新计数或二者组合的语句
6.处理结果
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ; // 此方法比较高效
}
(列是从左到右编号的,并且从列1开始)
7. 关闭jdbc对象
关闭对象与声明对象相反
package com.westos.Mysql;
import java.sql.*;
public class sqlConnection {
public static void main (String[] ages){
/**
* 使用jdb连接数库
*/
try {
//使用mysql的驱动,并用class.forName去把它加载进去
//mysql的驱动
String DriverName = "com.mysql.jdbc.Driver";
//动态加载mysql驱动
Class.forName(DriverName);
/**
* 这是url的编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称?
* 避免中文乱码所以要指定useUnicode和characterEncoding
* useUnicode:表示使用Unicode字符集
*/
String url="jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=utf-8";
String username="root";
String password="123456";
//一个connection代表一个数据库的连接
Connection conn = DriverManager.getConnection(url, username, password);
//创建一个Statement对象,Statement里面带有很多方法,比如executeUpdate可以实现插入更新和删除等方法
Statement stat= conn.createStatement();
//写入mysql指令
String sql="insert into table_Student values(2,'132668','李四')";
//调用Statement中的executeUpdate方法去执行sql指令
ResultSet re = stat.executeQuery(sql);
//输出查询结果
while(re.next()){
System.out.println(re.getInt("id"));
System.out.println(re.getString("xuhao"));
System.out.println(re.getString("name"));
System.out.println("------------------");
}
//关闭statement对象
re.close();
stat.close();
conn.close();
}
catch(SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
System.out.println("找不到jar包");
e.printStackTrace();
}
}
}