zoukankan      html  css  js  c++  java
  • Java连接MySQL数据库及操作

    Java操作MySQL数据库,需要驱动mysql-connector-java 来进行操作,去下载对应的jar包
     

    一、导入需要的jar包

    我用的是maven对包进行管理,在maven中添加如下内容,直接重新导入Reimport一下包就下载下来了
    <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>5.1.37</version>
    </dependency>
    想要其他的版本,可以自己去maven的http://www.mvnrepository.com/去找,搜索对应的依赖。
     

    二、开始具体编码

    1.加载驱动程序
    Class.forName("com.mysql.jdbc.Driver" );
    说明:将这个驱动加载到JVC中
     
    2.连接数据库(con是自定义的)
    Connection con = DriverManager.getConnection(url, user, password)
     
    3.建立Statement对象,用来执行sql语句
    Statement stmt = con.createStatement();
     
    4.执行sql语句
    可以进行查询、update等操作,我这里只用到了查询,更新可以用 executeUpdate
     
    查询语句:
    res = stmt.executeQuery(sql)
    说明:stmt为自己创建的Statement对象,sql为要执行的sql具体语句,是String类型的
     
    5.提取查询结果中的某一项
    while(res.next()) {
    long info_id = res.getLong("info_id");
    }
    说明:
    1.因为查询结果可能不止一条,所以要进行遍历,只要有这一条就可以获得出来
    2.上面是查询出了字段名为“info_id”的项存到info_id的变量中,是long的变量类型(这里一定要看表设计中的字段类型,有的是可以用int,但是有的是long)
    3.如果是char等类型的可以用res.getString("XXX")获得对应的值;再有其他类型可以具体自己去查询对应方法
     
     我写的一个java操作MySQL的具体代码如下:
    package entity;
    import java.sql.*;
    import java.sql.Connection;
    import java.sql.Statement;
    
    
    /**
     * Created by lenovo on 2015/12/7.
     */
    public class JDBC{
        Statement stmt =null;
        ResultSet rs =null;
        String result = null;
        public JDBC(){
            String driver = "com.mysql.jdbc.Driver";
            String url = "jdbc:mysql://10.5.17.66:58885/?useUnicode=true&characterEncoding=utf-8";
            String user = "root";
            String password = "123456";
            try {
                Class.forName(driver);
    // System.out.println("找到驱动了");
                try {
                    Connection con = DriverManager.getConnection(url, user, password);
    // System.out.println("数据库连接成功!");
                    this.stmt = con.createStatement();
                } catch (SQLException e) {
                    System.out.println("数据库连接失败!");
                    e.printStackTrace();
                }
            } catch (ClassNotFoundException e) {
                System.out.println("找不到驱动程序类 ,加载驱动失败!");
                e.printStackTrace();
            }
        }
        //该方法返回的是全部的sql结果,在调用时需要自己去遍历然后取得相应结果
        public ResultSet getresult(String sql) {
            try {
                this.rs = this.stmt.executeQuery(sql);
                return this.rs;
            }catch (SQLException e){
                System.out.println("SQL中找不到要查找的字段!");
                e.printStackTrace();
                return this.rs;
            }
        }
        //该方法是直接获得了要找的字段名对应的结果,只取一条,所以会不断的覆盖,取到最后一条,试用与sql结果只有一个的情况,如果是结果是好多行数据,需要用ExcuteSql的方法
        public String getresult(String sql,String key){
            try {
                this.rs = this.stmt.executeQuery(sql);
            }catch (SQLException e){
                System.out.println("SQL中找不到要查找的字段!");
                e.printStackTrace();
            }
            try{
                while(this.rs.next()) {
                    this.result = this.rs.getString(key);
                }
            }catch (Exception e){
                System.out.println("SQL获取结果异常!");
                e.printStackTrace();
            }
            return this.result;
        }
        public static void main(String args[]) {
            JDBC test = new JDBC();
            String sql = "SELECT * from dbwww58com_info.info limit 1";
    //会有多列结果时,只传递sql
            ResultSet res = test.getresult(sql);
            System.out.print(res);
            try{
                while(res.next()) {
                    long info_id = res.getLong("info_id");
                    System.out.println("
    info_id:" + info_id);
                }
            }catch (Exception e){
                System.out.println("SQL获取结果异常!");
                e.printStackTrace();
            }
    //只有一个结果时,传递sql和key两个参数
    // String result= test.getresult(sql, "info_id");
    // System.out.println("结果是"+result);
        }
    }
    执行结果如下:
     
    说明:这里写方法getresult()时用到了重载,因为java不支持对参数赋值默认值,所以只能用重载实现这样的功能(同一个执行方法,我一个指向获得查询结果,一个想获得查询结果中具体的某一个字段值),关于java重载的使用,我过几天会再写一篇随笔来补充一下~
     
  • 相关阅读:
    js休眠
    CentOS6.3安装Mysql-5.5.29
    轻量级应用开发之(11)手势
    Git Pull 避免用户名和密码方法
    Ubuntu学习总结-03 安装软件 & 技巧
    Ubuntu学习总结-06 安装 Nginx
    轻量级应用开发之(09)创建控制器
    轻量级应用开发之(10) UINavigationController导航控制器
    轻量级应用开发之(08)程序启动原理
    Ubuntu学习总结-01 安装Ubuntu
  • 原文地址:https://www.cnblogs.com/meitian/p/5036332.html
Copyright © 2011-2022 走看看