JDBC连接数据库的步骤
注册驱动
Class.forName(“com.mysql.jdbc.Dirver”); 推荐使用这种方式,不会对具体的驱动类产生依赖。
DirverManager.registerDirver(com.mysql.jdbc.Driver);会造成DirverManager中产生两个一样的驱动,并会对具体的驱动类产生依赖
System.setProperty(“jdbc.dirvers”,”driver1:driver2”);虽然不会对具体的驱动类产生依赖,但是注册不太方便,很少使用
建立连接(Connecton)
Connection conn=DirverManager.getConnection(url.user,password);url格式:JDBC:子协议:子名称//主机名:端口/数据库名?属性名=属性值&... :jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8"; User passord可以用“属性名=属性值”方式告诉数据库 其他参数参加:useUnacode = true&characterEncoding=utf-8.
创建执行SQL的语句(Statement)
执行语句
处理执行结果(ResultSet)
释放资源
package cn.congxing.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JdbcTest {
public static void main(String[] args) {
//数据库连接对象
Connection connection =null;
//预编译statement
PreparedStatement preparedStatement=null;
//结果集
ResultSet resultSet= null;
String url="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8";
String username="root";
String password="123";
try {
//注册加载驱动
Class.forName("com.mysql.jdbc.Driver");
//获取连接
connection = DriverManager.getConnection(url, username, password);
//定义sql
String sql = "select * from user where username= ?";
//获取预处理statement
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, "王五");
//向数据库发出sql执行查询,查询出结果集
resultSet = preparedStatement.executeQuery();
//遍历查询结果集
while(resultSet.next()){
System.out.println(resultSet.getString("id")+"--"+resultSet.getString("username"));
}
} catch (Exception e) {
e.printStackTrace();
}finally{
//释放资源
if(resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(preparedStatement!=null){
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}