企业检索网站建设,一个完整网页的制作案例,wordpress脚底修改,官方网站侵权java连接mysql数据库都有固定的操作#xff0c;步骤如下#xff1a; 加载mysql驱动#xff0c;一般都是com.mysql.jdbc.Driver。提供JDBC连接的URL。 创建数据库的连接。要连接数据库#xff0c;需要向java.sql.DriverManager请求并获得Connection对象。 创建一个Statem…java连接mysql数据库都有固定的操作步骤如下 加载mysql驱动一般都是com.mysql.jdbc.Driver。提供JDBC连接的URL。 创建数据库的连接。要连接数据库需要向java.sql.DriverManager请求并获得Connection对象。 创建一个Statement。 要执行SQL语句必须获得java.sql.Statement实例Statement实例分为以下3种类型 1执行静态SQL语句。通常通过Statement实例实现。 2执行动态SQL语句。通常通过PreparedStatement实例实现常用。 3执行数据库存储过程。通常通过CallableStatement实例实现。 具体实现方式 Statement stmt con.createStatement() ; PreparedStatement pstmt con.prepareStatement(sql) ; CallableStatement cstmt con.prepareCall({CALL demoSp(? , ?)}) ; 执行SQL语句 Statement接口提供了三种执行SQL语句的方法executeQuery 、executeUpdate和execute 。 1ResultSet executeQuery(String sqlString)执行查询数据库的SQL语句返回一个结果集ResultSet对象。 2int executeUpdate(String sqlString)用于执行INSERT、UPDATE或DELETE语句以及SQL DDL语句如CREATE TABLE和DROP TABLE等 3execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。 具体实现方式 ResultSet rs stmt.executeQuery(SELECT * FROM ...) ; int rows stmt.executeUpdate(INSERT INTO ...) ; boolean flag stmt.execute(String sql) ; 处理结果 有两种情况 1执行更新返回的是本次操作影响到的记录数。 2执行查询返回的结果是一个ResultSet对象。 • ResultSet包含符合SQL语句中条件的所有行并且它通过一套get方法提供了对这些行中数据的访问。 • 使用结果集ResultSet对象的访问方法获取数据 while(rs.next()){ String name rs.getString(name) ; String psw rs.getString(1) ; // 此方法比较高效 } 列是从左到右编号的并且从列1开始 关闭JDBC对象 操作完成以后要把所有使用的JDBC对象全都关闭以释放JDBC资源关闭顺序和声明顺序相反 1关闭记录集 2关闭声明 3关闭连接对象 if(rs ! null){ // 关闭记录集 try{ rs.close() ; }catch(SQLException e){ e.printStackTrace() ; } } if(stmt ! null){ // 关闭声明 try{ stmt.close() ; }catch(SQLException e){ e.printStackTrace() ; } } if(conn ! null){ // 关闭连接对象 try{ conn.close() ; }catch(SQLException e){ e.printStackTrace() ; } } 请注意如果仅仅是创建一个数据库连接的话步骤4、5、6不是必要的。所以如果你是初学者只需要用前面的步骤测试数据库是否连接成功即可不要做过多的操作那样你就能发现其实JDBC连接数据库的方法其实并不难。但是当你操作完数据库请你记住关闭左右连接对象释放资源这不仅是个好习惯还能在你处理较大的数据量是避免不必要的麻烦。下面给出一个例子从mysql中取出数据并存到二维数组里数据用的是机器学习中的鸢尾花iris数据在机器学习数据集获取官方网站UCI中点击打开链接代码如下 DBConnection.java package db;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;/*** * 数据库连接类通用* * author lsy* */
public class DBConnection {public static final String driver com.mysql.jdbc.Driver;// 驱动public static final String url jdbc:mysql://localhost:3306/mydb;// mysql固定的URL:jdbc:mysql://localhost:3306/数据库名我这里是mydbpublic static final String user root;// 我的数据库的用户名public static final String pwd 123;// 我的数据库密码public static Connection dBConnection() {Connection con null;try {// 加载mysql驱动器Class.forName(driver);// 建立数据库连接con DriverManager.getConnection(url, user, pwd);} catch (ClassNotFoundException e) {System.out.println(加载驱动器失败);e.printStackTrace();} catch (SQLException e) {System.out.println(注册驱动器失败);e.printStackTrace();}return con;}
} SelectData.java package dao;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;import db.DBConnection;/*** * 取出数据存到二维数组里* * return flowers* author lsy*/
public class SelectData {public static final String SELECT select* from iris_PCA;public static final int k 4;// 4个属性public double[][] getFlowers() throws SQLException {Connection con DBConnection.dBConnection();ResultSet rs;// 创建结果集PreparedStatement pstmt con.prepareStatement(SELECT);// 创建一个PreparedStatement对象rs pstmt.executeQuery();// 为初始化数组的大小提供方便int sample 0;while (rs.next()) {sample;}double[][] flower new double[sample][k];rs pstmt.executeQuery();// 特别重要否则取到的全是0。因为执行上面的while(rs.next())后ResultSet对象的下标已指到0。// API当生成ResultSet对象的Statement对象关闭、重新执行或用来从多个结果的序列获取下一个结果时ResultSet对象将自动关闭。for (int i 0; rs.next(); i) {for (int j 0; j k; j) {flower[i][j] rs.getDouble(j 2);}}// 输出二维数组System.out.println(花花: );for (int i 0; i flower.length; i) {for (int j 0; j flower[0].length; j) {System.out.print(flower[i][j] \t);}System.out.println();}pstmt.close();rs.close();con.close();return flower;}public static void main(String[] args) {try {SelectData selectData new SelectData();selectData.getFlowers();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
} 输出结果 花花:
5.1 3.5 1.4 0.2
4.9 3.0 1.4 0.2
4.7 3.2 1.3 0.2
4.6 3.1 1.5 0.2
5.0 3.6 1.4 0.2
5.4 3.9 1.7 0.4
4.6 3.4 1.4 0.3
5.0 3.4 1.5 0.2
4.4 2.9 1.4 0.2
4.9 3.1 1.5 0.1
5.4 3.7 1.5 0.2
4.8 3.4 1.6 0.2
4.8 3.0 1.4 0.1
4.3 3.0 1.1 0.1
5.8 4.0 1.2 0.2
5.7 4.4 1.5 0.4
5.4 3.9 1.3 0.4
5.1 3.5 1.4 0.3
5.7 3.8 1.7 0.3
5.1 3.8 1.5 0.3
5.4 3.4 1.7 0.2
5.1 3.7 1.5 0.4
4.6 3.6 1.0 0.2
5.1 3.3 1.7 0.5
4.8 3.4 1.9 0.2
5.0 3.0 1.6 0.2
5.0 3.4 1.6 0.4
5.2 3.5 1.5 0.2
5.2 3.4 1.4 0.2
4.7 3.2 1.6 0.2
4.8 3.1 1.6 0.2
5.4 3.4 1.5 0.4
5.2 4.1 1.5 0.1
5.5 4.2 1.4 0.2
4.9 3.1 1.5 0.1
5.0 3.2 1.2 0.2
5.5 3.5 1.3 0.2
4.9 3.1 1.5 0.1
4.4 3.0 1.3 0.2
5.1 3.4 1.5 0.2
5.0 3.5 1.3 0.3
4.5 2.3 1.3 0.3
4.4 3.2 1.3 0.2
5.0 3.5 1.6 0.6
5.1 3.8 1.9 0.4
4.8 3.0 1.4 0.3
5.1 3.8 1.6 0.2
4.6 3.2 1.4 0.2
5.3 3.7 1.5 0.2
5.0 3.3 1.4 0.2
7.0 3.2 4.7 1.4
6.4 3.2 4.5 1.5
6.9 3.1 4.9 1.5
5.5 2.3 4.0 1.3
6.5 2.8 4.6 1.5
5.7 2.8 4.5 1.3
6.3 3.3 4.7 1.6
4.9 2.4 3.3 1.0
6.6 2.9 4.6 1.3
5.2 2.7 3.9 1.4
5.0 2.0 3.5 1.0
5.9 3.0 4.2 1.5
6.0 2.2 4.0 1.0
6.1 2.9 4.7 1.4
5.6 2.9 3.6 1.3
6.7 3.1 4.4 1.4
5.6 3.0 4.5 1.5
5.8 2.7 4.1 1.0
6.2 2.2 4.5 1.5
5.6 2.5 3.9 1.1
5.9 3.2 4.8 1.8
6.1 2.8 4.0 1.3
6.3 2.5 4.9 1.5
6.1 2.8 4.7 1.2
6.4 2.9 4.3 1.3
6.6 3.0 4.4 1.4
6.8 2.8 4.8 1.4
6.7 3.0 5.0 1.7
6.0 2.9 4.5 1.5
5.7 2.6 3.5 1.0
5.5 2.4 3.8 1.1
5.5 2.4 3.7 1.0
5.8 2.7 3.9 1.2
6.0 2.7 5.1 1.6
5.4 3.0 4.5 1.5
6.0 3.4 4.5 1.6
6.7 3.1 4.7 1.5
6.3 2.3 4.4 1.3
5.6 3.0 4.1 1.3
5.5 2.5 4.0 1.3
5.5 2.6 4.4 1.2
6.1 3.0 4.6 1.4
5.8 2.6 4.0 1.2
5.0 2.3 3.3 1.0
5.6 2.7 4.2 1.3
5.7 3.0 4.2 1.2
5.7 2.9 4.2 1.3
6.2 2.9 4.3 1.3
5.1 2.5 3.0 1.1
5.7 2.8 4.1 1.3
6.3 3.3 6.0 2.5
5.8 2.7 5.1 1.9
7.1 3.0 5.9 2.1
6.3 2.9 5.6 1.8
6.5 3.0 5.8 2.2
7.6 3.0 6.6 2.1
4.9 2.5 4.5 1.7
7.3 2.9 6.3 1.8
6.7 2.5 5.8 1.8
7.2 3.6 6.1 2.5
6.5 3.2 5.1 2.0
6.4 2.7 5.3 1.9
6.8 3.0 5.5 2.1
5.7 2.5 5.0 2.0
5.8 2.8 5.1 2.4
6.4 3.2 5.3 2.3
6.5 3.0 5.5 1.8
7.7 3.8 6.7 2.2
7.7 2.6 6.9 2.3
6.0 2.2 5.0 1.5
6.9 3.2 5.7 2.3
5.6 2.8 4.9 2.0
7.7 2.8 6.7 2.0
6.3 2.7 4.9 1.8
6.7 3.3 5.7 2.1
7.2 3.2 6.0 1.8
6.2 2.8 4.8 1.8
6.1 3.0 4.9 1.8
6.4 2.8 5.6 2.1
7.2 3.0 5.8 1.6
7.4 2.8 6.1 1.9
7.9 3.8 6.4 2.0
6.4 2.8 5.6 2.2
6.3 2.8 5.1 1.5
6.1 2.6 5.6 1.4
7.7 3.0 6.1 2.3
6.3 3.4 5.6 2.4
6.4 3.1 5.5 1.8
6.0 3.0 4.8 1.8
6.9 3.1 5.4 2.1
6.7 3.1 5.6 2.4
6.9 3.1 5.1 2.3
5.8 2.7 5.1 1.9
6.8 3.2 5.9 2.3
6.7 3.3 5.7 2.5
6.7 3.0 5.2 2.3
6.3 2.5 5.0 1.9
6.5 3.0 5.2 2.0
6.2 3.4 5.4 2.3
5.9 3.0 5.1 1.8 写博经验尚浅欢迎各位多多指教。