在笔试或者技术面试中,经常会遇到数据库的一些连接操作。面试官会直接问数据库的连接的过程,甚至会问到PreparentStatement和Statement的区别。为了更巩固知识,在这里将数据库的一些连接操作写出如下。
1 首先要在数据库中创建一张测试表,如:
create table dept(
id varchar(50) primary key,
name varchar(50) ,
loc varchar(50)
);
插入几条测试数据:
insert into dept(id,name,loc) values('2','wukangjie','beijing');
...
2 新建工程,将驱动包放入工程中
3 编写测试类
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* 数据库连接操作
* 1 加载驱动
* 2 获取连接
* 3 通过获取的连接,创建PreparedStatement预编译类
* 4 写sql
* 6 执行sql返回结果集
* 7 遍历结果集,提取数据
* 8 关闭连接
* @author wkj
*
*/
public class DBUtil {
private static String url = null;
private static String password = null;
private static String username = null;
static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection (){
Connection conn = null;
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) throws SQLException {
System.out.println(getConnection());
Connection conn = getConnection();
String sql = "select * from dept";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()){
String id = rs.getString("id");
String name = rs.getString("name");
String loc = rs.getString("loc");
System.out.println(id+" "+name+" "+loc);
}
rs.close();
ps.close();
conn.close();
}
}
执行测试