JDBC MYSQL 学习笔记(一) JDBC 基本使用

1、JDBC简介

SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC。JDBC全称为:Java Data Base Connectivity(java数据库连接),它主要由接口组成。组成JDBC的2个包:java.sql javax.sql

开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动)。

2、使用JDBC的步骤——第一个JDBC程序

需求:编程从user表中读取数据,并打印在命令行窗口中。 (1) 搭建实验环境 : a、在mysql中创建一个数据库,并创建user表,同时插入数据到表中。 b、新建一个Java工程,并导入数据库驱动。 (2) 编写程序,在程序中加载数据库驱动

a、方式一:DriverManager. registerDriver(Driver driver)b、方式二:Class.forName(“com.mysql.jdbc.Driver”); (3) 建立连接(Connection) Connection conn = DriverManager.getConnection(url,user,pass); (4) 创建用于向数据库发送SQL的Statement对象,并发送sqlStatement st = conn.createStatement();ResultSet rs = st.excuteQuery(sql); (5) 从代表结果集的ResultSet中取出数据,打印到命令行窗口 (6) 断开与数据库的连接,并释放相关资源

dome:

</pre><p><pre name="code" class="java">import java.sql.*;import com.sun.org.apache.regexp.internal.recompile;public class dome {/** * @param args */public static void main(String[] args) throws SQLException,ClassNotFoundException{// TODO Auto-generated method stubString url = "jdbc:mysql://localhost:3306/skyfin";String username = "root";String password = "skyfin";//1.加载驱动//DriverManager.registerDriver(new com.mysql.jdbc.Driver());Class.forName("com.mysql.jdbc.Driver");//2获取连接Connection connection = DriverManager.getConnection(url,username,password);//3.获取向数据库发sql语句的statament对象Statement stat = connection.createStatement();//4.向数据库发送sql,获取数据库返回的结果集ResultSet rsResultSet = stat.executeQuery("select * from user");//5.从结果集中获取数据while (rsResultSet.next()) {System.out.println("id = "+ rsResultSet.getObject("id"));System.out.println("name = "+ rsResultSet.getObject("name"));System.out.println("password = "+ rsResultSet.getObject("password"));} //6.释放资源(释放链接)rsResultSet.close();stat.close();connection.close();}}3、DriverManager ——加载数据库驱动

Jdbc程序中的DriverManager用于加载驱动,并创建与数据库的链接,这个API的常用方法:

DriverManager.registerDriver(new Driver());DriverManager.getConnection(url, user, password);注意:在实际开发中并不推荐采用registerDriver方法注册驱动。原因有二:一、查看Driver的源代码可以看到,如果采用此种方式,会导致驱动程序注册两次,也就是在内存中会有两个Driver对象。二、程序依赖mysql的api,脱离mysql的jar包,程序将无法编译,将来程序切换底层数据库将会非常麻烦。推荐方式:Class.forName(“com.mysql.jdbc.Driver”);采用此种方式不会导致驱动对象在内存中重复出现,并且采用此种方式,程序仅仅只需要一个字符串,不需要依赖具体的驱动,使程序的灵活性更高。 同样,在开发中也不建议采用具体的驱动类型指向getConnection方法返回的connection对象。4、数据库URL ——标识数据库的位置

URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库,

MySql 数据库的URL写法为: jdbc:mysql:[]//localhost:3306/test ?参数名:参数值

常用数据库URL地址的写法:Oracle:jdbc:oracle:thin:@localhost:1521:skyfinSqlServer:jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=skyfinMySql:jdbc:mysql://localhost:3306/skyfinMysql的url地址的简写形式: jdbc:mysql://skyfin常用属性:useUnicode=true&characterEncoding=UTF-8

jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk&autoReconnect=true&failOverReadOnly5、Connection ——代表数据库的链接 Jdbc程序中的Connection,它用于代表数据库的链接。Connection 是数据库编程中最重要的一个对象,客户端与数据库所有交互都是通过Connection 对象完成的,这个对象的常用方法: (1) createStatement():创建向数据库发送sql的statement对象。 (2) prepareStatement(sql) :创建向数据库发送预编译sql的PrepareSatement对象。 (3) prepareCall(sql):创建执行存储过程的callableStatement对象。 (4) setAutoCommit(boolean autoCommit):设置事务是否自动提交。 (5) commit() :在链接上提交事务。 (6) rollback() :在此链接上回滚事务。6、Statement ——向数据库发送SQL语句 Jdbc程序中的Statement对象用于向数据库发送SQL语句, Statement对象常用方法: (1) executeQuery(String sql) :用于向数据库发送查询语句。 (2) executeUpdate(String sql):用于向数据库发送insert、update或delete语句 (3) execute(String sql):用于向数据库发送任意sql语句 (4) addBatch(String sql) :把多条sql语句放到一个批处理中。 (5) executeBatch():向数据库发送一批sql语句执行。 (6) clearBatch() :清空此 Statement 对象的当前 SQL 命令列表。7、ResultSet ——代表Sql语句的执行结果 Jdbc程序中的ResultSet用于代表Sql语句的执行结果。Resultset封装执行结果时,采用的类似于表格的方式。ResultSet 对象维护了一个指向表格数据行的游标,,初始的时候,游标在第一行之前,调用ResultSet.next() 方法,可以使游标指向具体的数据行,进行调用方法获取该行的数据。 (1) ResultSet提供了对结果集进行滚动的方法: a、next():移动到下一行 b、Previous():移动到前一行 c、absolute(int row):移动到指定行 d、beforeFirst():移动resultSet的最前面。 e、 afterLast() :移动到resultSet的最后面。 (2) ResultSet既然用于封装执行结果的,所以该对象提供了用于获取数据的get方法: 获取任意类型的数据 getObject(int index) getObject(string columnName) 获取指定类型的数据,例如: getString(int index) getString(String columnName) 其他获取指定类型数据的方法见下表:常用数据类型转换表:力微休负重,言轻莫劝人。

JDBC MYSQL 学习笔记(一) JDBC 基本使用

相关文章:

你感兴趣的文章:

标签云: