本文目录一览:
大数据分析师面试必备:java与mysql解析
【导读】作为大数据工程师,其必须要掌握的基础知识就是java与mysql的关系、交互和连接,作为基础,也是面试考官经常会考的内容,为了帮助大家都能顺利通过考试,今天小编就来和大家唠一唠java与mysql的关系、交互和连接,好了,开始今天的内容大数据分析师面试必备:java与mysql解析。
- SQL语言四大类:
- DQL 数据查询语言 select
- DML 数据操作语言 insert、update、delete
- DDL 数据界说语言 create、alter
- DCL 数据控制语言 grant权限
- mysql数据库中的decimal类型(是数值型,不能存放字符串): 举例:decimal(18,0) 常用于身份证号码,但是带x的不可以。 举例:decimal(5,2)
- 状况一:假设小数点前面是3位,后边是2位,正常状况。
- 状况二:5指的是小数点前后不能超过5位,小数点后必要是2位。
- mysql中InnoDB和MyISAM引擎的差异:
- innodb支撑:事务和主外键
- myisam不支撑:事务和主外键
- 【不需要背诵,选择题考点】向mysql中,a向表中添加数据的几种写法,题目:id int 主键自增,name varchar(11) 不为空。
- 操作mysql数据库表有两种方式,第一种:点八点吧;第二种:写代码。【不需要背诵,只需要了解,考试选择题会出】
- 在Java中,简述面向对象三大特征。
- 在Java中,常用关键字:
- 定义类的关键字是什么?class
- 继承的关键字是什么?extends
- 定义接口的关键字是什么?interface
- 实现接口的关键字是什么?implements
- 抽象类的关键字是什么?abstract
- 在Java中,抽象类和接口的区别:
- 抽象类中可以包含普通方法和抽象方法,接口中只能包含抽象方法
- 抽象类中可以有构造方法,接口中没有构造方法
- 抽象类只能单继承,可以实现多个接口
- Java接口中有哪些成员?
- 构造方法,没有
- 常量,默认访问修饰符public static final,没有变量
- 抽象方法,默认访问修饰符public abstract
- 在Java中,抽象类和抽象方法的关系:
- 抽象类中可以包含普通方法和抽象方法,抽象方法一定存在抽象类中。
- 子类继承抽象父类,必须实现|重写抽象方法,除非子类也是抽象类。
- 【判断题】抽象类中必须包含抽象方法?【错误×】
- 【判断题】抽象方法一定存在抽象类中?【正确√】
- Java重载的特点:
- 在同一个类中
- 方法名相同
- 参数列表(个数、类型、顺序)不同
- 与返回值类型和访问修饰符无关
- Java重写的特点:
- 在父子类中
- 方法名相同
- 参数列表相同
- 返回值类型相同,或是其子类
- 访问修饰符相同,或不能严于父类
- 列举几种Java实现多态的形式:
- 继承的存在
- 父类引用指向子类对象 | 向上转型
- 父类作为方法的返回值类型,父类作为方法的参数
- Java接口的特性:单根性和传递性
- 在Java中,throws和throw的区别:
- throws 声明异常,用在定义方法小括号的后面
- throw 抛出异常,写在方法体内 以上就是小编今天给大家整理发送的关于大数据分析师面试必备:java与mysql解析的相关内容,希望对各位考生有所帮助,想知道更多关于数据分析师的基本要求有哪些,关注小编持续更新数据分析师岗位解析。
如何用java创建mysql数据库
JDBC连接数据库
- 创建一个以JDBC连接数据库的程序,包含7个步骤:
- 加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String className)实现。 例如:
try {
// 加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.out.println("找不到驱动程序类,加载驱动失败!");
e.printStackTrace();
}
成功加载后,会将Driver类的实例注册到DriverManager类中。 2. 提供JDBC连接的URL
- 连接URL定义了连接数据库时的协议、子协议、数据源标识。
- 书写形式:协议:子协议:数据源标识
- 协议:在JDBC中总是以jdbc开始
- 子协议:是桥连接的驱动程序或是数据库管理系统名称。
- 数据源标识:标记找到数据库来源的地址与连接端口。 例如:(MySql的连接URL)
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk;
useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为gb2312或GBK,本参数必须设置为true。characterEncoding=gbk:字符编码方式。 3. 创建数据库的连接
- 要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。
- 使用DriverManager的getConnection(String url, String username, String password)方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。 例如:
// 连接MySql数据库,用户名和密码都是root
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "root";
try {
Connection con = DriverManager.getConnection(url, username, password);
} catch (SQLException se) {
System.out.println("数据库连接失败!");
se.printStackTrace();
}
- 创建一个Statement
- 要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3种类型:
- 执行静态SQL语句。通常通过Statement实例实现。
- 执行动态SQL语句。通常通过PreparedStatement实例实现。
- 执行数据库存储过程。通常通过CallableStatement实例实现。 具体的实现方式:
Statement stmt = con.createStatement();
PreparedStatement pstmt = con.prepareStatement(sql);
CallableStatement cstmt = con.prepareCall("{CALL demoSp(?, ?)}");
如何使用Java与Mysql进行数据交互
使用jdbc驱动 六个步骤
- 创建链接
- 加载驱动
- 获取示例
- 执行sql语句
- 获取结果集
- 关闭连接 代码示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DbDemo {
public static void main(String[] args) {
ResultSet result = null;
Connection con = null;
Statement statement = null;
try {
// 第0步:将mysql 的jdbc jar包加入到引用库中来
// 第一步:将想要连接的数据库驱动类加载到JVM中来,加载过程中并向DriverManager注册Driver
// 成功加载后,会将Mysql的驱动Driver类的实例注册到DriverManager类中。
// 使得下面我们获取Connection只需要通过DriverManager就可以了。我不需要通过每个数据库具体的Driver。
Class.forName("com.mysql.jdbc.Driver").newInstance();
// 第二步,通过DriverManager获取一个和mysql的连接实例con
String JDBCUrl = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8";
String userName = "root";
String password = "1557862201";
// 接受一个jdbcurl,username,password;
con = DriverManager.getConnection(JDBCUrl, userName, password);
// 第三步:通过con连接获取到Statement实例,执行sql语句
statement = con.createStatement(); // statement实例是用于一些不带参数的sql执行,查询,更新,插入,删除操作都可以但是需要构建一个没有占位符的sql字符串
// 第四步,statement执行sql语句,查询到的结果集到ResultSet实例,简单查询,没有where语句的查询
result = statement.executeQuery("select * from student");
// 第五步:从结果集中获取数据
while (result.next()) {
// 根据test库中student表格列名读取数据
int id = result.getInt("id");
String name = result.getString("_stuName");
String number = result.getString("_stuNumber");
String Grade = result.getString(result.findColumn("_stuGrade"));
String Address = result.getString(result.findColumn("_stuAddress"));
System.out.println("name= " + name + " number= " + number + " Grade= " + Grade + " Address= " + Address);
}
// 插入语句
// statement.executeUpdate("");
insert(statement);
// 执行带参数的查询,有where语句的查询
int id = 2;
executeQuery(con, id);
// 执行更新操作
updateDate(con, 2);
delete(con, "XX"); // 删除数据行
} catch (ClassNotFoundException e) {
System.out.println("找不到驱动程序类,加载驱动失败!");
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (SQLException ex) {
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
ex.printStackTrace();
} finally {
/**
* 关闭JDBC对象 操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:
* 1、关闭记录集
* 2、关闭声明
* 3、关闭连接对象
*/
if (result != null) { // 关闭结果集
try {
result.close();
} catch (SQLException e) {
e.printStackTrace();
}
result = null;
}
if (statement != null) { // 关闭执行sql语句代码块
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
statement = null;
}
if (con != null) { // 关闭连接
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
con = null;
}
}
}
// 插入数据
public static void insert(Statement statement) throws SQLException {
String sql = "INSERT INTO student (id, _stuName, _stuNumber, _stuGrade, _stuAddress) VALUES (1, '张三', '123456', 'A', '北京')";
int rows = statement.executeUpdate(sql);
System.out.println(rows + " 行被插入。");
}
// 查询数据
public static void executeQuery(Connection con, int id) throws SQLException {
String sql = "SELECT * FROM student WHERE id=?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setInt(1, id);
ResultSet result = pstmt.executeQuery();
while (result.next()) {
int sid = result.getInt("id");
String name = result.getString("_stuName");
String number = result.getString("_stuNumber");
String grade = result.getString("_stuGrade");
String address = result.getString("_stuAddress");
System.out.println("ID: " + sid + ", 姓名: " + name + ", 学号: " + number + ", 成绩: " + grade + ", 地址: " + address);
}
result.close();
pstmt.close();
}
// 更新数据
public static void updateDate(Connection con, int id) throws SQLException {
String sql = "UPDATE student SET _stuName=? WHERE id=?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, "李四");
pstmt.setInt(2, id);
int rows = pstmt.executeUpdate();
System.out.println(rows + " 行被更新。");
pstmt.close();
}
// 删除数据
public static void delete(Connection con, String name) throws SQLException {
String sql = "DELETE FROM student WHERE _stuName=?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, name);
int rows = pstmt.executeUpdate();
System.out.println(rows + " 行被删除。");
pstmt.close();
}
}
java如何连接mySQL数据库?
- 下面代码是使用jdbc直接来链接mysql的操作,方式与SQL SERVER类似,区别在于加载的驱动不同,url的设置也有点区别。
- 执行脚本返回的结果,可以看出java成功链接上mysql并获取到返回值。
- mysql-connector-java-5.1.26-bin.jar是java链接mysql使用的jar包,与SQL SERVER链接也有专门的jar包,jar包中包含了java链接mysql所用到的函数驱动等等,所有的jar包都是放到web工程lib目录下。
- 如果工程是整合在ssh下,一般情况下都会有一个properties文件,该文件配置了数据库链接常用的命令,下图是mysql中的配置。
- 使用spring框架下进行的测试,结果可以成功执行,无论是sql server还是mysql还是其他的数据库,基本功能都一样,只是语法结构有所区别,java在调用的过程中大部分功能只要切换了数据库链接命令就可以公用,如果系统架构设计的足够好,切换数据库的时候,应用程序是不用调整就能兼容的。
怎样用java连接mysql
Java MySQL 连接 Java 连接 MySQL 需要驱动包,百度就有自行下载,解压后得到jar库文件,然后在对应的项目中导入该库文件。 本实例使用的是 Eclipse,导入 jar 包: 创建测试数据 接下来我们在 MySQL 中创建 RUNOOB 数据库,并创建 websites 数据表,表结构如下:
CREATE TABLE `websites` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` char(20) NOT NULL DEFAULT '' COMMENT '站点名称',
`url` varchar(255) NOT NULL DEFAULT '',
`alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
`country` char(10) NOT NULL DEFAULT '' COMMENT '国家',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
数据表显示如下: 连接数据库 以下实例使用了 JDBC 连接 MySQL 数据库,注意一些数据如用户名,密码需要根据你的开发环境来配置: MySQLDemo.java 文件代码:
package com.runoob.test;
import java.sql.*;
public class MySQLDemo {
// JDBC 驱动名及数据库 URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB";
// 数据库的用户名与密码,需要根据自己的设置
static final String USER = "root";
static final String PASS = "123456";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
// 注册 JDBC 驱动
Class.forName("com.mysql.jdbc.Driver");
// 打开链接
System.out.println("连接数据库...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// 执行查询
System.out.println(" 实例化Statement对...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, name, url FROM websites";
ResultSet rs = stmt.executeQuery(sql);
// 展开结果集数据库
while (rs.next()) {
// 通过字段检索
int id = rs.getInt("id");
String name = rs.getString("name");
String url = rs.getString("url");
// 输出数据
System.out.print("ID: " + id);
System.out.print(", 站点名称: " + name);
System.out.print(", 站点 URL: " + url);
System.out.print("\n");
}
// 完成后关闭
rs.close();
stmt.close();
conn.close();
} catch (SQLException se) {
// 处理 JDBC 错误
se.printStackTrace();
} catch (Exception e) {
// 处理 Class.forName 错误
e.printStackTrace();
} finally {
// 关闭资源
try {
if (stmt != null) stmt.close();
} catch (SQLException se2) {
} // 什么都不做
try {
if (conn != null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}
以上实例执行输出结果如下: 我有一个微信公众号,经常会分享一些Java技术相关的干货,还有一些学习资源。 如果你喜欢我的分享,可以用微信搜索“Java团长”或者“javatuanzhang”关注。