新建web项目,并连接到Oracle数据库,实现简单的控制台输出数据库中的表记录

1、MyEclipse中新建web项目

1.1file->new->web project

这里写图片描述

1.2输入项目名->finish

这里写图片描述
项目新建完成,项目结构如下图。
####src目录存放Java代码

2、数据库中建表

由于是测试数据库的连接,所以该表比较简单,只是一个users表,有id,username,password属性。
代码如下:

--建立users表
create table users
(
id number(4),
username varchar2(20),
password char(6)
);
--插入一些数据
insert into users(id, username, password)
values(1001, '小米', '123456');
insert into users(id, username, password)
values(1002, '小为', '654321');
insert into users(id, username, password)
values(1003, '小兴', '789789');

至此,准备工作已经完成,剩下的就是主要代码的添加!!!

3、在新建的项目中添加代码

项目最后的目录如下图,下面就是依次添加相应的包和类。
这里写图片描述

3.1首先创建实体类

右键src–>new –>package,输入包名(name)’com.entity’–>finish。
右键新创建的包–>new–>class,输入类名(类名要首字母大写)‘Users’(和数据库中的表名相对应)。
Users实体类代码

package com.entity;

/**
 * Users实体类
 * @author YuChen
 *
 */
public class Users {
    private int id;
    private String username;//用户名
    private String passwards;//密码

    public Users() {
        super();
    }

    public Users(int id, String username, String passwards) {
        super();
        this.id = id;
        this.username = username;
        this.passwards = passwards;
    }

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPasswards() {
        return passwards;
    }
    public void setPasswars(String passwards) {
        this.passwards = passwards;
    }

    //重写的toString()方法,便于测试Users类
    @Override
    public String toString() {
        System.out.println("id:"+this.getId()+", username:"+this.getUsername()+",password"+this.getPasswards());
        return super.toString();
    }
}

3.2创建测试类

用同3.1的方法创建com.test包—-Test类
Test测试类的代码

package com.test;

import com.entity.Users;

/**
 * Test测试类
 * @author YuChen
 *
 */
public class Test {
    public static void main(String[] args) {
        //测试Users类
        Users user = new Users(1000, "张三", "123123");
        user.toString();
        //由于Users类中重写了toString方法,则会在控制台输出 实例化的user对象的信息,证明Users类写的正确!!!

    }
}

控制台输出:::
控制台输出:::

3.3创建工具类

用同样的方法,创建com.util—-BaseDao.java
BaseDao.java 工具类代码

package com.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * BaseDao工具类
 * @author YuChen
 *
 */
public class BaseDao {
    //1、执行静态方法,加载数据库驱动
    static {
        try {
            System.out.println("正在加载数据库驱动...");
            System.out.println("Class.forName('oracle.jdbc.driver.OracleDriver');");

            Class.forName("oracle.jdbc.driver.OracleDriver");//这边参数的意义,url:jdbc数据库网址 user:用户名(String类型) password:密码(String类型)[这边的数据库密码和用户名填写自己的]。同样由于getConnection方法会抛出SQLException,要使用try-catch

            System.out.println("已加载数据库驱动!!!\n");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    //2、创建数据库连接的方法
    public Connection getConnection() {
        Connection connection;
        try {
            System.out.println("正在连接到数据库...");
            System.out.println("connection = DriverManager.getConnection('jdbc:oracle:thin:@127.0.0.1:1521:orcl', 'scott', 'ok');");

            connection = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "ok");///这边参数的意义,url:jdbc数据库网址 user:用户名 password:密码。同样由于getConnection方法会抛出SQLException,要使用try-catch

            System.out.println("已连接到scott数据库!!!\n");
            return connection;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
    //3、关闭数据库连接,释放JDBC资源的方法
    public void closeConnection(Connection connection) {
        if (connection != null) {
            try {
                System.out.println("准备释放jdbc资源,断开数据库连接...");
                System.out.println("connection.close();");

                connection.close();//立即释放jdbc资源,而不是等自动释放

                System.out.println("已断开数据库连接并且释放了jdbc资源\n");
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }
}


工具类已经创建好,可以使用Test.java来测试一下。
在测试之前,首先把需要的数据库ojdbc6.jar/ojdbc14.jar引入。
下载上面任意一个jar包,复制到项目的WebRoot–>WEB-INF–>lib目录。
开始测试,在测试类中添加如下代码

package com.test;

import java.sql.Connection;

import com.entity.Users;
import com.util.BaseDao;

/**
 * Test测试类
 * @author YuChen
 *
 */
public class Test {
    public static void main(String[] args) {
//      //测试Users类
//      Users user = new Users(1000, "张三", "123123");
//      user.toString();
//      //由于Users类中重写了toString方法,则会在控制台输出 实例化的user对象的信息

        //测试BaseDao类
        BaseDao baseDao = new BaseDao();
        Connection connection = baseDao.getConnection();
        baseDao.closeConnection(connection);
    }
}

run as –>java application,控制台输出如下
这里写图片描述
至此,说明BaseDao.java正确,可以连接到数据库,并且可以断开数据库连接。既然能连接到数据库,下面就要进行SQL查询了,把查询的结果临时存放到一个resultset中。

3.4创建UsersDao类

创建com.dao—-UsersDao.java
UsersDao.java

package com.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.entity.Users;
import com.util.BaseDao;

/**
 * dao层的UsersDao类,用来实现增删改查的SQL语句
 * @author YuChen
 *
 */
public class UsersDao {
    BaseDao db = new BaseDao();//初始化工具类
    String sql = "select * from Users";//封装sql语句,这边的‘Users’要和数据库中的表 同名

    /**
     * 查询方法
     * @return Lisr<Users> 一个list(相当于一个大数组)
     * @return
     */
    public List<Users> findUsers() {
        List<Users> users = new ArrayList<Users>();//初始化list
        //1、连接到数据库
        Connection connection = db.getConnection();

        try {
            //2、执行SQL查询
            PreparedStatement pst = connection.prepareStatement(sql);
            //3、把查询结果放到结果集
            ResultSet rs = pst.executeQuery();
            while (rs.next()) {
                Users user = new Users(rs.getInt(1), rs.getString(2), rs.getString(3));
                users.add(user);
            }//循环将结果保存到list中。 使用rs.get***()获取到结果集里面的相应类型的每一列的值,然后通过构造方法赋值给user,进而通过add()保存到list
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //4、断开数据库连接
            db.closeConnection(connection);//放到finally中,无论是否抛出异常,最后都会执行该语句
        }
        return users;
    }
}

3.5测试类中进行连接测试

package com.test;

import java.sql.Connection;
import java.util.List;

import com.dao.UsersDao;
import com.entity.Users;
import com.util.BaseDao;

/**
 * Test测试类
 * @author YuChen
 *
 */
public class Test {
    public static void main(String[] args) {
//      //测试Users类
//      Users user = new Users(1000, "张三", "123123");
//      user.toString();
//      //由于Users类中重写了toString方法,则会在控制台输出 实例化的user对象的信息

        //测试BaseDao类
//      BaseDao baseDao = new BaseDao();
//      Connection connection = baseDao.getConnection();
//      baseDao.closeConnection(connection);
        //测试UsersDao
        UsersDao usersDao = new UsersDao();
        List<Users> users = usersDao.findUsers();
        //循环输出所有数据库中的值
        for (Users user : users) {
            System.out.println("id:"+user.getId()+",username:"+user.getUsername()+",password"+user.getPasswards());
        }

    }
}

控制台输出:
这里写图片描述
至此,已经结束!有不妥之处欢迎留言!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值