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基础(九)之综合练习与考核评估的更多相关文章

  1. Bootstrap<基础九>辅助类

    Bootstrap 中的一些可能会派上用场的辅助类. 文本 以下不同的类展示了不同的文本颜色.如果文本是个链接鼠标移动到文本上会变暗: 类 描述   .text-muted "text-mu ...

  2. Java语言基础(九)

    Java语言基础(九) 一.自增运算(++) 自减运算(--) i++ 就是将i+1再赋给 i i-- 是将i-1再赋给 i 对变量i,j来说,i++ 或++i 这里没什么区别,都是将i的值加1后,再 ...

  3. {Django基础九之中间件} 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证

    Django基础九之中间件 本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学会了 ...

  4. Java基础九--抽象类

    Java基础九--抽象类 一.抽象类介绍 /*抽象类:抽象:笼统,模糊,看不懂!不具体. 特点:1,方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰. 抽象方法必须定义在抽象类中 ...

  5. day 63 Django基础九之中间件

    Django基础九之中间件   本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学 ...

  6. 075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现

    075 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 07 综合案例-数组移位-主方法功能4的实现 本文知识点:综合案例-数组移位-主方法功能4的实现 说明:因为 ...

  7. 074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现

    074 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 06 综合案例-数组移位-主方法功能3的实现 本文知识点:综合案例-数组移位-主方法功能3的实现 说明:因为 ...

  8. 073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现

    073 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 05 综合案例-数组移位-主方法功能1和2的实现 本文知识点:综合案例-数组移位-主方法功能1和2的实现 说 ...

  9. 072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法

    072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法 本文知识点:综合案例-数组移位-在指定位置处插入数据方法 ...

随机推荐

  1. 聊聊 cursor鼠标样式

    在前端开发中,很多时候需要对页面的某些元素做鼠标样式的处理,比如button一般用pointer , 文本区一般用text......等等. 今天咱就来聊聊 这个经常用到的 cursor 属性 cur ...

  2. 【转】 .Net MVC4 上传大文件,并保存表单

    1前台:cshtml </pre><pre name="code" class="csharp">@model BLL.BLL.Prod ...

  3. 关于 Thread.currentThread()

    currentThread()  到底是什么? 其实currentThread() 只是Thread 的一个静态方法.返回的正是执行当前代码指令的线程引用: /** * Returns a refer ...

  4. workerman-todpole 执行流程(3)

    通过前两篇文章的分析: workerman-todpole 执行流程(1) workerman-todpole 执行流程(2) 我们已经详细了解了主进程以及子进程的启动细节,但之前的文章并没有考虑 W ...

  5. 【ASP.NET 问题】Win7中IIS被防火墙阻止导致外网无法访问的解决方法。

    今天装了IIS7.0,把网站发布了上去,但局域网的其他电脑始终无法访问主机上的网站. 于是想到防火墙的原因,把防火墙关掉,可以正常访问,但是打开就不行. 于是去网上找资料,总算搞定了. 原来在防火墙的 ...

  6. Linux 文件查找(find)

    find(选项)(参数) 选项 -amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算: -anewer<参考文件或目录>:查找其存取时间较指定文件或目录的存 ...

  7. C库中strcpy函数的参数为NULL问题

    在标准C库的字符串处理函数 strxxx 一系列函数中,对参数传入NULL会导致程序崩溃. 如下代码中,无论那个参数为NULL,都会让程序崩溃,所以我们必须自己对参数进行传入前的检查. int mai ...

  8. HashMap怎样解决碰撞问题

    碰撞:HashMap运用put方法存储多个元素时,计算得出相同的hashCode,在put时出现冲突. 处理:利用“拉链法”处理HashCode的碰撞问题:当我们将键值对传递给put方法时,他调用键对 ...

  9. Photoshop 辅助线和标尺的使用技巧

    1.拖动辅助线时按住Alt键可以在水平辅助线和垂直辅助线之间切换.按住Alt键点击一条已经存在的垂直辅助线可以把它转为水平辅助线,反之亦然. 注意:辅助线是通过从标尺中拖出而建立的,所以要确保标尺是打 ...

  10. Delphi Locate 详解1 转

    TDataSet控件以及它的继承控件,例如TSimpleDataSet/TClientDataSet等都可以使用Locate方法在结果数据集中查寻数据.程序首先必须使用SQL命令从后端数据库中取得数据 ...