美文网首页
第五天下午、数据库的连接java到oracle

第五天下午、数据库的连接java到oracle

作者: 别学编程 | 来源:发表于2020-08-08 11:28 被阅读0次

连接数据库

首先导入ojbdc.jar包用来连接数据库的,步骤如下
准备:导入数据库的jar包,ojdbc.jar
1、项目目录中创建lib文件夹
2、将ojdbc6.jar拷贝到lib文件夹
3、选中ojdbc6.jar,右键-->build path-->add to build path


jar包

然后复制ojdbc6.jar复制到lib下,按以下步骤操作


添加到编译路径
ojdbc6.jar配置完成后就可以写代码了,要一步一步来
代码:
1、加载驱动
2、获取连接
3、预执行
4、执行

5、释放

package Demo3;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

//从数据库中查询User表中的数据
//JDBC Java DateBase Connection
public class GetUser
{

    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        try
        {
//          加载驱动
            Class.forName("oracle.jdbc.driver.OracleDriver");
//          获取链接
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "scott", "tiger");
//          预执行
            PreparedStatement ps = conn.prepareStatement("select * from tb_user");
//          执行
            ResultSet rs = ps.executeQuery();
//          解析结果集,打印
            while(rs.next())
            {
                System.out.println(rs.getInt(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t"+rs.getString(4)+"\t"+rs.getString(5));
            }
//          释放
            System.out.println("连接成功");
            rs.close();
            ps.close();
            conn.close();
        } catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("连接失败");
        }
    }
}

最后连接数据库显示数据,显示数据可以用String的方法,但是这种方法全是字符,最好还是数字字符串分开,又考虑到需要使用二维数据来存储表格,这时候Java的List泛型编程就用到了,它是一种以中括号方式显示数据的,类似于Python的列表数据类型,即可以存储多种数据类型,是一个不错的选择。

先是连接成功数据库,后面是显示订单数据,今天的的知识点比之前多,对于没有学过Java的已经直接放弃了,有的直接运行不出来。下面的代码有的方法可以借鉴,是一个很好的参考,对于以后写程序有一个良好的思路,这个是很重要的。
下面上代码
UserDao.java

package Demo2;



import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
public class UserDao
{
    //返回true为正确,false为错误
    public static boolean login(String account,String password)
    {
        boolean b = false;
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "scott", "tiger");
            PreparedStatement ps = conn.prepareStatement("select * from tb_user where user_account=? and password=?");
            ps.setString(1, account);
            ps.setString(2, password);
            ResultSet rs = ps.executeQuery();
            if(rs.next())
                b = true;

            rs.close();
            ps.close();
            conn.close();
        } catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        //查询数据库是否有这个用户
//      if(account.equals("123") && password.equals("qwe"))
//          return true;
//      else
//          return false;
        return b;
    }
}

UserView.java

package Demo2;
import java.util.Scanner;
public class UserView
{
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入账号:");
        String account = sc.next();
        String password = sc.next();
        //调用用户名密码检测
        boolean b = UserDao.login(account, password);
        if(b)
            OrdersView.ordersMenu();
        else
            System.out.println("No");
        
    }

}

OrdersDao.java

package Demo2;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class OrdersDao
{
    public static List<List<Object>> getOrders()
    {
        //调用sql语句,获取所有订单信息
//      String[] arr = {"第一张订单","第二张订单","第三张订单","第四张订单","第五张订单"};
//      return arr;
        List<List<Object>> table = new ArrayList<List<Object>>();
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            //2、获取连接
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","scott","tiger");
            //3、预执行
            PreparedStatement ps = conn.prepareStatement("select rownum ,o.o_code,o.o_user_account,o.create_date,"
                    + "p.pro_name,p.pro_price,op.pro_count,o.o_total "
                    + "from tb_orders o,tb_orders_product op,tb_product p "
                    + "where o.o_code=op.o_code and op.pro_id = p.pro_id");
            //4、执行
            ResultSet rs = ps.executeQuery();
            while(rs.next())
            {
                List<Object> row = new ArrayList<Object>();
                row.add(rs.getInt(1));
                row.add(rs.getString(2));
                row.add(rs.getString(3));
                row.add(rs.getString(4));
                row.add(rs.getString(5));
                row.add(rs.getInt(6));
                row.add(rs.getInt(7));
                row.add(rs.getInt(8));
                table.add(row);
            }
            //5、释放
            rs.close();
            ps.close();
            conn.close();       
        }
        catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    return table;
    }
}

OrdersView.java

package Demo2;

import java.util.List;
import java.util.Scanner;
public class OrdersView
{
    public static void ordersMenu()
    {
        while(true)
        {
            System.out.println("1--订单的显示");
            System.out.println("2--销售额的统计");
            System.out.println("3--销售记录的统计");
            System.out.println("4--商品销售占比统计");
            //用户输入选项
            System.out.println("请输入选项:");
            Scanner sc = new Scanner(System.in);
            int input = sc.nextInt();
            //sc.close();
            if(input==1)
            {
                //订单显示
                List<List<Object>> orders = OrdersDao.getOrders();
                for(int i = 0;i<orders.size();i++)
                    System.out.println(orders.get(i));
            }
            else if(2==input)
            {
                //销售额的统计
            }
            else if(3==input)
            {
                //销售记录的统计
            }
            else if(4==input)
            {
                //商品销售占比统计
            }
            else
                break;
        }
        System.out.println("系统结束!");
    }
}

相关文章

网友评论

      本文标题:第五天下午、数据库的连接java到oracle

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