Java程序操作Oracle数据库,的增,删,改,查所有,按ID查,按条件查的封装类
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java程序操作Oracle数据库,的增,删,改,查所有,按ID查,按条件查的封装类及测试数据的方法
//这是一个学生类
package entity;
public class NewStudent {
private String id;
private String name;
private String sex;
private int age;
private int minAge=-1;
private int maxAge=-1;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getMinAge() {
return minAge;
}
public void setMinAge(int minAge) {
this.minAge = minAge;
}
public int getMaxAge() {
return maxAge;
}
public void setMaxAge(int maxAge) {
this.maxAge = maxAge;
}
}
//这是封装好的用于连接和关闭Oracle数据库的类
package dao;
import java.sql.*;
public class BaseDao {
//1、------连接Oracle数据库操作
public static Connection getConnection()throws Exception{ Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL";
return DriverManager.getConnection(url, "SCOTT", "admin");
}
//2、------关闭Oracle数据库操作
public static void close(ResultSet rs,Statement sta,Connection con) throws Exception{
if(rs!=null){
rs.close();
}
if(sta!=null){
sta.close();
}
if(con!=null){
con.close();
}
}
}
/**
* 1、专门针对NewStudent表操作的数据访问类
* 2、最常见的六大方法
* 3、增,删,改,查所有,按ID查,按条件查。
* @author NO13
*
*/
package dao;
import java.sql.*;
import entity.*;
import java.util.*;
public class NewStudentDao {
//1、------插入数据的方法
public boolean save(NewStudent obj){
Connection con = null;
//预编译操作句柄
PreparedStatement psta = null;
boolean flag = false;
//SQL语句
String sql = "insert into newstudent values('stu_'||sq_newstu.nextval,?,?,?)";
try{
con = BaseDao.getConnection();
//将SQL语句传入进行预编译
psta = con.prepareStatement(sql);
//SQL语句里面的在以下将用对象的里面的属性替换掉
psta.setString(1, obj.getName());
psta.setString(2, obj.getSex());
psta.setInt(3, obj.getAge());
//判断SQL语句是否执行成功
flag = psta.executeUpdate()>0;
}catch(Exception e){
e.printStackTrace();
}finally{
try{
//关闭连接
BaseDao.close(null, psta, con);
}catch(Exception e){
e.printStackTrace();
}
return flag;
}
}
//2、------修改数据的方法
public boolean update(NewStudent obj){
Connection con = null;
PreparedStatement psta = null;
boolean flag = false;
String sql = "update newstudent set name=?,sex=?,age=? where id=?";
try{
con = BaseDao.getConnection();
//将SQL语句传入进行预编译
psta = con.prepareStatement(sql);
//SQL语句里面的在以下将用对象的里面的属性替换掉
psta.setString(1, obj.getName());
psta.setString(2, obj.getSex());
psta.setInt(3, obj.getAge());
psta.setString(4, obj.getId());
//判断SQL语句是否执行成功
flag = psta.executeUpdate()>0;
}catch(Exception e){
e.printStackTrace();
}finally{
try{
BaseDao.close(null, psta, con);
}catch(Exception e){
e.printStackTrace();
}
return flag;
}
}
//3、------删除数据的方法
public boolean remove(String id){
Connection con = null;
PreparedStatement psta = null;
boolean flag = false;
String sql = "delete from newstudent where id = ?";
try{
con = BaseDao.getConnection();
psta = con.prepareStatement(sql);
psta.setString(1, id);
flag = psta.executeUpdate()>0;
}catch(Exception e){
e.printStackTrace();
}finally{
try{
BaseDao.close(null, psta, con);
}catch(Exception e){
e.printStackTrace();
}
return flag;
}
}
//4、---*---查询所有数据的方法
public ArrayList findAll(){
Connection con = null;
PreparedStatement psta = null;
ResultSet rs = null;
String sql = "select * from newstudent";
ArrayList list = new ArrayList();
try{
con = BaseDao.getConnection();
psta = con.prepareStatement(sql);
rs = psta.executeQuery();
while(rs.next()){
NewStudent obj = new NewStudent();
obj.setId(rs.getString(1));
obj.setName(rs.getString(2));
obj.setSex(rs.getString(3));
obj.setAge(rs.getInt(4));
list.add(obj);
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
//关闭Oracle连接
BaseDao.close(rs, psta, con);
}catch(Exception e){
e.printStackTrace();
}
return list;
}
}
//5、---**---按ID查询数据的方法
public NewStudent findById(String id){
Connection con = null;
PreparedStatement psta = null;
ResultSet rs = null;
String sql = "select * from newstudent where id = ?";
NewStudent obj = null;
try{
con = BaseDao.getConnection();
psta = con.prepareStatement(sql);
psta.setString(1, id);
rs = psta.executeQuery();
if(rs.next()){
obj = new NewStudent();
obj.setId(rs.getString(1));
obj.setName(rs.getString(2));
obj.setSex(rs.getString(3));
obj.setAge(rs.getInt(4));
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
BaseDao.close(rs, psta, con);
}catch(Exception e){
e.printStackTrace();
}
return obj;
}
}
//6、---***---按条件查询数据的方法
public ArrayList findByWhere(NewStudent param){ Connection con = null;
PreparedStatement psta = null;
ResultSet rs = null;
ArrayList list = new ArrayList();
ArrayList params = new ArrayList();
String sql = "select * from newstudent where 1=1";
if(param.getId()!=null){
sql = sql + " and id=?";
params.add(param.getId());
}
if(param.getName()!=null){
sql = sql + " and name like ?";
params.add("%"+param.getName()+"%");
}
if(param.getSex()!=null){
sql = sql + " and sex=?";
params.add(param.getSex());
}
if(param.getMinAge()!=-1){
sql = sql + " and age>=?";
params.add(param.getMinAge());
}
if(param.getMaxAge()!=-1){
sql = sql + " and age<=?";
params.add(param.getMaxAge());
}
try{
con = BaseDao.getConnection();
psta = con.prepareStatement(sql);
for(int i = 0;i<params.size();i++){
psta.setString(i+1, params.get(i).toString());
}
rs = psta.executeQuery();
while(rs.next()){
NewStudent obj = new NewStudent();
obj.setId(rs.getString(1));
obj.setName(rs.getString(2));
obj.setSex(rs.getString(3));
obj.setAge(rs.getInt(4));
list.add(obj);
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
BaseDao.close(rs, psta, con);
}catch(Exception e){
e.printStackTrace();
}
return list;
}
}
}
//这个一个用于测试以上方法的main方法主程序
package dao;
import java.util.*;
import entity.NewStudent;
public class test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
NewStudentDao newstu = new NewStudentDao();
//查询所有
ArrayList list = newstu.findAll();
System.out.println("<<-----1、查询所有的方法----->>");
for(int i = 0;i<list.size();i++){
NewStudent student = (NewStudent)list.get(i);
System.out.println(student.getId()+"\t"+student.getName()+" \t"+student.getSex()+"\t"+student.getAge());
}
System.out.println("<<-----2、根据ID查询方法----->>");
NewStudent stu = newstu.findById("stu_4");
System.out.print(stu.getId()+"\t"+stu.getName()+"\t"+stu.ge
tSex()+"\t"+stu.getAge());
System.out.println();
System.out.println("<<-----3、插入数据的方法----->>");
NewStudent stus = new NewStudent();
stus.setName("雪儿");
stus.setSex("女");
stus.setAge(19);
newstu.save(stus);
System.out.println("数据插入中...");
System.out.println("---数据插入成功!---");
System.out.println("<<-----4、修改数据的方法----->>");
NewStudent stus1 = new NewStudent();
stus1.setId("stu_2");
stus1.setName("美婷");
stus1.setSex("女");
stus1.setAge(17);
newstu.update(stus1);
System.out.println("数据修改中...");
System.out.println("---数据修改成功!---");
System.out.println("<<-----5、删除数据的方法----->>");
boolean flag = newstu.remove("stu_10");
if(flag == true){
System.out.println("数据删除中...");
System.out.println("数据删除成功!");
}else{
System.out.println("数据删除中...");
System.out.println("数据删除失败!");
}
System.out.println("<<-----6、条件查询数据的方法----->>");
NewStudent stu3 = new NewStudent();
stu3.setName("王婷");
ArrayList lists = newstu.findByWhere(stu3);
for(int i = 0;i<lists.size();i++){
NewStudent students = (NewStudent)lists.get(i);
System.out.println(students.getId()+"\t"+students.getName() +"\t"+students.getSex()+"\t"+students.getAge());
}
}
}
//这个最终运行后的结果
<<-----1、查询所有的方法----->>
stu_15 永邦男35
stu_16 永邦男35
stu_17 永邦男35
stu_1 张三男18
stu_2 李斯女17
stu_3 王婷女18
stu_4 张三男19
stu_5 恬恬女20
stu_6 米琪女24
stu_7 艾米女23
stu_8 小白男32
stu_9 小白男32
stu_14 小闵女25
stu_11 小白男32
stu_12 书全男33
stu_13 小闵女25
stu_18 永邦男35
stu_19 永邦男35
stu_20 永邦男35
<<-----2、根据ID查询方法----->>
stu_4 张三男19
<<-----3、插入数据的方法----->>
数据插入中...
---数据插入成功!---
<<-----4、修改数据的方法----->>
数据修改中...
---数据修改成功!---
<<-----5、删除数据的方法----->>
数据删除中...
数据删除失败!
<<-----6、条件查询数据的方法----->> stu_3 王婷女18。