admin 管理员组文章数量: 1086019
JDBC编程的六个步骤以及使用示例(详细)
JDBC编程的六个步骤
1.注册驱动:通知Java程序我们要连接的是哪个品牌的数据库
2.获取数据库连接:Java进程和Mysql进程之间的通道开启了
3.获取数据库操作对象:这个对象是用来执行sql语句的
4.执行SQL语句:对数据库进行CRUD(增删改查)操作
5.处理查询结果集:如果第四步有select语句才有这一步
6.释放资源:关闭所有资源
使用示例
例1:不带处理查询结果集的JDBC
package com.xiaoma.JDBC;import java.sql.*;public class TestJDBC {public static void main(String[] args) throws SQLException {//1.注册驱动com.mysql.jdbc.Driver driver=new com.mysql.jdbc.Driver();DriverManager.registerDriver(driver);//2.获取数据库连接对象String url="jdbc:mysql://127.0.0.1:3306/jdbc?useUnicode=true&characterEncoding=utf-8";String username="root";String password="123456";Connection conn=DriverManager.getConnection(url,username,password);System.out.println(conn);//3.获取数据库操作对象(通过一个Connection连接对象可以拿到多个操作对象)Statement statement = conn.createStatement();//4.执行sql语句(这里以插入和删除为例,其余同理,前提是要会写sql语句)//String InsertSql="insert into people(name,age,address) values('小马',18,'山东省')";String DeleteSql="delete from people where name='小马'";//这个executeUpdate方法专门用来执行sql的增删改查语句的,其中返回值为影响力数据库中的数据条数,也就是影响力几行int i = statement.executeUpdate(DeleteSql);System.out.println(i);//5.释放资源,先释放statement再释放connectionif (statement != null) {statement.close();}if (conn != null){conn.close();}}
}
例2:带处理查询结果集的JDBC
package com.xiaoma.JDBC;import java.sql.*;public class TestJDBC02 {public static void main(String[] args) throws SQLException {//1.注册驱动com.mysql.jdbc.Driver driver=new com.mysql.jdbc.Driver();DriverManager.registerDriver(driver);//2.获取数据库连接对象String url="jdbc:mysql://127.0.0.1:3306/jdbc?useUnicode=true&characterEncoding=utf-8";String username="root";String password="123456";Connection conn=DriverManager.getConnection(url,username,password);System.out.println(conn);//3.获取数据库操作对象(通过一个Connection连接对象可以拿到多个操作对象)Statement statement = conn.createStatement();//4.执行sql语句(这里以插入和删除为例,其余同理,前提是要会写sql语句)String SeleteSql="select * from people";//这个executeUpdate方法专门用来执行sql的增删改查语句的,其中返回值为影响力数据库中的数据条数,也就是影响力几行ResultSet resultSet = statement.executeQuery(SeleteSql);//5.处理查询结果集while(resultSet.next()){//这个getString()方法是不管数据库中的值是什么类型的,他都会以String类型返回//getString()是通过下标取值的,默认都是以字符串类型取出,可以通过相应类型的get方法取出特定类型的值System.out.println(resultSet.getString(1));System.out.println(resultSet.getString(2));System.out.println(resultSet.getString(3));System.out.println(resultSet.getString(4));}//6.释放资源,先释放statement再释放connectionif (statement != null) {statement.close();}if (conn != null){conn.close();}if(resultSet!=null){resultSet.close();}}
}
例3:将数据库连接信息写到properties配置文件中,通过读取properties配置文件连接数据库,进行查询(做开发基本上都用这种方式)
package com.xiaoma.JDBC;import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
import java.util.ResourceBundle;//读取配置文件
public class TestJDBC03 {public static void main(String[] args) throws SQLException, IOException {//获取配置文件数据InputStream is=TestJDBC03.class.getClassLoader().getResourceAsStream("db.properties");Properties pro=new Properties();pro.load(is);String username= pro.getProperty("username");String password=pro.getProperty("password");String url=pro.getProperty("url");//1.注册驱动com.mysql.jdbc.Driver driver=new com.mysql.jdbc.Driver();//2.获取数据库连接对象Connection conn=DriverManager.getConnection(url,username,password);System.out.println(conn);//3.获取数据库操作对象(通过一个Connection连接对象可以拿到多个操作对象)Statement statement = conn.createStatement();//4.执行sql语句(这里以插入和删除为例,其余同理,前提是要会写sql语句)String SeleteSql="select * from people";//这个executeUpdate方法专门用来执行sql的增删改查语句的,其中返回值为影响力数据库中的数据条数,也就是影响力几行ResultSet resultSet = statement.executeQuery(SeleteSql);//5.处理查询结果集while(resultSet.next()){//这个getString()方法是不管数据库中的值是什么类型的,他都会以String类型返回//getString()是通过下标取值的,默认都是以字符串类型取出,可以通过相应类型的get方法取出特定类型的值System.out.println(resultSet.getString(1));System.out.println(resultSet.getString(2));System.out.println(resultSet.getString(3));System.out.println(resultSet.getString(4));}//6.释放资源,先释放statement再释放connectionif (statement != null) {statement.close();}if (conn != null){conn.close();}if(resultSet!=null){resultSet.close();}}
}
本文标签: JDBC编程的六个步骤以及使用示例(详细)
版权声明:本文标题:JDBC编程的六个步骤以及使用示例(详细) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1686561155a10468.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论