Jdbc

本文介绍了Java数据库连接(JDBC)的基本概念与使用方法,包括如何注册驱动、建立数据库连接、执行SQL语句及处理结果集等核心步骤,并提供了一些实用的示例代码。

一、JDBC概述
1、Java Data Base Connectivity(java数据库连接)
2、组成包:java.sql.;javax.sql.;这两个包都包含在了JDK中。
3、还需要数据库的驱动,这些驱动就相当于对JDBC规范的实现
二、JDBC的编码步骤
1、把数据库的驱动加入到classpath中 (方法是拷贝mysql-connector-java-5.0.8-bin.jar 到工程下然后buildpath)
2、开发步骤:
1、注册驱动
2、获取与数据库的链接 .properties
3、得到代表SQL语句的对象
4、执行语句
5、如果执行的是查询语句,就会有结果集,处理
6、释放占用的资源

package com.zh.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcDemo1 
{
    public static void main(String[] args) throws ClassNotFoundException, SQLException 
    {
        Class.forName("com.mysql.jdbc.Driver");  //注册驱动       驱动包名 com.mysql.jdbc   Driver 类
        //Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?user=root&password=root");   //注意这种办法url后面添加参数注意不要随意添加空格
       Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","root","root");  
       //  url中mysql的位置可以是sqlservice  根据是数据库的类型定
       Statement stmt = conn.createStatement(); 
       ResultSet  rs = stmt.executeQuery("select * from  stu");  // 执行sql语句
       while(rs.next())
       {
           System.out.println(rs.getInt("id")+":"+rs.getString("name")+":"+ rs.getString("address"));
       }
       //关闭链接,关闭命令对象,关闭结果集。
       rs.close();
       stmt.close();
       conn.close();
    }
}

JDBC的增删改查:
创建sql语句示例:
String sql = “insert into stu(id,name,sex) values(12,’东东’,’男’)”;
1、Statement 命令对象 Jdbc程序中的Statement对象用于向数据库发送SQL语句, Statement对象常用方法:
就是执行sql语句的;
executeQuery(String sql) :用于向数据发送查询语句。
executeUpdate(String sql):用于向数据库发送insert、update或delete语句
addBatch(String sql) :把多条sql语句放到一个批处理中。
executeBatch():向数据库发送一批sql语句执行。
2、ResultSet
Jdbc程序中的ResultSet用于代表Sql语句的执行结果。Resultset封装执行结果时,采用的类似于表格的方式。ResultSet 对象维护了一个指向表格数据行的游标,初始的时候,游标在第一行之前,调用ResultSet.next() 方法,可以使游标指向具体的数据行,进行调用方法获取该行的数据。
ResultSet还提供了对结果集进行滚动的方法:
next():移动到下一行
Previous():移动到前一行
absolute(int row):移动到指定行
beforeFirst():移动resultSet的最前面。
afterLast() :移动到resultSet的最后面。

package com.zh.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JdbcDemo4 {
    public static void main(String[] args) throws ClassNotFoundException,
            SQLException {
        Class.forName("com.mysql.jdbc.Driver"); // 注册驱动 包名 com.mysql.jdbc Driver
                                                // 类
    Connection conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/mydb", "root", "root");  //创建的是连接对象
        Statement stmt = conn.createStatement();    // 创建执行sql语句的命令对象  Statement
        // 创建一个sql语句
        //
        // String sql
        // ="insert into stu(id,name,age,address,sex) values(12,'东方不败',20,'湖南','男')";//      添加
        // int n = stmt.executeUpdate(sql); //返回一整型 就是执行结果影响的记录数。
        // String sql = "update stu set name='张刘子'where id=12"; //    改 修改 update tablename set 字段名where 
        String sql = "delete from stu where id =12";   // 删除  delete from tablename where 字段名
        int n = stmt.executeUpdate(sql);

        System.out.println(n);   // 需要注意的是这如果是增加的sql语句结果第一次是1,对于第二次就会因为主键的原因执行会抛出                                                 
                                                                               异常报出错误。
        // 关闭链接,关闭命令对象,

        stmt.close();
        conn.close();
    }
}

结果集 ResultSet 用while循环的原因是 游标在第一条记录的前面。//Before start of result set
url的写法:
URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:
jdbc:mysql:[]//localhost:3306/test ?参数名=参数值
协议 子协议 主机端口号 数据库
常用数据库URL地址的写法:
Oracle写法:jdbc:oracle:thin:@localhost:1521:sid
SqlServer—jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sid
MySql—jdbc:mysql://localhost:3306/sid
Mysql的url地址的简写形式: jdbc:mysql:///sid 这个省略的只能是本机的 localhost:3306
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

常用数据类型转换:
sql类型                          Jdbc对应方法                              返回类型
Text(clob)  Blob               getClob getBlob()                         Clob  Blob
DATE                             getDate()                               java.sql.Date
TIMESTAMP                      getTimestamp()                             java.sql.Timestamp 
CHAR,VARCHAR,LONGVARCHAR       getString()                                String
BIGINT                         getLong()                                   Long
SMALLINT                      getShort()                                  Short
Int                            getInt()                                    Int
根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值