任务一 基于mybatis框架的学生管理程序在mydb数据库下,现有一个学生表tb_student(学生编号、学生姓名、学生年龄、所属宿舍)和一个食堂卡表tb_card(食堂卡编号、卡号、余额),其中,学生表tb_student和食堂卡表tb_card是一对一关系。学生编号id (主键)学生姓名 name学生年龄age食堂卡编号card_id(外键)1张三1822李四193 表1 学生表tb_student食堂卡编号id (主键)卡号 num余额balance1sy2001402sy20022003sy2003104sy20040表2 食堂卡表tb_card使用MyBatis编程实现下列要求:查询李四的年龄。查询所有的食堂卡信息。新增学生记录,姓名和年龄为自己真实信息,卡号为1。给1号食堂卡充值200元。删除卡内余额少于5的食堂卡。查询张三食堂卡余额。
时间: 2024-02-23 21:57:54 浏览: 68
Mybatis学生信息管理
好的,根据您的要求,我可以为您提供以下MyBatis编程实现的方法:
1. 查询李四的年龄:
```java
public int getAgeOfLiSi() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
return studentMapper.getAgeByName("李四");
} finally {
sqlSession.close();
}
}
```
其中,getAgeByName是在StudentMapper中定义的方法,用于查询指定姓名的学生年龄。
2. 查询所有的食堂卡信息:
```java
public List<Card> getAllCards() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
CardMapper cardMapper = sqlSession.getMapper(CardMapper.class);
return cardMapper.getAllCards();
} finally {
sqlSession.close();
}
}
```
其中,getAllCards是在CardMapper中定义的方法,用于查询所有的食堂卡信息。
3. 新增学生记录,姓名和年龄为自己真实信息,卡号为1:
```java
public void addStudent() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
Student student = new Student();
student.setName("Your Name");
student.setAge(18);
Card card = new Card();
card.setNum("1");
student.setCard(card);
studentMapper.addStudent(student);
sqlSession.commit();
} finally {
sqlSession.close();
}
}
```
其中,addStudent是在StudentMapper中定义的方法,用于新增学生记录。
4. 给1号食堂卡充值200元:
```java
public void rechargeCard() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
CardMapper cardMapper = sqlSession.getMapper(CardMapper.class);
Card card = cardMapper.getCardById(1);
card.setBalance(card.getBalance() + 200);
cardMapper.updateCard(card);
sqlSession.commit();
} finally {
sqlSession.close();
}
}
```
其中,getCardById和updateCard是在CardMapper中定义的方法,用于查询指定id的食堂卡和更新食堂卡余额。
5. 删除卡内余额少于5的食堂卡:
```java
public void deleteCards() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
CardMapper cardMapper = sqlSession.getMapper(CardMapper.class);
List<Card> cards = cardMapper.getCardsByBalanceLessThan(5);
for (Card card : cards) {
cardMapper.deleteCard(card.getId());
}
sqlSession.commit();
} finally {
sqlSession.close();
}
}
```
其中,getCardsByBalanceLessThan和deleteCard是在CardMapper中定义的方法,用于查询卡内余额少于5的食堂卡和删除指定id的食堂卡。
6. 查询张三食堂卡余额:
```java
public int getBalanceOfZhangSan() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
Student student = studentMapper.getStudentByName("张三");
Card card = student.getCard();
return card.getBalance();
} finally {
sqlSession.close();
}
}
```
其中,getStudentByName是在StudentMapper中定义的方法,用于查询指定姓名的学生信息。
希望以上方法能够帮助到您。
阅读全文