MySQL-JDBC
JDBC是一种java数据库连接Api接口。JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果
接下来便是开发步骤:
1、 创建项目
2、 右键项目,添加mysql-connector-java-5.1.29-bin.jar包。可以从MySQL官网下载mysql-connector-java-5.1.29.zip,解压后直接获得。
3、 创建数据库。现在已经假定各位已经创建好自己的数据库了。
4、 进行编程。编程完成之后,右键运行即可。
下面探讨一下核心代码:
1、 连接数据库
Connection conn = null; String dburl = "jdbc:mysql://localhost:3306/cyw"; String username = "cyw"; String password = ""; String driver = "com.mysql.jdbc.Driver"; //先动态加载驱动,然后进行实例化 Class.forName(driver).newInstance(); //链接数据库 conn = DriverManager.getConnection(dburl, username, password);
2、 连结对象创建成功后,即可通过连结对象创建 statement 对象,以执行 SQL 语句。我们可将要执行的 SQL 语句分为两类,一类为需要返回结果表的 select 语句;一类为执行 insert、 update、 delete 操作的语句,因用程序只需要这类语句返回操作所生效的行数即可;对于这两种 SQL 操作, Statement 在执行时可采用不同的方法,如是 select 语句,则使用 executeQuery(sql)方法返回一个 ResultSet 对象,其中包含查询到的数据;如是另外三种,则使用 executeUpdate(sql)方法,返回一个 int 型值,代表语句所影响的行数。
关于查询方式,有三种,分别是statement、prepareStatement、CallableStatement。其中PrepareStatement是Statement的子类、CallableStatement是PrepareStatement的子类。
Statement,又叫做拼装SQL语句。可以直接从conn链接对象获得,直接编译执行。
PrepareStatement,又称预编译SQl语句。顾名思义,有一个预编译过程。数据库可以先将这些格式固定的SQL语句进行编译,存入数据库的缓存池里面。此时,并没与执行编译后的SQL语句,等到我们需要的时候,我们为?占位符赋值之后,就不用再次进行编译,而是直接运行。这是一种延迟加载的机制。能够有效的提高数据库的效率(毕竟只有在需要的时候才会进行运行,节省了资源),当然也克服了Statement的SQL注入风险。
CallableStatement是关于存储过程的,可下回分解。
//查询 public void query(String table, String colName, String temp) throws SQLException{ String sql = "select * from "+table+" where "+colName+"=?"; //一般使用预编译SQL语句, PreparedStatement ps = conn.prepareStatement(sql); //为每一个占位符?设置参数 ps.setString(1, temp); ResultSet rs = ps.executeQuery(); //进行显示 while(rs.next()){ int id = rs.getInt("id"); System.out.println("id:"+id); } } //添加 publicvoid add(String table) throws SQLException{ String sql = null; if("datatable".equals(table)){ sql = "insert into "+table+"(AT_id,type_id,data) values (?,?,?)"; } PreparedStatement ps = conn.prepareStatement(sql); ps.setInt(1, 11); ps.setInt(2, 2); ps.setInt(3, 66); int count = ps.executeUpdate(); if(count>0){ System.out.println("插入数据成功!影响的记录条数是"+count); }else{ System.out.println("插入数据失败!"); } }
其他的类似。
3、 结果集提取
如以上例子。
4、 批处理
Statement提供了一个 addBatch(String sql)的方法将sql 加入批处理; PreparedStatement 对象的 addBatch()方法直接将预编译的 sql 加入批处理,最后可通过 executeBatch()方法一次性执行所有 sql。注意,这里 executeBatch()方法返回为一个 int[],数组的第 i 个元素的值代表加入批处理的第 i 条 sql 所影响的行数。
//测试批量处理 publicvoid bacthInsert(){ try { String sql = "insert into datatable(AT_id,type_id,data) values(?,?,?)"; PreparedStatement ps = conn.prepareStatement(sql); for(int i=0;i<10;i++){ ps.setInt(1, i); ps.setInt(2, i); ps.setInt(3, i); ps.addBatch(); } int[] result = ps.executeBatch(); for(int i : result) System.out.println(i); } catch (SQLException e) { System.out.println("批量处理失败"); e.printStackTrace(); } }
5、 事务
事务是指一个单元的工作,要么全部执行,要么就是全部不执行,非0即1.
Mysql可以通过手动提交进入事务机制。
详细以后再讲,以下是核心代码:
Conn.setAutoCommit(); //false,设置为手动提交,否则为自动提交
Conn.rollback() //回滚到起始状态。
关于事务级别:
Conn.setTransactionIsolation(事务级别常量);
Conn.getTransactionIsolation();
关于SavePoint接口(类似于存档点):
Java.sql.Savepoint txpoit = conn.setSavePoint(String SavePoint的名字);
Conn.rollback(txpoint); //回滚到上一个SavePoint
Conn.releaseSavePoint(String SavePoint的名字); //释放SavePoint
6、 数据库连接池
为了减少运行过程中,数据库频繁创建、销毁连接,而消耗的资源,设立了数据库连接池,相当于一个数组或者集合类,存放了一些数据库连接。当需要时,便可以从连接池取得连接,不需要时便返回到连接池里面。
Connection 的建立较之线程更为费时,不但要建立底层的 TCP/IP 链路,还要通过复杂的数据库安全认证计算,这就有必要采用“连结池”技术。
网上有很多关于数据库连接池的开源实现,比如DBCP、Hibernate的C3P0组件等等。
7、 元数据查询
元数据,可以理解为数据的数据,如数据库版本号、表的列数,列名,某列数据类型等, JDBC 中可以得到两种元数据类型,一种是通过 Connection 对象的 getMetaData()方法得到 DatabaseMetaData对象用来取得数据库的相关信息;另一种是通过 ResultSet 对象的 getMetaData()方法得得结果集的元数据 ResultSetMetaData 对象用来取得结果集,如列个数等相关信息。
核心代码:
//取得数据库的元数据对象
DatabaseMetaData dmd=conn.getMetaData();
String dbName=dmd.getDatabaseProductName();
String dbVersion= dmd.getDatabaseProductVersion();
//得到结果集的元数据对象
ResultSetMetaData rmd=rs.getMetaData();
//结果集有几列
int columCount=rmd.getColumnCount();
//打印出每一列的标题
for(int i=1;i<=columCount;i++){
System.out.print(rmd.getColumnName(i)+"\t");
}
相关推荐
本资源“hibernate+junit+mysql-jdbc开发核心jar包三合一”显然是为了支持SSH框架中的Hibernate部分,并结合JUnit进行测试以及MySQL数据库连接。现在我们将详细探讨这三个组件及其在Java开发中的应用。 **Hibernate...
MySQL-JDBC是Java开发者在应用程序中与MySQL数据库交互的标准方式。JDBC(Java Database Connectivity)是Java平台中用于规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。本...
mysql 连接驱动。eg:You need to download the JDBC Driver of your database to the Kylin server. The JDBC driver jar should be added to $KYLIN_HOME/ext and $SQOOP_HOME/lib folder.
MySQL-JDBC驱动包是Java应用程序连接MySQL数据库的关键组件。它实现了Java Database Connectivity (JDBC) API,使得Java开发者能够通过标准的Java代码与MySQL数据库进行交互。在本压缩包中,包含了两个不同版本的...
MySQL5.5服务端+MySQL-Front客户端+MySQL-JDBC驱动.zip MySQL5.5服务端+MySQL-Front客户端+MySQL-JDBC驱动.zip MySQL5.5服务端+MySQL-Front客户端+MySQL-JDBC驱动.zip
MySQL-JDBC jar包是Java应用程序连接到MySQL数据库的关键组件,它是Java Database Connectivity (JDBC) 驱动程序的一部分。JDBC驱动程序允许Java代码与各种数据库进行交互,包括MySQL。在本例中,我们讨论的是MySQL ...
在给定的压缩包文件"mysql-jdbc-5.1-6.0jar包综合"中,包含了多个不同版本的MySQL JDBC驱动,包括5.1系列的5.1.5、5.1.8、5.1.10、5.1.18、5.1.34和5.1.38,以及5.6版本和6.0.3版本。这些不同版本的驱动适用于不同的...
MySQL-JDBC驱动包是Java开发者在使用MySQL数据库时不可或缺的一部分,它允许Java应用程序通过JDBC(Java Database Connectivity)接口与MySQL数据库进行通信。"mysql-jdbc_jb51.rar"这个压缩包包含了必要的组件,...
MySQL-JDBC驱动,也称为Connector/J,是MySQL官方提供的Java驱动程序,使得Java应用程序能够通过JDBC接口与MySQL数据库进行连接、查询和操作数据。它遵循JDBC规范,提供了多种类型的驱动,包括Type 1、Type 2、Type ...
本压缩包包含了适用于不同数据库系统的JDBC驱动,包括sqlserver2005-jdbc驱动、sqlserver2008-jdbc驱动、mysql-jdbc驱动以及oracle驱动,这使得开发者能够方便地与这些数据库进行通信。 1. SQL Server JDBC驱动: ...
Java MySQL JDBC是Java编程语言与MySQL数据库之间交互的重要桥梁,它允许Java应用程序通过Java Database Connectivity (JDBC) API连接并操作MySQL数据库。JDBC是一种Java API,由Sun Microsystems(现为Oracle公司)...
MySQL-JDBC驱动架包是Java开发者用来与MySQL数据库进行交互的重要工具。JDBC(Java Database Connectivity)是Java语言中用于规范客户端程序如何访问数据库的应用编程接口,它为开发者提供了标准的API,使得开发者...
这个“jdbc大全”包含了三个重要的JDBC驱动包:ojdbc-1.4.jar(Oracle JDBC驱动),mysql-jdbc-java-5.1.7.rar(MySQL JDBC驱动),以及sql2k-jdbc.rar(SQL Server 2000 JDBC驱动)。 **1. Oracle JDBC驱动 (ojdbc...
MySQL JDBC驱动,全称为MySQL Java Database Connectivity Driver,是Java开发者用来连接MySQL数据库的重要工具。它遵循Java Database Connectivity (JDBC) API规范,使得Java应用程序能够与MySQL数据库进行交互,...
"mysql-jdbc.zip"这个压缩包就是提供了MySQL的Java JDBC驱动程序,使得Java应用程序能够连接并操作MySQL数据库。 在这个压缩包里有两个版本的驱动文件:"mysql-connector-java-8.0.13.jar"和"mysql-connector-java-...
MySQL-JDBC驱动包是Java应用程序连接到MySQL数据库的关键组件,它是Java Database Connectivity (JDBC) API的一部分,允许Java开发者在Java程序中执行SQL语句,从而实现对MySQL数据库的读写操作。MySQL-Connector/J...
mysql-jdbc6下载