java连接数据库

目录:
1.看一个例子:连接mysql数据库
2.相关类
3.关于数据库事务

PS:需要注意的是:在数据包涵中文字符时,可能会出现SQLExceptio(识别不了sql中的字符),这时需要检查数据库的字符集、表的字符集、连接的字符集是否支持中文。

1.看一个例子:连接mysql数据库

1.1使用JDBC连接Mysql数据库步骤:

1.1.1下载Mysql的jdbc驱动

将下载的压缩包解压缩,然后将里面的jar包导入到项目中(通过build path导入到项目lib库)
这里写图片描述

1.1.2

标准流程为:
一:加载驱动(加载并创建驱动实例)
二:调用DriverManager创建Connection实例
三:使用Connection,Statement,ResultSet操作数据库,获取结果集

1.1.3 实例:

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


public class JDBC {

        public static void main(String args[]) 
        {

                Connection conn = null;
                String sql;

                String url = "jdbc:mysql://localhost:3306/test?"
                + "user=test&password=test&useUnicode=true&characterEncoding=UTF8";

        try {

            Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动,并创建实例

            System.out.println("成功加载MySQL驱动程序");
            // 一个Connection代表一个数据库连接
            conn = DriverManager.getConnection(url);
            // Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
            Statement stmt = conn.createStatement();
            sql="CREATE TABLE if not exists `student`(`NO` int( 10 ) NOT NULL PRIMARY KEY AUTO_INCREMENT , `name` varchar( 20 ) CHARACTER SET utf8 COLLATE utf8_bin) CHARSET utf8 COLLATE utf8_bin";

            int result = stmt.executeUpdate(sql);// executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功
            if (result != -1) 
            {
                System.out.println("创建数据表成功");
                sql = "insert into student(name) values('陶伟基')";
                result = stmt.executeUpdate(sql);
                sql = "insert into student(name) values('周小俊')";
                result = stmt.executeUpdate(sql);
                sql = "select * from student";
                ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值
                System.out.println("学号\t姓名");
                while (rs.next()) 
                {

                    System.out.println(rs.getString(1) + "\t" + rs.getString(2));// 入如果返回的是int类型可以用getInt()
                }
            }
        } catch (SQLException e) {
            System.out.println("MySQL操作错误");
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                                conn.close();
                        } catch (SQLException e) {

                                e.printStackTrace();
                        }
        }


        }
}

2.相关类

2.1 关于JDBC,Driver接口

这里所谓的驱动,其实就是实现了java.sql.Driver接口的类。如oracle的驱动类是 oracle.jdbc.driver.OracleDriver.class(此类可以在oracle提供的JDBC jar包中找到),此类实现了java.sql.Driver接口。

由于驱动本质上还是一个class,将驱动加载到内存和加载普通的class原理是一样的:使用Class.forName(“driverName”)。以下是将常用的数据库驱动加载到内存中的代码:
这里写图片描述

驱动加载入内存的过程


这里写图片描述

注意:Class.forN

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值