• Java 操作MySql数据库


    Java 项目开发中数据库操作是很重要的一个方面,对于初学者来说,MySql是比较容易熟悉的一种常见数据库,这篇文章记录了如何用Java来操作MySql数据库。

    第一章 JDBC的概念

    JDBC(Java Database Connectivity)是连接Java和数据库的纽带,简单的说,就是Java利用JDBC API屏蔽掉了底层数据库具体实现的差异。对于不同的数据库,Java的操作方式是不同的,这样有两个优点:

    • 简化了访问数据库的程序代码,无须涉及与底层数据库实现相关的细节
    • 可以在同一个Java程序中使用多种数据库

    对于不同的数据库,加载不同的驱动即可,比如,对于MySql数据库,需在工程中加入Externel Lib(如下图1.1所示),在程序中加入加载语句Class.forName("com.mysql.jdbc.Driver");即可。

    image

                   图1.1

    JDBC API是固定的,由Sun公司制定,所有第三方数据库供应商的数据库要提供给Java访问,必须实现这个API,我们称之为JDBC驱动。JDBC驱动管理器(java.sql.DriverManager)类也是由Sun公司实现的,负责注册特定的JDBC驱动,根据特定的数据库的JDBC驱动建立数据库连接。比如,对于MySql,一个典型的注册语句就是:DriverManager.registerDriver(new  com.mysql.jdbc.Driver());

    第二章 一个java连接MySql数据库的实例

    JDBC API是固定的,由Sun公司制定,所有第三方数据库供应商的数据库要提供给Java访问,必须实现这个API,我们称之为JDBC驱动。JDBC驱动管理器(java.sql.DriverManager)类也是由Sun公司实现的,负责注册特定的JDBC驱动,根据特定的数据库的JDBC驱动建立数据库连接。比如,对于MySql,一个典型的注册语句就是:DriverManager.registerDriver(new  com.mysql.jdbc.Driver());

    package databasetest;
    
    import java.sql.*;
    import java.util.*;
    import java.io.*;
    public class JDBCTest {
    	public static void main(String[] args) throws ClassNotFoundException,SQLException{
    		// TODO Auto-generated method stub
    		Connection con;
    		  Statement stmt;
    		  ResultSet rs;
    		//加载驱动程序,下面的代码加载MySQL驱动程序
    		  Class.forName("com.mysql.jdbc.Driver");
    		  String dbUrl =  "jdbc:mysql://localhost:3306/BookDB?useUnicode=true&characterEncoding=UTF8";
    		  String dbUser="root";
    		  String dbPwd="miwusenlin";
    		//注册MySQL驱动程序
    		  DriverManager.registerDriver(new  com.mysql.jdbc.Driver()); 
    		//用适当的驱动程序连接到数据库,建立数据库连接
    		  con = java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
    		//创建一个SQL声明
    		  stmt = con.createStatement();
    		//增加新记录
    		  stmt.executeQuery("SET NAMES UTF8");
    		  stmt.executeUpdate("insert into BOOKS (ID,NAME,TITLE,PRICE) values('999','汤姆','Tomcat Bible',44.5)");                                                       
    		  //查询记录
    		  rs = stmt.executeQuery("select ID,NAME,TITLE,PRICE from BOOKS");
    		//打印所显示的数据
    		  while (rs.next()){
    		    String col1 = rs.getString(1);
    		    String col2 = rs.getString(2);
    		    String col3 = rs.getString(3);
    		    float col4 = rs.getFloat(4);
    		  //输出查询结果
    		    System.out.println(col1+" "+col2+" "+col3+" "+col4 );
    		  }
    		  stmt.executeUpdate("delete from BOOKS where ID='999'");
    		  
    		//关闭数据库连接
    		  rs.close();
    		  stmt.close();
    		  con.close();
    	}
    
    }

    在上述代码中需要注意的是:String dbUrl = "jdbc:mysql://localhost:3306/BookDB?useUnicode=true&characterEncoding=UTF8"; 中字符编码设定要和数据库中表的格式一致。

    第三章 java.sql包中的接口和类

    针对于MySql数据库的JDBC API主要位于java.sql包中,其中关键的接口如下:

    • DriverManager类:主要是用来注册数据库驱动
    • Connection接口:表示数据库连接
    • Statement接口:负责执行SQL语句
    • PreparedStatement接口:负责执行预准备的SQL语句
    • CallableStatement接口:负责执行SQL存储过程
    • ResultSet接口:表示SQL查询结果的返回值


    参考:

    维基百科:java数据库连接

    Java.sql包官方文档

    Java数据库连接池

  • 相关阅读:
    'Specifying a namespace in include() without providing an app_name ' django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without providing
    ERRORS: <class 'myApp.admin.GradesAdmin'>: (admin.E108) The value of 'list_display[3]'
    TypeError: __init__() missing 1 required positional argument: 'on_delete'
    mysqlclient 1.3.13 or newer is required; you have 0.9.3.
    第一个Tornado程序
    Tornado安装
    MySQL下载与安装
    pycharm安装PyQt框架
    pycharm不能安装第三方库,错误代码Non-zero exit code (1) 的解决办法
    Python相关
  • 原文地址:https://www.cnblogs.com/obama/p/3716921.html
Copyright © 2020-2023  润新知