美文网首页
jdbc学习代码

jdbc学习代码

作者: 在努力中 | 来源:发表于2018-06-22 10:20 被阅读0次

    从基本连接==》配置文件连接==》连接后操作数据库(更改操作和查询操作)
    封装了 连接、关闭连接的方法

    package com.lsy.jdbc;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.Date;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Properties;
    
    import org.junit.Test;
    
    public class ReivewTest {
        /**
         * 四、通过 ResultSet 查询结果
         *      1、ResultSet 封装了 jdbc 的查询结果【结果集】
         * @throws Exception 
         */
        @Test
        public void testResultSet() throws Exception{
            // 1、连接数据库
            Connection connection = null;
            Statement statement = null;
            ResultSet rs = null;
            String sql = null;
            
            
            try {
                // 2、获取 Statement 对象,通过Connection 的 【createStatement()】 方法获取
                connection = getConnection();
                statement = connection.createStatement();
                
                // 3、准备 SQL 语句
                sql = "select * from customer";
                
                // 4、发送【执行】 SQL 语句,得到结果集,通过Statement 的 【excuteQuery(sql)】 方法
                rs = statement.executeQuery(sql);
                
                // 5、处理结果集,
                //    |5.1、 调用 ResultSet 的 next() 方法,查询下一条记录是否有效,若有效,指针下移
                
                while(rs.next()){
    
                    // |5.2、getXxx() 方法来获得具体列值
                    int id = rs.getInt(1);//此处的id是列,值是第几个个列名,也可以直接写列名
                    String name = rs.getString("name");
                    String email = rs.getString(3);
                    Date date = rs.getDate(4);
                    System.out.println("id:"+id+"名字"+name);
    
                }
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            } finally {
                // 6、关闭数据库资源连接
                release(rs, statement, connection);
            }
            
    
            
            
        }
        /**
         * 三、利用Statement 对象操作数据库
         * 
         */
        @Test
        public void testStatement(){
            //1.获取数据连接
            Connection connection = null;
            Statement statement = null;
            String sql = null;
            
            try {
                //2.调用Connection 对象的 【createStatement()】 方获取 Statement 对象
                connection = getConnection();
                statement = connection.createStatement();
                    
                //3.准备 SQL 语句
                sql = "update customer set name = 'caa' where id = 3";
                
                //4.发送 SQL 语句:调用 Statement 对象的 【executeUpdate(sql)】 方法
                statement.executeUpdate(sql);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                //5.关闭数据库资源:由里向外关闭
                release(null, statement, connection);
            }
            
            
            
            
        }
        /*
         * 关闭资源
         */
        public void release(ResultSet resultSet,Statement statement,Connection connection){
            
            if(resultSet != null){
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(statement != null){
                try {
                    statement.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(connection != null){
                try {
                    connection.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
        /**
         * 二、用配置文件形式 解耦
         * @throws Exception 
         * 
         */
        @Test
        public void testGetConnection2() throws Exception{
            Connection connection = getConnection();
            
            System.out.println("testGetConnection2连接:"+connection);
        }
        private Connection getConnection() throws IOException, ClassNotFoundException, SQLException {
            //0、读取配置文件
            /*
             * 1、属性文件对应Java 中的 Properties类
             *      文件放在src下,实际上是在bin(类所在目录)中
             * 2、可以使用 类加载器 加载 bin 目录 (路径下的文件)
             */
            Properties properties = new Properties();
            InputStream inStream  = 
                    this.getClass().getClassLoader().getResourceAsStream("jdbc.properties");
            properties.load(inStream);
            
            //1、准备连接数据库的四个字符串:user password,jdbcUrl,driverClass
            // 从配置文件中得到
            String user = properties.getProperty("user");
            String password = properties.getProperty("password");
            String url = properties.getProperty("jdbcUrl");
            String driverClass = properties.getProperty("driver");
            
            
            //2、加载驱动:Class.forName(driverClass)
            Class.forName(driverClass);
            
            //3、调用:DriverManager.getConnection(jdbcUrl,user,password)
            //3.1、获取数据库的连接
            Connection connection =
                    DriverManager.getConnection(url,user,password);
            return connection;
        }
        
        
        
        /**
         * 一、基础连接
         * Connection 代表应用程序和数据库的连接
         * @throws Exception 
         * 
         */
        @Test
        public void testGetConnection1() throws Exception{
            //1、准备连接数据库的四个字符串:user password,jdbcUrl,driverClass
            String user = "root";
            String password = "123456";
            String url = "jdbc:mysql://localhost:3306/jdbc_test?useSSL=false";
            String driverClass = "com.mysql.jdbc.Driver";
            
            //2、加载驱动:Class.forName(driverClass)
            Class.forName(driverClass);
            
            //3、调用:DriverManager.getConnection(jdbcUrl,user,password)
            //3.1、获取数据库的连接
            Connection connection =
                    DriverManager.getConnection(url,user,password);
            
            System.out.println("testGetConnection1连接:"+connection);
        }
    }
    
    

    相关文章

      网友评论

          本文标题:jdbc学习代码

          本文链接:https://www.haomeiwen.com/subject/liahyftx.html