连接数据库的方法和方式

前景说明:
        在我们刚开始使用数据库的时候,发现只能在mysql编辑器里面使用sql语句来完成对数据库的操作,那我们怎么来通过Java来操控数据库呢?这个时候就有了JDBC的出现。

1.什么是JDBC

        JDBC 指java数据库连接(Java Database Connectivity),是一种标准的Java应用编程接口( JAVA API),JDBC本质上是Sun公司制定的一套接口(interface)!原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句来达到操控数据库的功能。

        从根本上来说,JDBC 是一种规范,它提供了一套完整的接口,允许便携式访问到底层数据库,因此可以用 Java 编写不同类型的可执行文件,例如:

  1. Java 应用程序
  2. Java Applets
  3. Java Servlets
  4. Java ServerPages (JSPs)
  5. Enterprise JavaBeans (EJBs)

所有这些不同的可执行文件就可以使用 JDBC 驱动程序来访问数据库,这样可以方便的访问数据。JDBC 具有 ODBC 一样的性能,允许 Java 程序包含与数据库无关的代码。 

2.连接步

1.注册驱动

首先需要导入mysql驱动jar包

第一步:在当前项目下创建一个lib的目录: 

第二步:把mysql的驱动jar拷贝到lib目录:

  

第三步:把lib添加到项目中,作为当前项目的第三方库

 

然后找到自己的jar包导入即可

2.加载并连接驱动

注意:加载驱动类就只有一句话::Class.forName("com.mysql.jdbc.Driver"),而且要带上包名,不能只导入Driver,可以使用下面的方法,更快捷准确

    //成员变量数据库连接对象
    Connection myCon;
   
     * 连接数据库
     * @param jdbc 方式
     * @param username  用户名
     * @param password 密码 

    public void createCon(String jdbc,String username,String password){
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            myCon = DriverManager.getConnection(jdbc,username,password);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("数据库连接配置失败");
        }
    }
    public boolean hasResult(String sql){
        try {
            Statement statement = myCon.createStatement();
            ResultSet resultSet = statement.executeQuery(sql);
            if (resultSet.next()){
                return true;
            }
            return false;
        } catch (SQLException throwables) {
            throwables.printStackTrace();
            System.out.println("查询操作失败");
            return false;
        }
    }

     * 查询数据库中的结果,获取为一个list<map>
     * @param sql
     * @return

    public List<Map<String,String>> queryResult(String sql){
        try {
            Statement statement = myCon.createStatement();
            ResultSet resultSet = statement.executeQuery(AutoTools.replaceParam(sql));
            List<Map<String,String>> datalist=new ArrayList<>();  //所有行存成一个list
            while(resultSet.next()){
                //每一行存成一个map
                Map<String,String> lineData=new HashMap<>();
                for (int i = 1; i <= resultSet.getMetaData().getColumnCount(); i++) {
                    //存储列的名称,和一行数据的对应值为键值对
                                 
   lineData.put(resultSet.getMetaData().getColumnName(i),resultSet.getString(i));
                }
                datalist.add(lineData);
            }
            return datalist;
        } catch (SQLException throwables) {
            throwables.printStackTrace();        
            return  new ArrayList<>(); //即使报错了,也还是返回一个空列表。
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AMING20220827

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值