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"); // 可能为nullDate 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

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

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部