日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DAO模式多表联查案例

發布時間:2024/4/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DAO模式多表联查案例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

查詢所有學生記錄,包含年級名稱

一、BaseDao工具類

package BaseDao;

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

public class BaseDao {
/**
* 連接數據庫
*/
private static final String DRIVER="com.mysql.jdbc.Driver";
private static final String URL="jdbc:mysql://localhost:3306/myschool? useUniCode=true&characterEncoding=utf-8";
private static final String USERNAME="root";
private static final String PASSWORD="123";
Connection connection;
PreparedStatement statement;
ResultSet rs;

/**
* 獲取連接
* @throws Exception
*/
public Connection getConnection(){
try {
Class.forName(DRIVER);
if (connection==null||connection.isClosed()) {
connection= DriverManager.getConnection(URL, USERNAME, PASSWORD);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}
return connection;
}

/**
* 增刪改
* @throws Exception
*/

public int executeUpdate(String sql,Object...obj) throws Exception{
//獲取連接
getConnection();
//獲取prepareStatement對象
statement= connection.prepareStatement(sql);
//循環加載參數
for (int i = 1; i <=obj.length; i++) {
statement.setObject(i,obj[i-1]);
}
//執行SQL
int count=statement.executeUpdate();
return count;
}

/**
* 查詢的方法
* @throws Exception
*/
public ResultSet executeQuery(String sql,Object...obj) throws Exception{
//獲取連接
getConnection();
//獲取
statement= connection.prepareStatement(sql);
//循環加載參數
for (int i = 1; i <=obj.length; i++) {
statement.setObject(i, obj[i-1]);
}
//執行SQL
rs= statement.executeQuery();
return rs;
}

/**
* 回收資源
* @throws Exception
*/
public void clossResource() throws Exception{
if (rs!=null) {
rs.close();
}if (statement!=null) {
statement.close();
}if (connection!=null) {
connection.close();
connection=null;
}
}
}

?

?

二、Students實體類

package com.students;

public class students {
private int StudentNo;
private String LoginPwd;
private String studentName;
private int sex;
private String Phone;
private String Address;
private String bornDate;
private String Email;
private String IdentityCard;
private int Gradeid;

public int getGradeid() {
return Gradeid;
}
public void setGradeid(int gradeid) {
Gradeid = gradeid;
}
private Grade grade;

public Grade getGrade() {
return grade;
}
public void setGrade(Grade grade) {
this.grade = grade;
}

public int getStudentNo() {
return StudentNo;
}
public void setStudentNo(int studentNo) {
StudentNo = studentNo;
}
public String getLoginPwd() {
return LoginPwd;
}
public void setLoginPwd(String loginPwd) {
LoginPwd = loginPwd;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getPhone() {
return Phone;
}
public void setPhone(String phone) {
Phone = phone;
}
public String getAddress() {
return Address;
}
public void setAddress(String address) {
Address = address;
}
public String getBornDate() {
return bornDate;
}
public void setBornDate(String bornDate) {
this.bornDate = bornDate;
}
public String getEmail() {
return Email;
}
public void setEmail(String email) {
Email = email;
}
public String getIdentityCard() {
return IdentityCard;
}
public void setIdentityCard(String identityCard) {
IdentityCard = identityCard;
}
}

?

三、StudentDao接口

package com.student.dao;

import java.util.List;

import com.students.students;

public interface StudentDao {
/*
* 查詢得方法
*/
List<students> stu() throws Exception;
}

?

?

四、StudentDaoImpl接口實現類

package com.student.dao.impl;

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

import BaseDao.BaseDao;

import com.student.dao.StudentDao;
import com.students.Grade;
import com.students.students;

public class StudentDaoImpl extends BaseDao implements StudentDao{

@Override
public List<students> stu() throws Exception {
List<students> students=new ArrayList<students>();

//準備SQL
String sql="SELECT student.*,grade.* FROM student,grade WHERE student.GradeId=grade.GradeID";
ResultSet rs = executeQuery(sql);

if (rs!=null) {
while (rs.next()) {
students stu=new students();
stu.setStudentNo(rs.getInt("StudentNo"));
stu.setLoginPwd(rs.getString("LoginPwd"));
stu.setStudentName(rs.getString("StudentName"));
stu.setSex(rs.getInt("Sex"));
stu.setGradeid(rs.getInt("Gradeid"));
stu.setPhone(rs.getString("Phone"));
stu.setAddress(rs.getString("Address"));
stu.setBornDate(rs.getString("BornDate"));
stu.setEmail(rs.getString("Email"));
stu.setIdentityCard(rs.getString("IdentityCard"));
Grade grade = new Grade();
grade.setGradeName(rs.getString("GradeName"));
stu.setGrade(grade);
students.add(stu);
}
}
clossResource();
return students;
}
}

?

五、Test實現類

package com.student.dao.impl;

import java.util.List;

import com.student.dao.StudentDao;
import com.students.students;

public class Test {

public static void main(String[] args) throws Exception {
StudentDao studentDao=new StudentDaoImpl();
System.out.println("學號\t密碼\t姓名\t性別\t年級編號\t\t地址\t手機號\t郵箱\t日期\t身份證號\t 年紀名稱");
List<students> stu=studentDao.stu();
for (students students : stu) {
System.out.println(students.getStudentNo()+"\t"+students.getLoginPwd()+"\t"+students.getStudentName()+"\t"+students.getSex()+"\t"+students.getGradeid()+"\t"+students.getAddress()+"\t"+students.getPhone()+"\t"+students.getEmail()+"\t"+students.getBornDate()+"\t"+students.getIdentityCard()+"\t"+students.getGrade().getGradeName());
}
}
}

?

?

?

?

?

查詢s1年級下的學生記錄

一、grade類:

package com.myschool.entity; import java.util.List; public class grade {
  ?private int gradeid;  //年級編號
  ?private String gradename;  //年級名稱
?
??  ? public List<student> list;  //學生表集合
?
?  public List<student> getList() {
??    return list;
?  }
  ?public void setList(List<student> list) {
    ??this.list = list;
?  }
  ?public int getGradeid() {
?    ?return gradeid;
  ?}
  ?public void setGradeid(int gradeid) {
?    ?this.gradeid = gradeid;
  ?}
  ?public String getGradename() {
?    ?return gradename;
  ?}
?  public void setGradename(String gradename) {
?    ?this.gradename = gradename;
  ?}
?  //帶參構造
  ?public grade(int gradeid, String gradename) {
?    ?super();
?    ?this.gradeid = gradeid;
??    this.gradename = gradename;
  ?} //無參構造
  ?public grade(){
??
  ?} } 二、Grade實現類 @Override
  ?public grade getgrade(String gradename) throws Exception {
    ??List<student> list1=new ArrayList<student>();
?    ?String sql="select s.*,g.GradeName from student as s,grade as g where s.GradeId=g.GradeId and g.gradename=?";
?    ?Object[] obj={gradename};
??    rs=executeQuery(sql, obj);
?    ?grade grade=null;
?    ?if (rs!=null) {
???      while(rs.next()){
??        ??grade=new grade();
???        ?student student=new student();
??        ??student.setStudentno(rs.getInt("studentno"));
????        student.setStudentname(rs.getString("studentname"));
??        ??list1.add(student);
??        ??grade.setGradename(rs.getString("gradename"));
??      ?}
?      ??grade.setList(list1);
    ??}
    ??return grade;
?  } 三、Test實現類 public static void main(String[] args) throws Exception {
    ??getstudent();
?    ?System.out.println("=================================");
??    grade grade=dao.getgrade("S1");
??    for (student stu : grade.getList()) {
???      System.out.println(stu.getStudentno()+"\t"+stu.getStudentname()+"\t"+grade.getGradename());
??    } }

?

轉載于:https://www.cnblogs.com/tinghao/p/10945031.html

總結

以上是生活随笔為你收集整理的DAO模式多表联查案例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。