使用jdbc连接mysql

JDBC连接MYSQL数据库:

package cn.outofmemory.test;import java.sql.Connection;import java.sql.DriverManager;public class Mysql {
    public static void main(String arg[]) {
        try {
            Connection con = null; //定义一个MYSQL链接对象
            Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动
            con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //链接本地MYSQL
            System.out.print("yes");
        } catch (Exception e) {
            System.out.print("MYSQL ERROR:" + e.getMessage());
        }

    }}

Class.forName("com.mysql.jdbc.Driver").newInstance(); 我们链接的是MYSQL数据库,所以需要一个MYSQL的数据库驱动,如果你的环境中没有安装, 可以下载:mysql-connector-java-5.1.17-bin.jar JAR包,然后放进jdk1.6.0_37\jre\lib\ext 重启eclispe 就可以在JRE系统库中看到,也可以通过build path导入工程。

con = DriverManager.getConnection;("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); 是链接数据库的语句, 返回Connection con;对象。参数格式:("jdbc:mysql://ip:端口/数据库名称", 用户名,密码)

写入一条数据

package main;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class Mysql {

    /**
     * 入口函数
     * @param arg
     */
    public static void main(String arg[]) {
        try {
            Connection con = null; //定义一个MYSQL链接对象
            Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动
            con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //链接本地MYSQL

            Statement stmt; //创建声明
            stmt = con.createStatement();

            //新增一条数据
            stmt.executeUpdate("INSERT INTO user (username, password) VALUES ('init', '123456')");
            ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()");
            int ret_id;
            if (res.next()) {
                ret_id = res.getInt(1);
                System.out.print(ret_id);
            }
            
        } catch (Exception e) {
            System.out.print("MYSQL ERROR:" + e.getMessage());
        }

    }}

stmt.executeUpdate INSERT; DELETE; UPDATE;语句都用executeUpdate函数来操作

stmt.executeQuery SELECT;语句都用stmt.executeQuery函数来操作

ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()"); 查询最后插入数据的ID号,返回ResultSet res;对象

删除和更新数据

package main;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class Mysql {

    /**
     * 入口函数
     * @param arg
     */
    public static void main(String arg[]) {
        try {
            Connection con = null; //定义一个MYSQL链接对象
            Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动
            con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //链接本地MYSQL

            Statement stmt; //创建声明
            stmt = con.createStatement();

            //新增一条数据
            stmt.executeUpdate("INSERT INTO user (username, password) VALUES ('init', '123456')");
            ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()");
            int ret_id;
            if (res.next()) {
                ret_id = res.getInt(1);
                System.out.print(ret_id);
            }

            //删除一条数据
            String sql = "DELETE FROM user WHERE id = 1";
            long deleteRes = stmt.executeUpdate(sql); //如果为0则没有进行删除操作,如果大于0,则记录删除的条数
            System.out.print("DELETE:" + deleteRes);

            //更新一条数据
            String updateSql = "UPDATE user SET username = 'xxxx' WHERE id = 2";
            long updateRes = stmt.executeUpdate(updateSql);
            System.out.print("UPDATE:" + updateRes);

        } catch (Exception e) {
            System.out.print("MYSQL ERROR:" + e.getMessage());
        }

    }}

删除和更新数据都使用stmt.executeUpdate函数。 删除和更新数据都会返回一个Long的结果,如果为0,则删除或者更新失败,如果大于0则是操作删除的记录数

查询语句

package main;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.Statement;public class Mysql {

    /**
     * 入口函数
     * @param arg
     */
    public static void main(String arg[]) {
        try {
            Connection con = null; //定义一个MYSQL链接对象
            Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动
            con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //链接本地MYSQL

            Statement stmt; //创建声明
            stmt = con.createStatement();

            //新增一条数据
            stmt.executeUpdate("INSERT INTO user (username, password) VALUES ('init', '123456')");
            ResultSet res = stmt.executeQuery("select LAST_INSERT_ID()");
            int ret_id;
            if (res.next()) {
                ret_id = res.getInt(1);
                System.out.print(ret_id);
            }

            //删除一条数据
            String sql = "DELETE FROM user WHERE id = 1";
            long deleteRes = stmt.executeUpdate(sql); //如果为0则没有进行删除操作,如果大于0,则记录删除的条数
            System.out.print("DELETE:" + deleteRes);

            //更新一条数据
            String updateSql = "UPDATE user SET username = 'xxxx' WHERE id = 2";
            long updateRes = stmt.executeUpdate(updateSql);
            System.out.print("UPDATE:" + updateRes);

            //查询数据并输出
            String selectSql = "SELECT * FROM user";
            ResultSet selectRes = stmt.executeQuery(selectSql);
            while (selectRes.next()) { //循环输出结果集
                String username = selectRes.getString("username");
                String password = selectRes.getString("password");
                System.out.print("\r\n\r\n");
                System.out.print("username:" + username + "password:" + password);
            }

        } catch (Exception e) {
            System.out.print("MYSQL ERROR:" + e.getMessage());
        }

    }}

查询语句使用stmt.executeQuery函数

  • rs.absolute() //绝对位置,负数表示从后面数
  • rs.first()第一条
  • rs.last()最后一条
  • rs.previoust()前一条
  • rs.next()后一条
  • rs.beforeFirst()第一条之前
  • rs.afterLast()最后之后
  • rs.isFirst(),rs.isLast(),rs.isBeforeFirst(),rs.isAfterLast

另外,诸位在看以上程序时,不知有没有发现一个漏洞,执行后他没有关闭数据库连接。

原文发布于微信公众号 - java达人(drjava)

原文发表时间:2015-05-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏后端技术探索

mysql5.7强势支持原生json格式!!全面掌握

mysql一直是如此优秀,但是随着最近一些nosql的强劲发展,甚为关系型数据库的mysql,也不例外在某些层面稍有逊色。其中,是否支持json格式是最常被用来...

972
来自专栏肖洒的博客

JDBC编程

安装驱动,下载mysql-connector-java。 将mysql-connector-java-5.1.42-bin.jar包拷到WEB-INF目录下。

962
来自专栏别先生

java连接数据库的模糊查询

1:模糊查询是比较常见的一种查询方式,例如在订单表中,包含有订单的具体日期。如果要查询某年某月的订单信息,最好的方式就是使用模糊查询。进行模糊查询需要使用关键字...

29710
来自专栏代码拾遗

JDBC 详解

JDBC(Java Database Connectivety),主要是用来连接数和操作数据库的API,本片文章基于JDBC4.2。

932
来自专栏Python

Django---ORM操作大全

前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞:...

1K10
来自专栏Java 技术分享

JDBC(MySQL)一周学习总结(二)

40510
来自专栏更流畅、简洁的软件开发方式

分页控件之分页算法 —— for SQL Server 版。

上两篇随笔: 我的分页控件(未完,待续)——控件件介绍及思路 我自己写的一个分页控件(源码和演示代码)PostBack分页版 for vs2003、SQL ...

2449
来自专栏Java帮帮-微信公众号-技术文章全总结

JDBC基础入门(2)

其他关于C3P0的详细内容, 可参考C3P0主页. HikariCP HikariCP是另一款高性能/”零开销”/高品质的数据库连接池,据测试,其性能优于C3P...

2807
来自专栏nodejs后端

nodejs 封装mysql

以上是在线运行项目,特意分享,网上大多都是2015年的文章,且没有新的方法,可以查看官方文档 mysql - npm

3947
来自专栏java达人

JDBC为什么要使用PreparedStatement而不是Statement

PreparedStatement是用来执行SQL查询语句的API之一,Java提供了 Statement、PreparedStatement 和 Callab...

30010

扫码关注云+社区

领取腾讯云代金券