【java】基于MVC三层架构中的数据库增/删/改/查通用Dao类的操作(示例+源码+注释)

建立两个文件,一个是数据库增/删/改/查Dao通用基类BaseDao.java,一个是数据库增/删/改/查的操作mysql.java。两个文件分别在src目录下不同的【包】内,注意不在一个包内的调用方法。

【java】基于MVC三层架构中的数据库增/删/改/查通用Dao类的操作(示例+源码+注释)_第1张图片

一、建立数据库增/删/改/查Dao通用基类(BaseDao.java)

package Suoker.Dao;

import java.sql.*;

import suoker_web.Config_mysql;

// 操作数据库增/册/改/查的基类

public class BaseDao {

	Connection connection = null;
	PreparedStatement pst=null;
	Statement st=null;
	ResultSet rs=null;
	
	// ======== 获取数据库连接
	public boolean getconnection(){
	
	
	// 读取sql.properties配置文件中jdbc.driver.class值  ##配置文件方法参考:https://blog.csdn.net/dxnn520/article/details/112615586
	
	String driver=Config_mysql.getInstance().getString("jdbc.driver.class"); // Jdbc数据库驱动
	String url=Config_mysql.getInstance().getString("jdbc.connection.url");  // 数据库名称地址
	String username=Config_mysql.getInstance().getString("jdbc.connection.username"); // 数据库:用户名 
	String password=Config_mysql.getInstance().getString("jdbc.connection.password"); // 数据库:用户密码

		try {
			// 载入数据库驱动
			Class.forName(driver);
			// 建立数据库连接getconnection(jdbc:mysql://地址:端口号/数据库名,数据库用户名,密码)
			connection = DriverManager.getConnection(url,username,password);
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
		return true;
	
	}

	// ======== 查询数据表

	public ResultSet excuteQuery(String sql,Object[] params) // 对象数组作为参数  Object[] params 
	{

		if (this.getconnection()){
			try {
				pst=connection.prepareStatement(sql);
				// 遍历读取Object[] params的每一个值
				for(int i=0;i

二、数据库增/删/改/查的操作mysql.java

package suoker_web;
import Suoker.Dao.BaseDao; //从另一个包里调用BaseDao类(数据库操作基类) 
import java.sql.*;
import java.util.Date;
public class MySql {

	public void getSelect()
	{
		
		BaseDao basedao=new BaseDao();

		// =========== 数据库查询 
		
// 		String sql="select * from aaa ";
//		Object[] params={};
        String name_8="张飞";
 		String sql="select * from aaa where Name=?";
		Object[] params={name_8};
		ResultSet rs_grid=basedao.excuteQuery(sql,params);
		// 遍历读取Sql的数据
		System.out.println("======== 查询全部  ========\n");
		try {
			while(rs_grid.next()){
				
				String name=rs_grid.getString("Name");
				String old=rs_grid.getString("Old");
				System.out.println("姓名:"+name+"    年龄:"+old);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
		}	
		
		// =========== 增加记录 
		
		System.out.println("======== 删除张飞  \n");
		String sql1="INSERT INTO aaa(Name,Old) VALUES (?,?)";
		Object[] params1={"张飞",30};

		int s=basedao.excuteUpdate(sql1,params1); 
		if(s==1){
			System.out.println("增加【张飞】成功!");
		}else{
			System.out.println("增加【张飞】失败!");
		}
	
		// =========== 删除记录 
		
		System.out.println("======== 增加张飞  \n");
		String a_name="张飞";
		int a_old=30;
		String sql2="delete from aaa where Name=? and Old=?";
		Object[] params2={"张飞",30};

		int s2=basedao.excuteUpdate(sql2,params2); 
		if(s2==1){
			System.out.println("删除【张飞】成功!");
		}else{
			System.out.println("删除【张飞】失败!");
		}
		

		// =========== 更新记录 
		
		System.out.println("======== 更新数据  \n");
		String name_1="张飞";
		String name_2="刘备";
		String sql_3="update aaa set Name=? where Name=?";
		Object[] params3={name_2,name_1};
		// String sql_3="update aaa set Name='刘备' where Name='张飞'";
		// Object[] params3={};

		int s3=basedao.excuteUpdate(sql_3,params3); 
		if(s3==1){
			System.out.println("更新【张飞】成功!");
		}else{
			System.out.println("更新【张飞】失败!");
		}
		
		// 关闭数据库连接
		boolean aaa=basedao.close();
		if(aaa!=true){
			System.out.println("关闭数据库失败!");
			return;
		}else{
			System.out.println("关闭数据库成功!");
			
		}		
		
	}
	
	public static void main(String[] args) {
		
		
		MySql getSelect = new MySql(); // 声明当前类
		getSelect.getSelect(); // 执行方法

	}

}

 

 

 

 

 

 

 

 

你可能感兴趣的:(21.【Java】,数据库,mysql,java,jdbc,sql)