首页 培训网 最新资讯 热门问答

JAVA

13013833891 免费试听 在线客服

您的位置: 苏州培训网 > JAVA培训资讯 > 苏州java大数据培训费用

苏州java大数据培训费用

来源:教育联展网 | 发布时间: | 编辑:佚名

Java和数据库之间没有必然的联系,两者之间是如何连接的呢?虽然Java提供了各种数据库接口,但是我们并不知道各种数据库具体的实现原理,难以对接口进行具体的实现。

苏州java大数据培训费用

一. JDBC编程概述

1. 什么JDBC

JDBC(Java Database Connection):为多种关系数据库提供统一访问。它由一组用Java语言编写的类和接口组成。是Java访问数据库的标准和规范。

2. 常见数据库介绍

Mysql:开源免费的数据库,小型的数据库。非常实用和受欢迎。已经被Oracle收购了.MySQL6.x版本也开始收费。

Oracle:收费的大型数据库,Oracle公司的产品。一般中大型公司会使用。Oracle收购了SUN公司,Mysql数据库。

DB2:IBM公司的收费数据库产品。常应用在银行系统和金融系统中.

SQLServer:MicroSoft 公司收费的中型的数据库。常常在C#、.net等语言中使用。

SyBase:提供了一个非常专业数据建模的工具PowerDesigner,但是数据库本身已经淡出历史舞台。

SQLite: 嵌入式的小型数据库,基本上用于移动端。

Java相关的数据库:MYSQL,Oracle。

数据库的设计和开发,sql语句的编写在这里不做详细的介绍。

苏州java大数据培训费用

Java

3. JDBC开发原理

Java和数据库之间没有必然的联系,两者之间是如何连接的呢?虽然Java提供了各种数据库接口,但是我们并不知道各种数据库具体的实现原理,难以对接口进行具体的实现。

所以,数据库生产商提供了这些接口的实现类:驱动

Java提供访问数据库规范称为JDBC,而生产厂商提供规范的实现类称为驱动。

苏州java大数据培训

Java

JDBC是接口,驱动是接口的实现,没有驱动将无法完成数据库连接,从而不能操作数据库。每个数据库厂商都需要提供自己的驱动,用来连接自己公司的数据库。

二. JDBC开发步骤

JDBC一般的开发步骤如下:

首先要从官方网站上下载Mysql的驱动,并**Eclipse导入驱动(jar包)

java大数据培训费用

Java

JDBC开发步骤如下:

1.注册驱动(Driver)

2.获得连接(Connection)

3.获得语句执行平台(Statement)

4.使用SQL语句进行处理

5.释放资源,关闭链接

数据库中创建示例:

create table users(

username varchar(10),

pass varchar(10),

nicheng varchar(30)

);

insert into users (username,pass,nicheng) values('wjy','wjykl22','凉凉夜色为你思念成河');

select * from users;

Java连接数据库

1.注册驱动:

官方API推荐方法:

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

不推荐使用DriverManager.registerDriver(new com.mysql.jdbc.Driver());注册,以上代码有两点不足:

1.硬编码,后期不易维护

2.驱动在源码中就被注册过,驱动会被两次注册

3.Driver源码:

4.

public class Driver extends NonRegisteringDriver implements java.sql.Driver {

static {

try {

java.sql.DriverManager.registerDriver(new Driver());

} catch (SQLException E) {

throw new RuntimeException("Can't register driver!");

}

}

}

2.获得连接:

String url = "jdbc:mysql://localhost:3306/jdbc";

String username = "root";

String password = "wjykl22";

Connection con = DriverManager.getConnection(url, username, password);

其中url:需要连接数据库的位置(网址)目前来说格式基本上固定。

**部分:jdbc,这是固定的;

第二部分:数据库名称,我们连接的是Mysql数据库,所以使用Mysql

第三部分:由数据库厂商规定的,每个厂商都有各自的要求,分别由数据库服务器的IP地址(localhost)、端口号(3306),以及DATABASE名称(jdbc)组成。

username:数据库用户名。

password:数据库密码。

采用上述方法就可以获得数据库的链接。

3.获得执行平台并执行sql语句

Statement stat = con.createStatement();

int executeUpdate(String sql);//用于执行insert update delete语句.

ResultSet executeQuery(String sql); //用于执行select语句.

boolean execute(String sql); //用于执行select返回true 执行其他的语句返回false.

4.结果集处理

得到ResultSet结果集后,需要对其中的数据进行数据的提取,对于ResultSet结果集的处理方法:

Object getObject(int index) / Object getObject(String name) 获得任意对象

String getString(int index) / Object getObject(String name) 获得字符串

int getInt(int index) / Object getObject(String name) 获得整形

double getDouble(int index) / Object getObject(String name) 获得双精度浮点型

5.释放资源

**后一步就是释放资源,与IO释放资源的方式如出一辙。

rs.close();

stmt.close();

con.close();

总结

完整的上述步骤如下:

public class JDBCDemo {

public static void main(String args[]) {

try {

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

String url = "jdbc:mysql://localhost:3306/jdbc";

String username = "root";

String password = "wjykl22";

Connection con = DriverManager.getConnection(url, username, password);

Statement stat = con.createStatement();

stat.executeUpdate("insert into users (username,pass,nicheng) values('wjy2','wjykl33','如水流央')");

ResultSet rs = stat.executeQuery("select * from users");

while(rs.next()) {

System.out.println(rs.getString("username")

"\t" rs.getString("pass") "\t" rs.getString("nicheng"));

}

rs.close();

stat.close();

con.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

预处理对象方法

为了防止代码存在SQL注入漏洞,使得代码更加完善,我们一般采用预处理对象:PreparedStatement

每条sql语句所有的实际参数,都使用逗号分隔。

1. 预处理对象并执行sql语句

String sql = "insert into sort(sid,sname) values(?,?)";

PreparedStatement psmt = conn.prepareStatement(sql)

2. 设置实际参数

void setXxx(int index, Xxx xx)

完整的代码程序段如下:

public class LoginDemo {

/*

* Java程序实现用户的登录,用户名和密码,数据库检查

* 防止注入攻击

* Statment有一个子接口PrepareStatment,表示预编译的SQL语句对象,可以高效的执行

* 这个方法是Connection数据库连接的方法

* 如何获取这个实现类呢?

*/

public static void main(String args[]) throws Exception {

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

String url = "jdbc:mysql://localhost:3306/world";

String username = "root";

String password = "wjykl22";

Connection con = DriverManager.getConnection(url,username,password);

Scanner sc = new Scanner(System.in);

String user = sc.nextLine();

String pass = sc.nextLine();

//执行sql语句,查询用户名和密码。

//注意要写问号

String sql = "select * from users where username =? and pass =?";

java.sql.PreparedStatement pst = con.prepareStatement(sql);

//调用pst中的set方法

pst.setObject(1, user);

pst.setObject(2, pass);

System.out.println(sql);

ResultSet rs = pst.executeQuery();

while(rs.next()) {

System.out.println(rs.getString("username") " " rs.getString("pass"));

}

}

}

三. 工具类撰写和使用

作为一名程序员**应该学会的事情就是偷懒。设想一下,如果我们要在多各程序中使用Mysql数据库,会有很多代码重复使用,我们可以创建一个工具类Utils,**工具类来完成注册驱动,获得链接,获得执行平台以及释放资源的操作。

代码如下:

public class JDBCUtils {

public static final String DRIVERNAME = "com.mysql.jdbc.Driver";

public static final String URL = "jdbc:mysql://localhost:3306/mydb";

public static final String USER = "root";

public static final String PASSWORD = "root";

static {

try {

Class.forName(DRIVERNAME);

} catch (ClassNotFoundException e) {

System.out.println("数据库驱动注册失败!");

}

}

public static Connection getConn() throws Exception {

Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);

return conn;

}

}

**调用Utils类中的各种静态方法来达到重复利用代码的效果。

四. properties配置文件

上述代码还是不太方便,如果要修改某个参数,需要修改源代码,有没有方法能够不修改源代码就能够完成配置的修改呢?

通常情况下,我们习惯使用properties文件来存储与数据库有关的配置文件。

1.文件位置:任意,建议src下

2.文件名称:任意,扩展名为properties

3.文件内容:一行一组数据,格式是“key=value”.

4.3.1 key命名自定义,如果是多个单词,习惯使用点分隔。例如:jdbc.driver

5.3.2 value值不支持中文,如果需要使用非英文字符,将进行unicode转换。

例如:

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/jdbc

user=root

password=root

加载配置文件properties的方法:

对应properties文件处理,开发中也使用Properties对象进行。我们将采用加载properties文件获得流,然后使用Properties对象进行处理。

public class JDBCUtils {

private static String driver;

private static String url;

private static String user;

private static String password;

static {

try {

// 1. 使用Properties处理流

// 使用load()方法加载指定的流

Properties props = new Properties();

Reader is = new FileReader("db.properties");

props.load(is);

// 2. 使用getProperty(key),**key获得需要的值,

driver = props.getProperty("driver");

url = props.getProperty("url");

user = props.getProperty("user");

password = props.getProperty("password");

} catch (Exception e) {

throw new RuntimeException(e);

}

}

/**

* 获得连接

*/

public static Connection getConnection() {

try {

// 1 注册驱动

Class.forName(driver);

// 2 获得连接

Connection conn = DriverManager.getConnection(url, user, password);

return conn;

} catch (Exception e) {

throw new RuntimeException(e);

}

}

}

总结

JDBC编程是Java学习中的重点,对于初学Java的学习者来说也是一大难点,需要大量的练习和经验的总结。JDBC经常和WEB一起使用,在之后文章中会结合具体的案例对JDBC进行进一步讲解。欢迎继续观看后续内容,一起体会Java语言的智慧与魅力。



咨询联系方式:13861302024(杨老师)或者QQ:2589245390 还可以直接在线咨询

更多课程推荐:

苏州PLC编程培训课程

苏州PHP编程开发课程培训

苏州C语言培训课程

太仓PLC编程综合培训

苏州JAVA软件开发培训课程

热门机构推荐
JAVA

免费体验课开班倒计时

11: 41: 09

稍后会有专业老师给您回电,请保持电话畅通

咨询电话:13013833891

本周热门资讯

全国分站 热门机构

北京JAVA培训 上海JAVA培训 广州JAVA培训 深圳JAVA培训 杭州JAVA培训 苏州JAVA培训 南京JAVA培训 天津JAVA培训 佛山JAVA培训 南宁JAVA培训 长沙JAVA培训 重庆JAVA培训 太原JAVA培训 青岛JAVA培训 宁波JAVA培训 郑州JAVA培训 西安JAVA培训 厦门JAVA培训 武汉JAVA培训 成都JAVA培训 无锡JAVA培训 济南JAVA培训 昆明JAVA培训 贵阳JAVA培训 扬州JAVA培训 徐州JAVA培训 珠海JAVA培训 合肥JAVA培训 长春JAVA培训

深圳博为峰教育深圳中公优就业南京博为峰教育南京东方瑞通

申请试听名额

已有10254人申请免费试听

01电话咨询 | 13013833891

QQ:1413838287
加盟合作:0755-83654572

今日已有25人申请,本月限额500