JAVA JDBC实际开发模式(MVC三层架构模式)数据库的连接(一)之查询数据

MVC三次架构模式

View视图层
Control控制层
Model模型层
DB数据库

模型有两部分:
1、对数据库的 映射
2、对数据库的 映射的 抽象方法
增删改查(简称CRUD)

我们一般是从下网上执行:先处理好数据库,然后建立模型层,之后是处理控制层,最后解决视图层。
在上一篇的博客中,我已经将数据库这一层搭建好,所以我们现在直接进入第二部分,建立模型层

在src文件夹里面创建一个包(这个包用来存储一个类,这个类对应了我们的数据库 对象,就是我们创建的那张表)
在这里插入图片描述
我的表名为students所以我命名我的类名为students
在这里插入图片描述
这个类简称为一个视觉类,有好多个字段对应于表里面的字段
在这里插入图片描述
之后给这些字段生成getter setter方法
右击空白处,点击source,后面便可以看到getter setter方法自动生成
在这里插入图片描述
在这里插入图片描述
代码自动生成
在这里插入图片描述
再创建一个类进行一系列的增删该查(CRUD)
在这里插入图片描述
编辑其视觉类所对应的方法
如下

package com.DemoJdbc.dao;

import java.util.List;

import com.DemoJdbc.model.students;

public class StudentsDAO {
	//增
	public void addStudents() {
		
	}
	
	//改(更新)
	public void updateStudents() {
		
	}
	
	//删
	public void delStudents() {
		
	}
	
	//查 注意要有返回值,因为方法类型不是void
	public List<students> query(){
		return null;
	}
	
	//细化  查询单个学生 注意方法名不能够一样
	public students get() {
		return null;
	}
}

修改DBUtil类,增加一个静态块

package com.DemoJdbc.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Statement;

public class DBUtil {
	private static final String URL="jdbc:mysql://127.0.0.1:3306/cxpdb";
	//															 数据库的名称
	private static final String NAME="root";
	//private static final String PASSWORD=;
	
	//增加连接
	private static Connection conn = null;
	//增加一个静态块
	static {
		try {
			//1、加载驱动程序
			Class.forName("com.mysql.jdbc.Driver");
			//2、获得数据库的连接
		    conn = DriverManager.getConnection(URL, NAME, null);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	//对外提供一个方法来获取这个链接
	public static Connection getConnection() {
		return conn;
	}
	public static void main(String[] args) throws Exception {
		//1、加载驱动程序
		Class.forName("com.mysql.jdbc.Driver");
		//2、获得数据库的连接
		Connection conn = DriverManager.getConnection(URL, NAME, null);
		//3、通过数据库的连接操作数据库,实现增删改查
		java.sql.Statement stmt = conn.createStatement();
		ResultSet rs = stmt.executeQuery("select user_name,age from students");
		
		while(rs.next()) {
			System.out.println(rs.getString("user_name")+","+rs.getInt("age"));
		}
	}
}

此时我们便可以通过DBUtil这个类来拿到这个链接
编辑DAO层代码

package com.DemoJdbc.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.DemoJdbc.db.DBUtil;
import com.DemoJdbc.model.students;
//实体类的第一个字母必须大写
public class StudentsDAO {
	//增
	public void addStudents() {
		Connection conn = DBUtil.getConnection();
	}
	
	//改(更新)
	public void updateStudents() {
		
	}
	
	//删
	public void delStudents() {
		
	}
	
	//查 注意要有返回值,因为方法类型不是void
	public List<students> query() throws Exception{
		//验证
		Connection conn = DBUtil.getConnection();//连接完成
		
		//进行查询
		java.sql.Statement stmt = conn.createStatement();
		ResultSet rs = stmt.executeQuery("select user_name,age from students");
		
		//此时需要返回一个LIST
		List<students> stu = new ArrayList<students>();
		students st = null;
		while(rs.next()) {
			st = new students();
			st.setUser_name(rs.getString("user_name"));
			st.setAge(rs.getInt("age"));
			stu.add(st);
		}
		return stu;
	}
	
	//细化  查询单个学生 注意方法名不能够一样
	public students get() {
		return null;
	}
}


完成以后再创建一个包来处理控制层
在这里插入图片描述
StudentsAction.java代码如下

package com.DemoJdbc.action;

import java.util.List;

import com.DemoJdbc.dao.StudentsDAO;
import com.DemoJdbc.model.students;

public class StudentsAction {
	public static void main(String[] args) throws Exception {
		//写一个main方法来测试刚刚我们写的查询方法、		
		StudentsDAO stu = new StudentsDAO();
		List<students> st = stu.query();
		
		//遍历集合
		for (students students : st) {
			System.out.println(students.getUser_name()+","+students.getAge());
		}
	}
}

在这里插入图片描述
控制层处理完毕
进行测试
先清空控制台
在这里插入图片描述
编译运行
结果一样
在这里插入图片描述
总结

DBUtil工具类数据库的连接
DAO用于执行业务方法即增删改查(CRUD)
  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值