章节16. jdbc数据库操作 【299-315课时】
--------------------------------------------------------------------------------------------------------------------------
299.课时
1.jdbc_mysql安装和启动。mysql 和 oracle 是一家。mysql默认3306端口。
2.java 一般和mysql和oracle 搭配;网站开发一般是LAMP
300.课时
1.jdbc_mysql_navicat 安装使用、建库、建表
2.now() 获取当前时间
301.课时
1.jdbc_mysql_环境变量配置 本课时主要是我在CMD操作连通mysql 用的,因为开始mysql 出错。
2.把mysql的安装目录到bin的文件路径,配置到系统变量的Path路径,用分号分隔之前的环境变量
我的路径 C:\Program Files\MySQL\MySQL Server 5.7\bin
3.设置环境变量后,重启出错如下
ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)
ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: YES)
解决办法:1. C:\Program Files\MySQL\MySQL Server 5.7 找到【my-default.ini文件】有些版本是【my.ini 】
2. 打开后,搜索mysqld关键字 找到后,在mysqld下面添加skip-grant-tables,保存退出。这个命令是跳过
密码和验证。然后在CMD重新运行就可以了。
3. 如果还不能启动,则在计算机-管理-服务应用程序-关闭-重启mysql服务。然后重新打开cmd就可以。
注意:这应该是安装mysql时的设置问题,我是设置了密码的【123456】,在mysql 用mysql -u root -p 访问是可以的。
参考链接:https://blog.youkuaiyun.com/qq_36675754/article/details/81381341
https://blog.youkuaiyun.com/qq_39539763/article/details/79515365
302.课时
1.jdbc_建立数据库连接_驱动类_设计架构
步骤:加载JDBC驱动程序-建立与数据库的连接-sql语句-结果集
2.下载mysql 的驱动程序,oracle 也需要下载驱动
下载地址:https://dev.mysql.com/downloads/connector/j/
选择platform independent
然后:Looking for the latest GA version? 选择对应的mysql版本。
我的MySQL版本是:mysql-installer-community-5.7.17.0.msi
然后:No thanks, just start my download. 开始下载 mysql-connector-java-5.1.47.zip
3.加压下载的文件 包里有mysql-connector-java-5.1.47-bin.jar
4.在测试JDBC上右键-buildpath-configure build path- libraries-add E JAR -找到文件【mysql-connector-java-5.1.47-
bin.jar】 点击apply and close
5.代码操作实现
package com.bjsxt.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/** 测试跟数据库建立连接
*
*
* @author Administrator
*
*/
public class demo01 {
public static void main(String[] args) {
//加载驱动类
try {
Class.forName("com.mysql.jdbc.Driver");
long start = System.currentTimeMillis();
//建立连接(实际内部包含了一个socket对象,是一个远程的连接。比较耗时!这是Connection 对象管理的一个要点!)
//真正开发中,为了提高效率,都会使用连接池来管理这些连接池对象!
try {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/study","root","123456");
Statement stmt = conn.createStatement();
String sql = "select * from meituan_info_cq_meishi limit 10";
stmt.execute(sql);
long end = System.currentTimeMillis();
System.out.println(conn);
System.out.println("建立连接,耗时:"+(end-start)+"ms毫秒");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.bjsxt.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;//java 查询数据库后的返回结果包
import java.sql.SQLException;
import java.sql.Statement;
/** 测试跟数据库建立连接
*
*
* @author Administrator
*
*/
public class demo2 {
public static void main(String[] args) {
//加载驱动类
try {
Class.forName("com.mysql.jdbc.Driver");
long start = System.currentTimeMillis();
//建立连接(实际内部包含了一个socket对象,是一个远程的连接。比较耗时!这是Connection 对象管理的一个要点!)
//真正开发中,为了提高效率,都会使用连接池来管理这些连接池对象!
try {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/study","root","123456");
Statement stmt = conn.createStatement();
String sql = "select id,class_name from meituan_info_cq_meishi limit 10";
ResultSet rs= stmt.executeQuery(sql);//查询
long end = System.currentTimeMillis();
System.out.println(conn);
System.out.println("建立连接,耗时:"+(end-start)+"ms毫秒");
while (rs.next()) {
String id=rs.getString("id");
String class_name=rs.getString("class_name");
System.out.println("id:"+id+",class_name:"+class_name);
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}