今天说说使用JDBC实现数据库访问
JDBC规范(掌握四个核心对象):
DriverManager:用于注册驱动
Connection: 表示与数据库创建的连接
Statement: 操作数据库sql语句的对象
ResultSet: 结果集或一张虚拟表
具体步骤:
第一步:加载mysql驱动Driver.class
<span style="font-size:14px;">//第一种方法:使用DriverManager的registerManager方法</span>
<span style="font-size:14px;">1.DriverManager.registerManager(new com.mysql.jdbc.Driver)</span>
<span style="font-size:14px;">//第一种方法会导致驱动被注册两次,并且强烈依赖数据库的驱动</span>
<span style="font-size:14px;">//第二种方法:使用反射</span>
<p><span style="font-family:Times New Roman;font-size:14px;">2.Class.forName("com.mysql.jdbc.Driver");</span></p>
<p><span style="font-size:14px;">整体的代码</span></p><p><span style="font-size:14px;">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;</span></p><p><span style="font-size:14px;">import com.qianfeng.entity.Emp;</span></p><p><span style="font-size:14px;">public class Demo4 {</span></p><p><span style="font-size:14px;"> /**
* 使用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:创建和数据库的连接</span></p><p><span style="font-size:14px;"> //3个参数
conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/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"); </span></p><p><span style="font-size:14px;"></span> </p><p>
<span style="font-size:14px;"> //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></p><p><span style="font-size:14px;">}</span></p>