Java连接Mysql基本语法

Java连接Mysql基本语法


(1)简介:

Mysql基本语法与当前市场上的各大主流的关系型数据库差不多,如果你已经掌握SQL server或oracle数据库,那Mysql的基本语法学习起来就非常轻松了;如果你掌握一门编程语言(C++、Java、Python)那Mysql的语法就是小巫见大巫了。本篇主要由浅入深的学习java中的JDBC(Java DataBase Connection)与Mysql的关联与优化。


(2)JDBC与Mysql基础

  • connect Mysql数据库

// 注册MySQL驱动 (可以省略这一步)

  Class.forName("com.mysql.jdbc.Driver");

// 连接MySQL服务器

  String username= "root";

  String password = "a1b2c3";

 String connectionUrl = 
  "jdbc:mysql://127.0.0.1:3306/af_school?useUnicode=true&characterEncoding=UTF-8";

 Connection conn = DriverManager.getConnection(connectionUrl, username, password);

 System.out.println("连接成功!");

说明:jdbc:mysql://127.0.0.1:3306/af_school?useUnicode=true&characterEncoding=UTF-8

127.0.0.1host,服务器地址

3306mysql默认端口号

af_school:指定的数据库

useUnicode=true&characterEncoding=UTF-8字符编码指定

 

  • sql操作

  1. select查询
// 数据库查询, Statement语句  ResultSet结果集
Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery("SELECT * FROM student");   

//如果有数据,rs.next()返回true
while(rs.next())
 {

   // 取出这一行记录

    int id = rs.getInt("id");

    String name = rs.getString("name");

    String phone = rs.getString("phone"); // 可能为null

    Date birthday = rs.getDate("birthday");

 }
  1. insert into 插入

        

//编写sql语句
String sql = "INSERT INTO student(`id`,`name`,`birthday`) "

                   + "VALUES ('20181200', '韩', '1997-4-19') ";

   System.out.println("SQL: "+ sql);



//执行insert into sql语句
Statement stmt = conn.createStatement();//与数据库交互

stmt.execute(sql);

int count = stmt.getUpdateCount();

System.out.println("受影响的行数为: " + count);
  1. update修改
//编写sql语句
String sql = 
 "UPDATE student SET `name`=’沈’ , `birthday`=’1997-09-01’ WHERE `id` = 20180001 ";

System.out.println("SQL: "+ sql);


//执行UPDATE sql语句
Statement stmt = conn.createStatement(); //与数据库交互

stmt.execute(sql);

int count = stmt.getUpdateCount();

System.out.println("受影响的行数为: " + count);

(3)关闭连接,释放资源

         conn.Close();

         System.out.println(“关闭数据库连接”);

  说明:这里的conn就是前面①创建的conn

以上就是JDBC与MySQL最基本的连接、操作、关闭方法;接下来介绍预处理查询的方法。


(4)预处理查询

      

// 注册MySQL驱动 (可以省略这一步)
Class.forName("com.mysql.jdbc.Driver"); 


// 连接MySQL服务器
  String username= "root";

  String password = "a1b2c3";

 String connectionUrl =                                                                                                          
  "jdbc:mysql://127.0.0.1:3306/af_school?useUnicode=true&characterEncoding=UTF-8";

  Connection conn = DriverManager.getConnection(connectionUrl, username, password);

  System.out.println("连接成功!");

                  

  //预处理查询
      // 1 构造一个SQL, 参数值用?号代替,称为占位符
      String sql = "INSERT INTO student (id,name,birthday) VALUES (?, ?, ?) ";

     // 2 创建 PreparedStatement 对象 ( 与MySQL产生一次交互 )
      PreparedStatement ptmt = conn.prepareStatement(sql);                   

     // 3 设置参数值
       ptmt.setInt(1, 20183001);

       ptmt.setString(2, "小新");     

       ptmt.setString(3, "1993-3-10");
                  
      // 4 执行查询
       ptmt.execute();                


 //关闭连接释放资源
   conn.close();

   System.out.println("关闭连接!");

说明:由以上代码可知,JDBC的预处理查询的方法就是提前与数据库进行交互(指定了SQL语句的模版),之后就可以进行多次的相同操作(这里就是向数据库中插入数据)而不用重复的与数据库交互(conn.createStatement();)。

         为什么要这样做呢?

我们知道与数据库进行交互相较与sql执行操作是很费时间的(不信可以用Calendar calendar=Calendar.getInstance();  long time=calendar.getTimeInMillis(); 来进行测试,不过前提是数据表中的数据不能太多上万条以上…),于是当我们要进行相同的sql操作时当然选择预处理查询的方式应该更加有效。

注:并不是所有的数据库都支持预处理查询技术(MySQL是支持的),如果你所用的数据库不支持,那么用预处理查询并不会报错,而是会按照普通的方式来进行一次数据库交互一次execute()。

 

       下接JDBC的拓展知识见:https://blog.csdn.net/biggerchong/article/details/83831698

感谢您的学习!欢迎一起探讨!

 

你可能感兴趣的:(JavaSE学习笔记)