JDBC初级

Posted 是非_大道克己

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC初级相关的知识,希望对你有一定的参考价值。

//1.将mysql的jdbc驱动加载到内存中
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        
        //指定需要连接的数据库地址,用户名和密码
        
        String url = "jdbc:mysql://127.0.0.1:3306/库名?"
            +"useUnicode=true&characterEncoding=utf-8 &"
            +"useSSL = false & serverTimezone = UTC";
        //为了防止数据库和程序编码不一致的情况,加上后缀
        //?useUnicode=true&characterEncoding=utf-8
        //mysql5.7以上的版本,由于添加了SSL认证接口,所以在执行的时候可能会报出警告
        //mysql8.0其实不需要SSL认证了,但是保留了SSL接口,所以在连接的时候最好指明useSSL=false
        //mysql8.0还有一个时区的问题serverTimezone=UTC
        String user = "root";
        String password = "数据库密码";
        
        
        Connection conn = null;
        Statement stmt = null;
        
        
        try {
            //2.获取连接
            conn = DriverManager.getConnection(url, user, password);
            
            //3.通过连接创建Statement对象
            stmt = conn.createStatement();
            
            //4.执行数据库语句 DML
            
            //jdbc中增删改都是executeUpdate方法
            //这个方法会返回一个int类型的值
            //对应就是几行数据受影响
            //插入语句
            int n = stmt.executeUpdate("sql的DML语句");
            //需要注意的是sql的DML语句中关于varchar对象的输入注意单引号的书写
            //java中的字符创类型在sql中不会当做字符串处理,需要手动添加单引号
            System.out.println(n + "行受影响");
            
            //4.执行数据库语句 DQL
            //jdbc中增删改都是executeQuery方法
            //这个方法会返回一个ResutSet类型的值
            //ResutSet类型存储的是查询到的虚拟表的游标
            ResutSet resut = stmt.executeQuery("sql的DQL语句");
            //循环游标
            while(resut.next()){
            //如果游标指向的有值,则把值放入resut中,并返回true,如果没有就返回false
                resut.get类型(int || String);
                //每个get类型()方法都有两个重载,
                
                //get类型(int);查询的虚拟表的第几列,从1开始
                
                //get类型(String);查询的虚拟表的字段名对应的列,
                //需要注意如果定义了别名String也应当是别名!!
            }
            
            
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            
            //5.关闭数据库
            try {
                if(stmt != null) {
                    stmt.close();
                }            
            } catch (SQLException e) {
                e.printStackTrace();
            }
            
            try {
                if(conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            //在上述的对象关闭中可以只关闭conn
        }

其他

时间类型

时间在JAVA中的定义可以是java.util(推荐使用,转格式方便)与java.sql

注意:Java中的Date是Java.util.Date无法直接放入sql语句之中,要么转化为String,要么转化为Java.sql.Date

 Java.sql.Date date = new Java.sql.Date((Util.Date对象).getTime());
 //将sql.Date转化为Util.Date

 

以上是关于JDBC初级的主要内容,如果未能解决你的问题,请参考以下文章

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

部分代码片段

JDBC初级

关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段

面试常用的代码片段

mysql jdbc源码分析片段 和 Tomcat's JDBC Pool