今天来谈一下JDBC,一个很简单的东西。JDBC,全称java data base connectivity,即数据库连接
从概念上理解,也即把数据库中的数据获取到java环境中来进行各种处理。JDBC的过程总体可以分为6步
第一步:加载mysql驱动 Driver.class,这一步可以通过两种方式达到目的
1.DriverManager.registerDriver(new com.mysql.jdbc.Driver()),这种方法不推荐,想要深究的可以去看一下这个方法的源代码
2.Class.forName("com.mysql.jdbc.Driver")
第二步:创建连接对象,可通过不同方式创建
1.Connection conn=DriverManager.getConnection(String url)
2.Connection conn=DriverManager.getConnection(String url, properties pro)
3.Connection conn=DriverManager.getConnection(String url,String user,String password)
这三种方本质上差不多,选择适合自己的方式就行
第三步:创建执行sql语句的对象
Statement st=conn.createStatement()
第四步:获取结果集
ResultSet rs=st.executeQuery(sql语句)
第五步:遍历结果集
while(rs.next()){
}
第六步:关闭资源
conn.close()
rs.close()
st.close()
这就是JDBC的基本步骤,大家可以按照这个步骤记忆,接下来贴出一些详细的代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Demo1 {
/**
* 使用jdbc实现数据库的访问
* @throws SQLException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws SQLException, ClassNotFoundException {
// 1:加载mysql驱动 Driver.class
//DriverManager.registerDriver(new com.mysql.jdbc.Driver());//不建议这样写
Class.forName("com.mysql.jdbc.Driver");//加载Driver.class
//2:创建和数据库的连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1","root", "root");
//3:创建执行sql语句的对象
Statement st = conn.createStatement();
//4:使用Statement对象执行sql语句
ResultSet rs = st.executeQuery("select * from emp");
//5:遍历结果集
while(rs.next())
{
Object s1 = rs.getObject(1);
Object s2 = rs.getObject(2);
Object s3 = rs.getObject(3);
Object s4 = rs.getObject(4);
Object s5 = rs.getObject(5);
System.out.println(s1+" "+s1+" "+s3+" "+s4+" "+s5);
}
//6:关闭资源
rs.close();
st.close();
conn.close();
}
}
<pre name="code" class="java">package com.qianfeng.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class Demo2 {
/**
* 使用jdbc实现数据库的访问
* @throws SQLException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws SQLException, ClassNotFoundException {
// 1:加载mysql驱动 Driver.class
Class.forName("com.mysql.jdbc.Driver");//加载Driver.class
//2:创建和数据库的连接
//三个参数:
//Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1","root", "root");
//2个参数
// Properties pro = new Properties();
// pro.setProperty("user", "root");
// pro.setProperty("password", "root");
// Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1", pro);
//1个参数
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1?user=root&password=root");
//3:创建执行sql语句的对象
Statement st = conn.createStatement();//连接对象负责创建Statement对象
//4:使用Statement对象执行sql语句
ResultSet rs = st.executeQuery("select * from emp");
//5:遍历结果集
while(rs.next())
{
Object s1 = rs.getObject(1);
Object s2 = rs.getObject(2);
Object s3 = rs.getObject(3);
Object s4 = rs.getObject(4);
Object s5 = rs.getObject(5);
System.out.println(s1+" "+s1+" "+s3+" "+s4+" "+s5);
}
//6:关闭资源
rs.close();
st.close();
conn.close();
}
}
package com.qianfeng.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Demo3 {
/**
* 使用jdbc实现数据库的访问
* @throws SQLException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws SQLException, ClassNotFoundException {
// 1:加载mysql驱动 Driver.class
Class.forName("com.mysql.jdbc.Driver");//加载Driver.class
//2:创建和数据库的连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1","root", "root");
//3:创建执行sql语句的对象
Statement st = conn.createStatement();
//4:使用Statement对象执行sql语句
//向表中插入一条记录,返回值是受影响的行数
// int num = st.executeUpdate("INSERT INTO a VALUES('lisi',60)");
// if(num>0)
// System.out.println("数据插入成功");
//修改表中一条记录
// int num = st.executeUpdate("UPDATE a SET score=99 WHERE NAME='lisi'");
// if(num>0)
// System.out.println("数据修改成功");
//删除表中一条记录
int num = st.executeUpdate("delete from a where name='lisi'");
if(num>0)
System.out.println("数据删除成功");
//6:关闭资源
st.close();
conn.close();
}
}
package com.qianfeng.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.qianfeng.entity.Emp;
public class Demo4 {
/**
* 使用jdbc实现数据库的访问
* @throws SQLException
* @throws SQLException
* @throws ClassNotFoundException
*/
public static void main(String[] args) {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
// 1:加载mysql驱动 Driver.class
//DriverManager.registerDriver(new com.mysql.jdbc.Driver());//不建议这样写
Class.forName("com.mysql.jdbc.Driver");//加载Driver.class
//2:创建和数据库的连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/db1","root", "root");
//3:创建执行sql语句的对象
st = conn.createStatement();
//4:使用Statement对象执行sql语句
rs = st.executeQuery("select job,mgr,empno,ename,hiredate from emp");
List<Emp> list = new ArrayList<Emp>();
//5:遍历结果集
Emp emp = null;//5555
while(rs.next())
{
emp = new Emp();
int empno =rs.getInt("empno");
String ename = rs.getString("ename");
String job = rs.getString("job");
int mgr = rs.getInt("mgr");
Date date = rs.getDate("hiredate");
emp.setEmpno(empno);
emp.setEname(ename);
emp.setJob(job);
emp.setMgr(mgr);
emp.setHiredate(date);
list.add(emp);//5555 5555 5555
}
for(Emp em:list)
{
System.out.println(em);
}
//6:关闭资源
rs.close();
st.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
finally{
if(rs!=null)
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
if(st!=null)
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
if(conn!=null)
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">这四个小程序基本上涵盖了JDBC的大部分语法了,更深的一些东西就需要自己去亲身尝试了</span>