Java与oracle数据库连接—–JDBC
Dao工具的创建
**写博客的目的及好处
1,为了把完成的知识点整理出来,
2,等同督促自己做学习总结
3,方便自己及同行者的阅览
4,如有有心者,可以分享更精的知识
————————————————
该案例使用的是oracle中解锁的scott表
案例是在java中使用sql语句来调用数据库中数据,实现在java中实现用户的增删改查操作
oracle 的安装是件头疼的事,意外的就会在安装时让你电脑不得 不去重新装系统了,但是这只是过程,结果我们的电脑上都会有oracle的,我在电脑上设置的oracle状态是手动登陆,就是在电脑–管理—服务,每次开机使用时手动开启,因为,装了oracle电脑就很吃不消额。。。
首先,解锁scott表:在装oracle时使用的密码,去新建一个表空间,在该表中解锁oracle自带的表scott
alter user scott account unlock;---解锁
alter user scott identified by scott123;---设置密码
–在java中使用面向对象,分层模式
使用的是三层模式,
1,数据库访问层
2,业务逻辑层
3,表示层
步骤—
1,创建实体类,
2,创建工具类
3,dao接口,dao 实现类
4,组织界面
一,定义实体
scott表较简单,创建实体时要注意关联关系,封装外键
二,创建工具类
把每一功能细分好,这样可以更加细致的调用
我把连接,执行sql语句,处理结果最后close,最后调用关闭
“`
public class BaseDao{
//类的成员,属性
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
//定义静态常量
private static final String DRIVER_CLASS=“oracle.jdbc.driver.OracleDriver”;
private static final String USER=”scott”;
private static final String PASS=”scott123”;
//连接数据库
public Connection getConnection(){
try {
Class.forName("oracle.jdbc.drier.OracleDriver");
conn=DriverManager.getConnection(URL,"scott","aya123");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
//增
public int executeUpdate(String sql){
int ret=0;
conn=this.getConnection();
try {
ps=conn.prepareStatement(sql);
ret=ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ret;
}
//重载,带占位符的
public int executeUpdate(String sql ,Object[] parms){
int ret=0;
conn=this.getConnection();
try {
ps=conn.prepareStatement(sql); //获得sql语句得到的数据,放在ps“这两装载车上”
if(parms!=null){
for(int i=0;i<parms.length;i++){
ps.setObject(i+1, parms[i]); //把ps"车上的数数据"分给parms这个数组中
}
}
ret=ps.executeUpdate();//分好了返回1,否则返回0
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ret;
}
//重载,
public int executeUpdate(String sql ,Object parms){
return executeUpdate(sql,new Object[]{parms});
}
//List 存放,带占位符
public int executeUpdate( String sql,List<Object> parms){
int ret=0;
conn=this.getConnection();
try {
ps=conn.prepareStatement(sql);
if(parms!=null){
for(int i=0;i<parms.size();i++){
ps.setObject(i+1, parms.get(i));
}
}
ret=ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ret;
}
/**
* jdbc查询,带占位符
* @param sql
* @param parms
* @return rs
*/
public ResultSet executeQuery(String sql ,Object[] parms){
conn=this.getConnection();
try {
ps=conn.prepareStatement(sql);
if(parms!=null){
for(int i=0;i<parms.length;i++){
ps.setObject(i+1, parms[i]);
}
}
rs=ps.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
//方法重载
public ResultSet executeQuery(String sql,Object parms){
return executeQuery(sql,new Object[]{parms});
}
public ResultSet executeQuery(String sql,List parms){
return executeQuery(sql,parms.toArray());
}
public ResultSet executeQuery(String sql){
return executeQuery(sql,new Object[]{});
}
public void close(){
try {
conn.close();
ps.close();
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}