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.1:host,服务器地址
3306:mysql默认端口号
af_school:指定的数据库
useUnicode=true&characterEncoding=UTF-8:字符编码指定
-
sql操作
- 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");}
- 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);
- 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
感谢您的学习!欢迎一起探讨!
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
