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

来源:互联网 发布:电子书排版编辑软件 编辑:程序博客网 时间:2024/06/08 06:36

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());        }    }}

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