Java数据库的连接JDBC

1、JDBC

开发步骤
(1)注册驱动.
告知JVM使用的是哪一个数据库的驱动
(2)获得连接.
使用JDBC中的类,完成对MySQL数据库的连接
(3)获得语句执行平台
通过连接对象获取对SQL语句的执行者对象
(4)执行sql语句
使用执行者对象,向数据库执行SQL语句
获取到数据库的执行后的结果
(5)处理结果
(6)释放资源.(先开的后关)
调用一堆close()方法

package com.oracle.demo01;

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

public class demo01 {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.注册驱动.
        //告知JVM使用的是哪一个数据库的驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2.获得连接.
        //使用JDBC中的类,完成对MySQL数据库的连接
        Connection  conn = DriverManager.getConnection
                ("jdbc:mysql://localhost:3306/ceshi?characterEncoding=utf-8","root","123");
        //3.获得语句执行平台
        //通过连接对象获取对SQL语句的执行者对象
        Statement sta = conn.createStatement();
        //4.执行sql语句
        //使用执行者对象,向数据库执行SQL语句
        //获取到数据库的执行后的结果
        String sql = "insert into sort(sname) values (‘护手霜‘)";
        int row = sta.executeUpdate(sql);
        System.out.println(row);
        //5.处理结果
        //6.释放资源(先开的后关)
        //调用一堆close()方法
        sta.close();
        conn.close();
    }

}

再举一个例子:

package com.oracle.difficult;
//插入数据
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class demo01 {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1、注册驱动、告知JVM使用的是哪一个数据库的驱动
        //异常ClassNotFoundException
        Class.forName("com.mysql.jdbc.Driver");
        //2、获得连接
        //导包
        String  url = "jdbc:mysql://localhost:3306/ceshi?characterEncoding=gbk";//这里ceshi是数据库
        String root = "root";
        String password = "123";
        //异常SQLException
        //DriverManager:管理一组 JDBC 驱动程序的基本服务
        //Connection:与特定数据库的连接
        Connection  con = DriverManager.getConnection(url,root,password);
        //3.获得语句执行平台
        //创建一个 Statement 对象来将 SQL 语句发送到数据库
        Statement sta = con.createStatement();
        //4、执行sql语句
        //使用执行者对象 /Statement 对象/ ,向数据库执行SQL语句
        //写SQL语句;
        String sql = "insert into ceshi1(id,sname) values (10,‘剑魂‘)";
        //int executeUpdate(String sql)
        //执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,
        //或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)如:CREATE TABLE和DROP TABLE等。
        int row = sta.executeUpdate(sql);
        System.out.println(row);
        //5、处理结果
        //执行insert、update、delete无需处理
        //6、释放资源(先开的后关,后开的先关)
        //调用一堆close()方法
        sta.close();
        con.close();
    }

}

需要处理结果集:

package com.oracle.difficult;

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

public class demo03 {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1、注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2、获得连接
        String url = "jdbc:mysql://localhost:3306/ceshi?characterEncoding=gbk";
        String root = "root";
        String  password = "123";
        Connection  con =  DriverManager.getConnection(url, root, password);
        //3、获得语句执行平台
        Statement  sta  =  con.createStatement();
        //4、执行sql语句
        String sql = "select * from ceshi1 where sname = ‘狂战士‘";
        //需要导包   import java.sql.ResultSet;
        ResultSet rs = sta.executeQuery(sql);
        //5、处理结果
        while(rs.next()){
            System.out.println(rs.getString("id")+".."+rs.getString("sname"));
        }
        //6、释放资源
        rs.close();
        sta.close();
        con.close();
    }

}

2、数据库的连接
(1)select 查询操作:
执行语句:ResultSet executeQuery(sql);
处理结果集:rs.next();rs.getXxx();
释放资源:ResultSet.close();
(2)预处理对象 PreparedStatement:解决SQL注入问题
sql语句:? 占位符;
获得执行对象:prepareStatement(sql);
执行语句:setXxx(int, Obj);executeQuery();
释放资源:PreparedStatement.close();

举个例子:

package com.oracle.difficult;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

public class demo04 {

    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1、注册驱动
                Class.forName("com.mysql.jdbc.Driver");
                //2、获得连接
                String url = "jdbc:mysql://localhost:3306/ceshi?characterEncoding=gbk";
                String root = "root";
                String  password = "123";
                Connection  con =  DriverManager.getConnection(url, root, password);

                //3、获得语句执行平台
                Statement  sta  =  con.createStatement();
                //4、执行sql语句
                Scanner  sc = new Scanner(System.in);
                System.out.println("请输入用户名:");
                String  user = sc.next();
                System.out.println("请输入密码:");
                String   pass = sc.next();
                String sql = "select count(*) from user where uname = ‘"+user+"‘ "+"and pwd = ‘"+pass+"‘";
                //需要导包   import java.sql.ResultSet;
                ResultSet rs = sta.executeQuery(sql);
                /*//3、获得语句执行平台(预处理对象,解决SQL注入问题)
                String  sql = "select count(*) from ceshi1 where id = ? and sname = ?";
                PreparedStatement past = con.prepareStatement(sql);
                //4、执行SQL语句
                Scanner  sc = new Scanner(System.in);
                System.out.println("请输入用户名:");
                int  user = sc.nextInt();
                System.out.println("请输入密码:");
                String   pass = sc.next();
                past.setInt(1, user);
                past.setString(2, pass);
                ResultSet  rs = past.executeQuery();*/
                //5、处理结果集
                int count = 0;
                while(rs.next()){
                    count = rs.getInt(1);
                }
                if(count > 0){
                    System.out.println("登录成功!!");
                }else{
                    System.out.println("登录失败");
                }
                //6、释放资源
                rs.close();
                sta.close();
                con.close();

    }

}

SQL语句注入问题:

(3)JDBCUtils工具类:
将注册驱动、获得连接和释放资源(方法重载)封装起来;

package com.oracle.tools;

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

public class JDBCUtils {

    public static  Connection get() {
                //1、注册驱动
                try {
                    Class.forName("com.mysql.jdbc.Driver");
                } catch (ClassNotFoundException e) {
                    e.printStackTrace();
                }
                //2、获得连接
                String url = "jdbc:mysql://localhost:3306/ceshi?characterEncoding=gbk";
                String root = "root";
                String pwd = "123";
                Connection conn = null;
                try {
                     conn = DriverManager.getConnection(url,root,pwd);
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                return conn;
       }
        public static void  close(Connection conn,PreparedStatement pst){
            if(pst != null){
                try {
                    pst.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(conn != null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        public static void  close(Connection conn,PreparedStatement pst,ResultSet rs){
            if(rs != null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(pst != null){
                try {
                    pst.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(conn != null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
}

原文地址:https://www.cnblogs.com/cgj1994/p/9866884.html

时间: 2024-11-19 22:32:34

Java数据库的连接JDBC的相关文章

Java数据库编程之JDBC增删查改

前言 众多的ORM框架使我们从原生的JDBC编码摆脱出来,但在学习数据库编程之初,应该先掌握底层的JDBC编程,熟练应用后,学起框架才会更得心应手.就像金庸笔下的武侠人物,只要内功深厚,再去学习其他武功绝学,只不过是招式罢了.正所谓,温故而知新,本文回顾了最基础的JDBC增删查改操作. 连接数据库 在之前一篇随笔讲过如何连接数据库——<Java数据库编程之JDBC配置>. 数据库连接工具类 DBConnection package database; import java.sql.*; im

JDBC之java数据库的连接与简单的sql语句执行

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Test { /** * @param args */ public static void main(String[] args) { /*这部分是用java驱动连接oracle数据库,驱动的jar可以自己在网上下载,也可以给我留言,发给你*/

Java数据库操作(MySQL与SQLserver)

在java编程开发中,数据库的开发是重头戏. MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品: SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS). Jar包下载 java数据库的连接需要依赖外部jar包,所以需要下载后进行:构建路径->配置构建路径->库->添加JAR->应用->确定 SQLserver: https://blog-static.cnblogs.com/files/d

在Java中如何使用jdbc连接Sql2008数据库(转)

我们在javaEE的开发中,肯定是要用到数据库的,那么在javaEE的开发中,是如何使用代码实现和SQL2008的连接的呢?在这一篇文章中,我将讲解如何最简单的使用jdbc进行SQL2008的数据库的连接的. 首先我们看下我们的数据库的一些信息 用户名:sa 密码:123456 数据库名称:ServletUser 然后我们简单看一下项目目录 注意:连接数据库需要导入外部包,由于我的jdk是1.7,所以这里我导入的是sqljdbc4.jar,这个外部包可以在微软的网站上进行下载 jdbc外部包的下

JAVA数据库编程(JDBC技术)-入门笔记

本菜鸟才介入Java,我现在不急着去看那些基本的语法或者一些Java里面的版本的特征或者是一些晋级的知识,因为有一点.Net的OOP编程思想,所以对于Java的这些语法以及什么的在用到的时候在去发现学习一下.我现在很迫不及待用JAVA想来实现以下对数据库的增删改查.想实现就来看Java是怎么操作数据库的,回想下.Net里你可能会配置web.Config,或者你去写一些DBhelper类然后调用里面的自己定义的一些增删改查的方法,更或者你去配一些数据控件等等往往发现操作基本都是一体化的简单.现在面

java与MySQL数据库的连接

1.数据库的安装和建立参见上一篇博客中的第1,2步骤.(http://blog.csdn.net/nuptboyzhb/article/details/8043091) 或使用SQL语句 [sql] view plaincopy # ubuntu Linux sudo mysql -u root -p #Windows 7(mysql.exe) create database testdb; use testdb; CREATE TABLE `name_table` ( `_id` int(11

通过JDBC 与数据库建立连接

import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** 通过JDBC 与数据库建立连接 第一步:加载oracle的JDBC架包 第二步:代码实现 1.加载驱动:Class.forName("oracle.jdbc.OracleDriver"): //driverClasss= oracle.jdbc.OracleDriver; 注意加引号 2.建立连接 调用

JDBC创建数据库的连接

创建数据库的连接 .     ?要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接. ?使用DriverManager的getConnectin(String url , String username,String password)方法传入指定的欲连接的数据库的路径.数据库的用户名和密码来获得. 例如: //连接MySql数据库,用户名和密码都是root String url = "jdbc:mysql://loc

JDBC与JAVA数据库编程

一.JDBC的概念 1. JDBC (Java DataBase Connectivity) Java数据库连接 a) 主要提供java数据库应用程序的API支持 2. JDBC的主要功能 a) 创建和管理与数据源的连接 b) 发送SQL数据命令到数据源 c) 提取并处理由数据源返回的结果集 3. JDBC可分为两层 a) 驱动程序管理接口 b) JDBC API 4. Java.sql包中定义的常用基本的JDBC API a) 类DriverManager:管理一组JDBC驱动程序的基本服务