03_java基础(九)之综合练习与考核评估
25.综合练习之车站业务分析

完成步骤:
需求: 以车站业务对车票做增删改查操作
1.建立数据库
2.建立车票表
3.建立java项目结构(model\dao\service\test)
4.创建model
5.创建dao(接口和实现)并实现测试
6.创建service(接口实现)
26.综合练习之数据库与表建立

27.项目标准结构创建

28\29\30\31.综合练习之代码实现
1.model
package com.day03.station.model; /**
* 课程笔记:http://www.cnblogs.com/newAndHui/category/1153640.html
* 疑问咨询wx:851298348
*/
public class Ticket {
private Integer id;
private String startStation;
private String stopStation;
private String startTime;
private Integer ticketPrice; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getStartStation() {
return startStation;
} public void setStartStation(String startStation) {
this.startStation = startStation;
} public String getStopStation() {
return stopStation;
} public void setStopStation(String stopStation) {
this.stopStation = stopStation;
} public String getStartTime() {
return startTime;
} public void setStartTime(String startTime) {
this.startTime = startTime;
} public Integer getTicketPrice() {
return ticketPrice;
} public void setTicketPrice(Integer ticketPrice) {
this.ticketPrice = ticketPrice;
}
}
Ticket
2.dao接口
package com.day03.station.dao; import com.day03.station.model.Ticket; import java.util.List; /**
* 课程笔记:http://www.cnblogs.com/newAndHui/category/1153640.html
* 疑问咨询wx:851298348
*/
public interface ITicketDao {
//增加
public void save(Ticket ticket);
//删除 根据id删除
public void delete(Integer id); //修改
public void update(Ticket ticket);
//查找 查单个 根据id查询
public Ticket queryById(Integer id);
//查找多个 (集合装)List
public List<Ticket> queryAll();
}
ITicketDao
3.dao实现
package com.day03.station.dao.impl; import com.day03.station.dao.ITicketDao;
import com.day03.station.model.Ticket; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List; /**
* 课程笔记:http://www.cnblogs.com/newAndHui/category/1153640.html
* 疑问咨询wx:851298348
*/
public class TicketDao implements ITicketDao {
@Override
public void save(Ticket ticket) { try { //1.加载
Class.forName("com.mysql.jdbc.Driver");
//2.链接
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/station_data", "root", "admin");
//3.创建编译语句
String sql="INSERT INTO ticket (start_station,stop_station,start_time,ticket_price) VALUES (?,?,?,?)";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//设置参数
preparedStatement.setString(1,ticket.getStartStation());
preparedStatement.setString(2,ticket.getStopStation());
preparedStatement.setString(3,ticket.getStartTime());
preparedStatement.setInt(4,ticket.getTicketPrice());
//4.执行
preparedStatement.executeUpdate();
//5.释放资源
preparedStatement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
} } @Override
public void delete(Integer id) {
try { //1.加载
Class.forName("com.mysql.jdbc.Driver");
//2.链接
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/station_data", "root", "admin");
//3.创建编译语句
String sql="DELETE FROM ticket WHERE id=?";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//设置参数
preparedStatement.setInt(1,id);
//4.执行
preparedStatement.executeUpdate();
//5.释放资源
preparedStatement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
} @Override
public void update(Ticket ticket) {
try { //1.加载
Class.forName("com.mysql.jdbc.Driver");
//2.链接
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/station_data", "root", "admin");
//3.创建编译语句
String sql="UPDATE ticket SET ticket_price=? WHERE id=?";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//设置参数
preparedStatement.setInt(1,ticket.getTicketPrice());
preparedStatement.setInt(2,ticket.getId()); //4.执行
preparedStatement.executeUpdate();
//5.释放资源
preparedStatement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
} @Override
public Ticket queryById(Integer id) {
//准备一个对象,装获取到的结果数据
Ticket ticket = new Ticket();
try { //1.加载
Class.forName("com.mysql.jdbc.Driver");
//2.链接
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/station_data", "root", "admin");
//3.创建编译语句
String sql="SELECT id,start_station,stop_station,start_time,ticket_price FROM ticket WHERE id=?";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//设置参数
preparedStatement.setInt(1,id);
//4.执行
ResultSet resultSet = preparedStatement.executeQuery();
//解析结果集
while (resultSet.next()){
//取id
int id1 = resultSet.getInt("id");
//取开始车站
String startStation = resultSet.getString("start_station");
//取到达车站
String stopStation = resultSet.getString("stop_station");
//取发车时间
String startTime = resultSet.getString("start_time");
//取车票价格
int ticketPrice = resultSet.getInt("ticket_price");
//封装到对象里面去
ticket.setId(id1);
ticket.setStartStation(startStation);
ticket.setStopStation(stopStation);
ticket.setStartTime(startTime);
ticket.setTicketPrice(ticketPrice); } //5.释放资源
preparedStatement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
return ticket;
} @Override
public List<Ticket> queryAll() {
//准备一个对象,装获取到的结果数据
//Ticket ticket = new Ticket();
//准备一个可以装多个对象的对象来装多个车票对象==>集合对象List
List<Ticket> list=new ArrayList<>();
//list.add(); 添加
//list.get(); 取
try { //1.加载
Class.forName("com.mysql.jdbc.Driver");
//2.链接
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/station_data", "root", "admin");
//3.创建编译语句
String sql="SELECT id,start_station,stop_station,start_time,ticket_price FROM ticket";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//设置参数 //4.执行
ResultSet resultSet = preparedStatement.executeQuery();
//解析结果集
while (resultSet.next()){
//取id
int id1 = resultSet.getInt("id");
//取开始车站
String startStation = resultSet.getString("start_station");
//取到达车站
String stopStation = resultSet.getString("stop_station");
//取发车时间
String startTime = resultSet.getString("start_time");
//取车票价格
int ticketPrice = resultSet.getInt("ticket_price");
//封装到对象里面去
Ticket ticket = new Ticket();
ticket.setId(id1);
ticket.setStartStation(startStation);
ticket.setStopStation(stopStation);
ticket.setStartTime(startTime);
ticket.setTicketPrice(ticketPrice); //将车票对象装入集合对象里面
list.add(ticket); } //5.释放资源
preparedStatement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
}
TicketDao
4.dao测试
package com.day03.station.testDao; import com.day03.station.dao.impl.TicketDao;
import com.day03.station.model.Ticket;
import org.junit.Test; import java.util.List; /**
* 课程笔记:http://www.cnblogs.com/newAndHui/category/1153640.html
* 疑问咨询wx:851298348
*/
public class TestTicketDao {
TicketDao ticketDao = new TicketDao();
//测试车票保存
@Test
public void testSave(){
//1.创建dao对象
//TicketDao ticketDao = new TicketDao();
//2.调用dao方法
Ticket ticket = new Ticket();
//赋值
ticket.setStartStation("南充");
ticket.setStopStation("成都");
ticket.setStartTime("2018-05-20 13:14:00");
ticket.setTicketPrice(99);
ticketDao.save(ticket);
}
@Test
public void testDelete(){
ticketDao.delete(5);
}
@Test
public void testUpdate(){
Ticket ticket = new Ticket();
ticket.setTicketPrice(120);
ticket.setId(2);
ticketDao.update(ticket);
}
@Test
public void testQueryById(){
Ticket ticket = ticketDao.queryById(2);
System.out.println("ticket="+ticket);
}
@Test
public void testQuery(){
List<Ticket> tickets = ticketDao.queryAll();
System.out.println("tickets="+tickets); } }
TestTicketDao
5.service接口
package com.day03.station.service; import com.day03.station.model.Ticket; import java.util.List; /**
* 课程笔记:http://www.cnblogs.com/newAndHui/category/1153640.html
* 疑问咨询wx:851298348
*/
public interface ITicketService {
//增加
public void save(Ticket ticket);
//删除 根据id删除
public void delete(Integer id); //修改
public void update(Ticket ticket);
//查找 查单个 根据id查询
public Ticket queryById(Integer id);
//查找多个 (集合装)List
public List<Ticket> queryAll();
}
ITicketService
6.service实现
package com.day03.station.service.impl; import com.day03.station.dao.impl.TicketDao;
import com.day03.station.model.Ticket;
import com.day03.station.service.ITicketService; import java.util.List; /**
* 课程笔记:http://www.cnblogs.com/newAndHui/category/1153640.html
* 疑问咨询wx:851298348
*/
public class TicketService implements ITicketService {
TicketDao ticketDao = new TicketDao(); @Override
public void save(Ticket ticket) {
//1.创建dao对象
//TicketDao ticketDao = new TicketDao();
//2.调用dao方法
ticketDao.save(ticket);
} @Override
public void delete(Integer id) {
ticketDao.delete(id);
} @Override
public void update(Ticket ticket) {
ticketDao.update(ticket);
} @Override
public Ticket queryById(Integer id) {
Ticket ticket = ticketDao.queryById(id); return ticket;
} @Override
public List<Ticket> queryAll() {
List<Ticket> tickets = ticketDao.queryAll(); return tickets;
}
}
TicketService
7.项目完成后的结构

03_java基础(九)之综合练习与考核评估的更多相关文章
- Bootstrap<基础九>辅助类
Bootstrap 中的一些可能会派上用场的辅助类. 文本 以下不同的类展示了不同的文本颜色.如果文本是个链接鼠标移动到文本上会变暗: 类 描述 .text-muted "text-mu ...
- Java语言基础(九)
Java语言基础(九) 一.自增运算(++) 自减运算(--) i++ 就是将i+1再赋给 i i-- 是将i-1再赋给 i 对变量i,j来说,i++ 或++i 这里没什么区别,都是将i的值加1后,再 ...
- {Django基础九之中间件} 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证
Django基础九之中间件 本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学会了 ...
- Java基础九--抽象类
Java基础九--抽象类 一.抽象类介绍 /*抽象类:抽象:笼统,模糊,看不懂!不具体. 特点:1,方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰. 抽象方法必须定义在抽象类中 ...
- day 63 Django基础九之中间件
Django基础九之中间件 本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学 ...
- 075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现
075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现 本文知识点:综合案例-数组移位-主方法功能4的实现 说明:因为 ...
- 074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现
074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现 本文知识点:综合案例-数组移位-主方法功能3的实现 说明:因为 ...
- 073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现
073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现 本文知识点:综合案例-数组移位-主方法功能1和2的实现 说 ...
- 072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法
072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法 本文知识点:综合案例-数组移位-在指定位置处插入数据方法 ...
随机推荐
- AJAX发送 PUT和DELETE请求参数传递注意点,了解一下
ajax发送put 和 delete 请求时,需要传递参数,如果参数在url地址栏上,则可以正常使用, 如果在 data:中需要传递参数,(浏览器会使用表单提交的方式进行提交) 则需要注意此时应作如下 ...
- django---单表操作之增删改
首先找到操作的首页面‘ 代码如下 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- [UGUI]帧动画
ImageFrameAnimation.cs using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; [R ...
- SAP系统中ASCS、ERS、PAS、AAS
SAP系统中ASCS.ERS.PAS.AAS是什么: ASCS:ABAP Central services instance (Message server) PAS: Primary applica ...
- Impala SQL 使用小记
1. impala端创建的表,DROP. hive会自动同步到. 但是通过hive DROP时,数据还会在,只是表的元数据没有了. 所以完全DROP表,需要impala端的DROP 2. impal ...
- c# group by list
ViewBag.PnlTotal = pnlTotal; // 柱形图 string data = ""; string cat = ""; string bu ...
- Delphi 集合和字符串互转
集合和字符串互转 集合: type TSocketState = (ssDisconnecting, ssDisconnected, ssConnected, ssConnecting, s ...
- Mybatis if 判断等于一个字符串
在做开发的时候遇到这样一个问题:当传入的type的值为y的时候,if判断内的sql也不会执行. <if test="type=='y'"> and status ...
- 数据结构:Stack
Stack设计与实现 Stack基本概念 栈是一种 特殊的线性表 栈仅能在线性表的一端进行操作 栈顶(Top):允许操作的一端 栈底(Bottom):不允许操作的一端 Stack的常用操作 创建栈 销 ...
- 1.ECS(CentOS7)主机名修改命令
命令:hostnamectl 使用--help参数查看hostnamectl里面每个参数对应的含义: [root@localhost ~]# hostnamectl --help Query or c ...