JDBC为JAVA的核心技术之一(以mysql为例)
1.JDBC步骤
(1)加载驱动
(2)建立连接
(3)创建运行的sql语句
(4)执行语句
(5)处理结果集
(6)关闭连接
2.具体操作
(1)加载驱动
Class.forName(“com.mysql.jdbc.Driver”);
(2)建立连接
通过Connection建立连接,Connection是一个接口类。其功能是与数据库进行连接(会话)。
建立Connection接口类对象:
Connection conn =DriverManager.getConnection(url, user, password);
当中URL的格式要求为:
JDBC:子协议:子名称//主机名:port/数据库名?属性名=属性值&…
如:"jdbc:mysql://localhost:3306/test“
user即为登录数据库的username,如root
password即为登录数据库的密码,为空就填””
(3)创建运行时的sql语句
运行对象Statement负责运行SQL语句。由Connection对象产生。
Statement st = connection.createStatement();
Statement接口类还派生出接口类PreparedStatement,这两个接口类对象为我们提供了更加强大的数据访问功能。
PreparedStatement能够对SQL语句进行预编译,这样防止了 SQL注入 提高了安全性。
PreparedStatement ps=connection.prepareStatement( "update user set id=? where username=?”);
————sql语句中庸 ? 作为通配符,变量值通过参数设入:ps.setObject(1, object);
而且预编译结果能够存储在PreparedStatement对象中。当多次运行SQL语句时能够提高效率。
作为Statement的子类,PreparedStatement继承了Statement的全部函数。
(4)运行sql语句
运行对象Statement 或 PreparedStatement 提供两个经常使用的方法来运行SQL语句。
executeQuery(String sql),该方法用于运行实现查询功能的sql语句。返回类型为ResultSet(结果集)。
如:ResultSet rs =st.executeQuery(sql);
executeUpdate(String sql),该方法用于运行实现增、删、改功能的sql语句,返回类型为int,即受影响的行数。
如:int flag = st.executeUpdate(sql);
(5)处理结果集
ResultSet对象
ResultSet对象负责保存Statement运行后所产生的查询结果。
结果集ResultSet是通过游标来操作的。
游标就是一个可控制的、能够指向随意一条记录的指针。
有了这个指针我们就能轻易地指出我们要对结果集中的哪一条记录进行改动、删除,或者要在哪一条记录之前插入数据。一个结果集对象中仅仅包括一个游标。
另外,借助ResultSetMetaData ,可以将数据表的结构信息都查出来。
ResultSetMetaData rsmd= resultSet.getMetaData();
(6)关闭连接
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//JDBC实操
Class.forName("com.mysql.jdbc.Driver");//加载驱动
/*
* 建立连接
*/
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/vxiao","root","admin");
/*
* 创建运行的sql语句
*/
PreparedStatement ps=conn.prepareStatement("select * from user");
/*
* 执行sql语句
*/
ResultSet rs=ps.executeQuery();
//处理结果集
while(rs.next()) {
System.out.println(rs);
}
//关闭连接
if(rs!=null) rs.close();
if(ps!=null) ps.close();
if(conn!=null) conn.close();
}
3.JDBC需要手动管理,可以学习一下JDBC工具类 C3P0,或JDBCTemplete
欢迎关注公众号:
如果感觉文章内容对您有用,记得点赞吆!