Java实训第三课
2020/7/11
1、接着Java实训第二课,我们在dao包内创建四个接口
collegedao内代码为
import net.qiuzihan.student.bean.College;
/**
* 功能:学校数据访问接口
* 作者:邱紫含
* 日期:2020年07月11日
*/
public interface CollegeDao {
College findById(int id); // 按编号查询学校记录
int update(College college); // 更新学校记录
}
status内代码为
/**
* 功能:状态数据访问接口
* 作者:邱紫含
* 日期:2020年07月11日
*/
public interface StatusDao {
StatusDao findById(int id); // 按编号查询状态记录
int update(StatusDao status); // 更新状态记录
}
studentdao内代码为
import java.util.List;
import java.util.Vector;
/**
* 功能:学生数据访问接口
* 作者:邱紫含
* 日期:2020年07月11日
*/
public interface StudentDao {
int insert(StudentDao student); // 插入学生记录
int deleteById(String id); // 按编号删除学生记录
int deleteByClass(String clazz); // 按班级删除学生记录
int deleteByDepartment(String department); // 按系部删除学生记录
int update(StudentDao student); // 更新学生记录
StudentDao findById(String id); // 按编号查询学生
List<StudentDao> findByName(String name); // 按姓名查询学生记录
List<StudentDao> findByClass(String clazz); // 按班级查询学生记录
List<StudentDao> findByDepartment(String department); // 按系部查询学生记录
List<StudentDao> findAll(); // 查询全部学生记录
Vector findRowsBySex(); // 按性别统计人数
Vector findRowsByClass(); // 按班级统计人数
Vector findRowsByDepartment(); // 按系部统计人数
userdao内代码为
import java.util.List;
/**
* 功能:用户数据访问接口
* 作者:邱紫含
* 日期:2020年07月11日
*/
public interface UserDao {
int insert(UserDao user); // 插入用户记录
int deleteById(int id); // 按编号删除用户记录
int update(UserDao user); // 更新用户记录
UserDao findById(int id); // 按编号查询用户记录
List<UserDao> findAll(); // 查询全部用户记录
UserDao login(String username, String password); // 用户登录
boolean isUsernameExisted(String username);// 判断用户名是否存在
}
2、在dbutil包内创建connecttionManager
其中代码为
import javax.swing.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* 功能:数据库连接管理类
* 作者:邱紫含
* 日期:2020年7月11日
*/
public class ConnectionManager {
private static final String DRIVER = "com.mysql.jdbc.Driver"; // 数据库驱动程序
private static final String URL = "jdbc:mysql://localhost:3306/student"; // 数据库统一资源标识符
private static final String USER = "root"; // 数据库用户
private static final String PASSWORD = "root"; // 数据库密码
/**
* 私有化构造方法,拒绝实例化
*/
private ConnectionManager() {
}
/**
* 获取数据库连接静态方法
*
* @return 数据库连接对象
*/
public static Connection getConnection() {
// 定义数据库连接
Connection conn = null;
try {
// 安装数据库驱动程序
Class.forName(DRIVER);
// 获取数据库连接
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
// 返回数据库连接
return conn;
}
/**
* 关闭数据连接静态方法
*
* @param conn
*/
public static void closeConnection(Connection conn) {
// 判断数据库连接是否非空
if (conn != null) {
try {
// 判断连接是否未关闭
if (!conn.isClosed()) {
// 关闭数据库连接
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 主方法:测试两个静态方法
*
* @param args
*/
public static void main(String[] args) {
// 获取数据库连接
Connection conn = getConnection();
// 判断数据库连接是否成功
if (conn != null) {
JOptionPane.showMessageDialog(null, "恭喜,数据库连接成功!");
} else {
JOptionPane.showMessageDialog(null, "遗憾,数据库连接失败!");
}
// 关闭数据库连接
closeConnection(conn);
}
}
3、创建test包,在其中创建testcollegedaompl其中代码为
import net.qiuzihan.student.bean.College;
import net.qiuzihan.student.dao.CollegeDao;
import net.qiuzihan.student.dao.impl.CollegeDaoImpl;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class TestCollegeDaoImpl {
//创建学校数据访问接口对象
CollegeDao dao=new CollegeDaoImpl();
@Before
public void beforeTest() {
System.out.println("温馨提示:单元测绘开始了");
}
@After
public void afterTest() {
System.out.println("温馨提示:单元测试结束了");
}
@Test
public void testFindById() {
//调用学校数据访问对象的查找方法,获取学校对象
College college=dao.findById(1);
//输出学校信息
System.out.println("校名:"+college.getName());
System.out.println("校长:"+college.getPresident());
System.out.println("地址:"+college.getAddress());
System.out.println("邮箱:"+college.getEmail());
System.out.println("电话:"+college.getTelephone());
}
@Test
public void testUpdate() {
//调用学校数据访问对象的查询方法
College college=dao.findById(1);
//修改学校信息
college.setPresident("王洪礼");
//调用学校数据访问对象的更新方法
int count=dao.update(college);
//判断是否更新成功
if (count>0) {
System.out.println("学校记录更新成功!");
System.out.println("新校长:"+dao.findById(1).getPresident());
}else{
System.out.println("学校记录更新失败!");
}
}
}