JAVA编程技巧之Java基础之JDBC操作数据库步骤讲解
小职 2017-09-07 来源 :网络 阅读 853 评论 0

摘要:本篇JAVA编程技教程将会大家讲解Java编程的知识点,看完这篇文章会让你对Java编程的知识点有更加清晰的理解和运用。

本篇JAVA编程技教程将会大家讲解Java编程的知识点,看完这篇文章会让你对Java编程的知识点有更加清晰的理解和运用。

JDBC

java DataBase Connectivity

java 数据库连接

由一些接口和类构成的API ,这些接口和类主要在java sql,javax sql包中

JDBC操作数据库

JDBC操作数据库的步骤

加载数据库驱动

建立数据库连接对象

创建执行SQL的语句对象

执行SQL语句

处理结果

释放数据库资源

数据库厂商会实现符合自己数据库特点的数据库驱动程序。

常见数据库产品驱动加载方式

Mysql

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

Oracle

Class.forName("oracle.jdbc.driver.OracleDriver");

SQLServer 2008

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

建立数据库连接的方式

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

String类型的url参数用于指定与哪一台服务器上的哪一个数据库建立连接

URL的格式是:主协议:子协议://主机名:端口号/数据库名

如:jdbc:mysql://localhost:3306/test

String类型的user参数用于指定数据库连接的用户名

String类型的password参数用于指定数据库连接的密码

Statement对象

Statement stmt = conn.createStatement();

PreparedStatement对象

String sql = “select * from students where name = ? and sex = ?”;

PreparedStatement ps = conn.preparedStatement(sql);

ps.setString(1,”张三”);

ps.setString(2,”女”);

Statement类型语句对象的执行

boolean b = stmt.execute(sql);//执行任何sql语句

int I = stmt.executeUpdate(sql);//执行增删改SQL语句

ResultSet rs = stmt.executeQuery(sql);//执行查询语句

PreparedStatement类型语句对象的执行

boolean b = ps.execute();//执行任何类型sql语句

int I = ps.executeUpdate();//执行增删改类型sql语句

ResultSet rs = ps.executeQuery();//执行查询语句

处理执行结果

Statement对象或者PreparedStatement对象调用executeXxx()方法将SQL语句发送到数据库管理系统,数据库管理系统执行完毕之后会有结果返回,不同类型的sql语句以及不同的executeXxx()方法返回的结果都不相同,那么对结果的处理方式也不各不相同。

释放数据库资源

调用.close方法释放资源

释放ResultSet,Statement,Connection

Connection的使用原则是尽量晚创建,尽可能早释放,因为数据库的连接很有限,如果不及时释放将导致系统崩溃

应用对象 4种

强: 就算这个对象用过了,也不会释放 (常用)

软: 在垃圾检测的内存不足的时候会被释放 (不常用)

弱: 在垃圾检测的内存不足的时候不管有没有引用都会被释放 (偶尔)

虚: 检测到就释放掉 (偶尔)

   

package jdbc;

 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

 

public class ChaJDBC

{

    // 创建一个加载MySQL的驱动路径

    private static String DBNAME = "com.mysql.jdbc.Driver";

    // 创建一个数据库的路劲

    private static String DBURL = "jdbc:mysql://127.0.0.1:3306/company";

    // 数据库的账户名

    private static String DBUSER = "root";

    // 数据库的密码

    private static String DBPASS = "zhang123";

    {

        try

        { // 用静态代码块加载数据库驱动

            Class.forName(DBNAME);

        } catch (ClassNotFoundException e)

        {

 

            e.printStackTrace();

        }

    }

 

    public static void main(String[] args)

    {

        try

        { // DriverManager 驱动器管理 获取一个执行sql语句的对象Connection

            Connection c = DriverManager.getConnection(DBURL, DBUSER, DBPASS);

            // 获取一个执行静态sql语句的对象Statement

            Statement s = c.createStatement();

            //查询语句  返回一个ResultSet 查询结果集

            ResultSet r= s.executeQuery("select*from emp;");

            //用whlie 循环 导出内容

            while (r.next())

            {   //取int类型的数据getIn getString取字符串的  getDate取时间的

                System.out.println(r.getInt("empno")+

                        "\t"+

                        r.getString("ename")+

                        "\t"

                        +r.getDate("hiredate"));

            }

 

//first 判断有没有第一句

            if(r.first())

            {

                System.out.println(r.getString("ename"));

            }

            //关闭集 释放内存

            r.close();

            //关闭sql执行语句对象 释放内存

            s.close();

            //关闭 数据库链接  释放内存

            c.close();

             

             

        } catch (SQLException e)

        {

 

            e.printStackTrace();

        }

   


 

package jdbc;

 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Statement;

 

public class TestJDBC

{  

 

//创建一个加载MySQL的驱动路径

    private static String DBNAME="com.mysql.jdbc.Driver";

    //创建一个数据库的路劲

    private static String DBURL="jdbc:mysql://127.0.0.1:3306/test";

    //数据库的账户名

    private static String DBUSER="root";

    //数据库的密码

    private static String DBPASS="zhang123";

    {

        try

        {   //用静态代码块加载数据库驱动

            Class.forName(DBNAME);

        } catch (ClassNotFoundException e)

        {

             

            e.printStackTrace();

        }

    }

     

    public static void main(String[] args)

    {

        try

        {   //DriverManager 驱动器管理 获取一个执行sql语句的对象Connection

            Connection c=DriverManager.getConnection(DBURL, DBUSER, DBPASS);

            //获取一个执行静态sql语句的对象Statement

            Statement s=c.createStatement();

            //执行sql语句

            s.execute("create table te(id int primary key auto_increment,tname varchar(10));");

            //executeUpdate执行增删改 sql语句

            s.executeUpdate("insert into te(tname) values('哈哈');");

            s.executeUpdate("insert into te(tname) values('呵呵');");

            //修改 字段

            s.executeUpdate("alter table te change tname ttname char(6);");

            //删除 某个内容

            s.executeUpdate("delete from te where ttname='呵呵';");

            //修改内容

            s.executeUpdate("update te set ttname='hehe' where id=3;");

             

             

             

        } catch (SQLException e)

        {

             

            e.printStackTrace();

        }

    }

}

   

本文由职坐标整理并发布,希望对同学们学习Java的知识有所帮助。了解更多详情请关注职坐标Java频道!

本文由 @小职 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程