1、MyEclipse中新建web项目
1.1file->new->web project
1.2输入项目名->finish
项目新建完成,项目结构如下图。
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());
}
}
}
控制台输出:
至此,已经结束!有不妥之处欢迎留言!!