今天做的事
1 .学习了JDBC编程
DriverManger 是用于管理JDBC驱动的服务类
//该方法获得url对应的数据库连接
public static synchronized Connection getConnection(String url, String user, String pass) throws SQLException
Connection 代表数据库连接对象,每一个Connection代表一个物理连接会话,该接口的常用方法有三个:
//该方法返回一个Statement对象
Statement createStatement() throws SQLException
//返回预编译的Statment对象,即将SQL语句提交到数据库进行编译
PreparedStatement preparedStatement(String url) throws SQLExcption
之后获得了Statement之后才能执行SQL语句。
Statement是用于执行SQL语句的工具接口,该对象既可用于执行DDL、DCL语句,也可用于执行DML语句,还可用于执行SQL查询(返回结果集)。
PreparedStatement是预编译的Statement对象,是Statement是子接口,它允许数据库预编译SQL语句。
遇到的问题
1.在练习使用getconnection方法时出现错误:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TempDemo {
public static void main(String[] args) {
//声明Connection对象
Connection con;
//驱动程序名
String driver = "com.mysql.jdbc.Driver";
//URL指向要访问的数据库名mydata
String url = "jdbc:mysql://localhost:3306/select_test";
//MySQL配置时的用户名
String user = "root";
//MySQL配置时的密码
String password = "root123";
//遍历查询结果集
try {
//加载驱动程序
Class.forName(driver);
//1.getConnection()方法,连接MySQL数据库!!
con = DriverManager.getConnection(url,user,password);
if(!con.isClosed())
System.out.println("Succeeded connecting to the Database!");
//2.创建statement类对象,用来执行SQL语句!!
Statement statement = con.createStatement();
//要执行的SQL语句
String sql = "select * from student_table";
//3.ResultSet类,用来存放获取的结果集!!
ResultSet rs = statement.executeQuery(sql);
System.out.println("-----------------");
System.out.println("执行结果如下所示:");
System.out.println("-----------------");
System.out.println("姓名" + "\t" + "职称");
System.out.println("-----------------");
String job = null;
String id = null;
while(rs.next()){
//获取stuname这列数据
job = rs.getString("student_id");
//获取stuid这列数据
id = rs.getString("student_name");
//输出结果
System.out.println(id + "\t" + job);
}
rs.close();
con.close();
} catch(ClassNotFoundException e) {
//数据库驱动类异常处理
System.out.println("Sorry,can`t find the Driver!");
e.printStackTrace();
} catch(SQLException e) {
//数据库连接失败异常处理
e.printStackTrace();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
System.out.println("数据库数据成功获取!!");
}
}
}
解决办法:导入的包导入错误,Statement应该从java.sql包里面导入而不是从java.beans包里面导入。重新导入之后就解决了。
2.依然是上面的代码,使用editplus运行之后报错:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccess