`

JDBC MySQL 数据库相关操作

阅读更多
操作数据库基本代码:
 package cloudnote;

import java.sql.*;


public class DB {
	public static Connection getConn() {
		Connection conn = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection("jdbc:mysql://localhost/cloudnote?user=root&password=yingjun&characterEncoding=utf-8");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	/**
	 * 如果应用程序中的多次执行都要用到同一条sql语句,将使应用程序的效率明显降低,这时可以使用preparedStatement对象来解决。
	 * 此对象第一次执行的时候将sql语句传给数据库预编译,从而在以后执行这个sql语句时速度都能得到很大的提高。
	 * 建立的连接
	 * 要执行的sql语句
	 * @return
	 */
	public static PreparedStatement prepare(Connection conn,  String sql) {
		PreparedStatement pstmt = null; 
		try {
			if(conn != null) {
				pstmt = conn.prepareStatement(sql);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return pstmt;
	}
	//该对象能获取自动生成的键。给定常量告知驱动程序是否可以获取自动生成的键
	public static PreparedStatement prepare(Connection conn,  String sql, int autoGenereatedKeys) {
		PreparedStatement pstmt = null; 
		try {
			if(conn != null) {
				pstmt = conn.prepareStatement(sql, autoGenereatedKeys);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return pstmt;
	}
	
	public static Statement getStatement(Connection conn) {
		Statement stmt = null; 
		try {
			if(conn != null) {
				stmt = conn.createStatement();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return stmt;
	}
	

	
	public static ResultSet getResultSet(Statement stmt, String sql) {
		ResultSet rs = null;
		try {
			if(stmt != null) {
				rs = stmt.executeQuery(sql);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return rs;
	}
	
	
	public static void close(ResultSet rs,Statement stmt,Connection conn) {  
        try {   
	        	if(rs != null) {  
	                rs.close();  
	                rs = null;  
	            } 
	        	if(stmt != null) {  
	                stmt.close();  
	                stmt = null;  
	            }  
	            if(conn != null) {  
	                conn.close();  
	                conn = null;  
	            }  
          } catch (SQLException e) {  
            e.printStackTrace();  
        }  
    }  
      	
}
 
//修改数据(PrepareStatement) 
String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); 
Connection conn =DB.getConn(); 
String sql = "insert into note(`title`,`content`,`time`,`username`) values('"+title+"','"+content+"','"+time+"','"+username+"')"; 
PreparedStatement pstmt=DB.prepare(conn,sql);
pstmt.executeUpdate(); 
DB.close(null,pstmt,conn); 
//修改数据(Statement)
String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
Connection conn =DB.getConn(); 
String sql = "insert into note(`title`,`content`,`time`,`username`) values('"+title+"','"+content+"','"+time+"','"+username+"')"; 
Statement stmt=DB.getStatement(conn); 
stmt.executeUpdate(sql);
DB.close(null,stmt,conn);
//更新数据(PreparedStatement)
Connection conn =DB.getConn();
String sql="select * from note where usernmae='"+username+"'";
PreparedStatement pstmt=DB.prepare(conn,sql);
ResultSet rs=pstmt.executeQuery();
DB.close(rs,pstmt,conn);
//更新数据(PreparedStatement)
Connection conn =DB.getConn();
String sql="select * from note where usernmae='"+username+"'";
Statement stmt = DB.getStatement(conn);
ResultSet rs=stmt.executeQuery(sql);
DB.close(rs,stmt,conn);
 

preparedStatement和Statement 的区别:

1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程

2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。

3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得,   preparedstatement支持批处理,可以防止sql注入。

4.执行许多SQL语句的JDBC程序产生大量的Statement和PreparedStatement对象。通常认为PreparedStatement对象比Statement对象更有效,特别是如果带有不同参数的同一SQL语句被多次执行的时候。PreparedStatement对象允许数据库预编译SQL语句,这样在随后的运行中可以节省时间并增加代码的可读性。

分享到:
评论

相关推荐

    java 实现学生管理系统 JDBC +mysql数据库

    Java+JDBC +mysql数据库 实现学生的增删改查等功能 可以选择 不同的功能来实现 增删改查 Java+JDBC +mysql数据库 实现学生的增删改查等功能 Java+JDBC +mysql数据库 实现学生的增删改查等功能 Java+JDBC +mysql...

    实验3 JDBC操作数据库3

    1. **MySQL数据库**:实验中提到了使用MySQL作为关系型数据库管理系统,它是开源且广泛使用的数据库系统。你需要下载并安装MySQL,通过其自带的管理器或第三方工具(如Navicat、Workbench)来管理数据库。 2. **...

    JDBC数据库驱动MySql

    总结来说,"JDBC数据库驱动MySql"这个压缩包提供的驱动是Java与MySQL数据库交互的关键组件,通过它,开发者可以使用Java代码轻松地完成对MySQL数据库的各种操作,享受Java的跨平台优势和MySQL的高效性能。

    利用JDBC备份和还原MYSQL数据库

    利用JDBC连接数据库,不依耐mysql的shell命令, 适合b/s 服务器备份

    JDBC连接Mysql数据库

    本教程将详细介绍如何使用JDBC连接MySQL数据库,实现数据的增、删、改、查操作,这对于初学者来说是一个重要的学习起点。 首先,确保你的系统中已经安装了MySQL数据库并创建了一个数据库实例。接下来,你需要获取...

    mysql jdbc 驱动 适用于5.7及以上版本数据库

    mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上版本数据库 mysql jdbc 驱动 适用于5.7及以上...

    JDBC连接数据库测试

    JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试JDBC连接数据库测试...

    在Eclipse中用JDBC连接MySQL数据库!.txt

    通过以上步骤,我们可以在Eclipse环境中成功地使用JDBC连接MySQL数据库,并执行基本的操作。此外,还需注意保持软件版本的一致性,以及在网络环境下检查网络连接状态,避免因版本不匹配或网络问题导致的连接失败。

    JDBC实现MYSQL数据库迁徙

    本教程将专注于使用Java的JDBC(Java Database Connectivity)接口来实现MySQL数据库之间的迁移,以及分表数据的迁移。 首先,JDBC是Java语言访问数据库的标准API,它允许Java程序与各种数据库进行交互,包括MySQL...

    jdbc操作Mysql数据库demo

    **JDBC操作MySQL数据库基础教程** 在Java编程中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的一套标准API。它允许Java应用程序连接并执行SQL语句,实现数据的CRUD(Create、Read、Update、...

    android通过JDBC直接访问Mysql数据库

    ### Android通过JDBC直接访问MySQL数据库 #### 一、引言 随着移动应用开发的不断发展,Android应用程序常常需要与后端数据库进行交互以提供丰富的功能和服务。传统的Android应用与数据库的交互方式通常采用RESTful ...

    JDBC连接MySQL数据库的方法浅析.pdf

    【JDBC连接MySQL数据库的方法浅析】 JDBC(Java Database Connectivity)是Java语言中用于与关系型数据库交互的标准API,由Sun Microsystems(现为Oracle公司)制定。它为Java开发者提供了一个统一的接口,用于访问...

    PB通过JDBC连MYSQL教程

    本教程将深入探讨如何使用PB通过JDBC来连接MySQL数据库。 首先,我们需要确保已经安装了以下组件: 1. PowerBuilder版本支持JDBC连接(如PB 12.5或更高版本) 2. MySQL数据库服务器 3. MySQL JDBC驱动(也称为...

    JDBC连接MySQL数据库关键的四个步骤

    ### JDBC连接MySQL数据库关键的四个步骤 ...通过以上四个步骤,可以实现使用JDBC连接MySQL数据库的基本操作。在实际应用中,还需要考虑连接池管理、事务控制等方面的问题,以提高系统的稳定性和性能。

    JDBC连接Mysql数据库案例

    本案例将探讨如何使用JDBC连接MySQL数据库,并通过实际的代码示例讲解整个过程。我们将涉及以下知识点: 1. **JDBC驱动注册**: 在Java中,连接MySQL数据库首先需要加载并注册JDBC驱动。MySQL的JDBC驱动类是`...

    Jdbc数据库资源及MySQL数据库安装包

    总的来说,这个压缩包提供了一套完整的环境,帮助开发者或学生设置MySQL数据库,使用HeidiSQL进行管理,并通过JDBC在Java中进行数据库操作。这涵盖了从数据库安装、管理到编程实践的多个层面,是一份非常实用的学习...

    JDBCMYSQL数据库访问技术PPT教案学习.pptx

    JDBCMYSQL数据库访问技术PPT教案学习.pptx

    JDBC连接MySQL数据库8.0.13的驱动包

    在本案例中,"JDBC连接MySQL数据库8.0.13的驱动包" 提供了连接MySQL 8.0.13版本数据库所需的Java驱动程序。MySQL是一种开源、免费的关系型数据库管理系统,广泛应用于Web应用、企业内部系统以及各类数据存储需求。 ...

Global site tag (gtag.js) - Google Analytics