代码完善
首先回顾上次的任务,就是要求写出另外三个功能的代码,另外三个功能的代码没什么新的东西,也跟以前的一样,所以这个直接看代码就行了,
UserView.java
package Demo2;
import java.util.Scanner;
public class UserView
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("请输入账号:");
String account = sc.next();
System.out.println("请输入密码:");
String password = sc.next();
//调用用户名密码检测
boolean b = UserDao.login(account, password);
if(b)
{
System.out.println("登录成功");
OrdersView.ordersMenu();
}
else
{
sc.close();
System.out.println("登录不成功");
}
}
}
UserDao.java
package Demo2;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class UserDao
{
//返回true为正确,false为错误
public static boolean login(String account,String password)
{
boolean b = false;
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "scott", "tiger");
PreparedStatement ps = conn.prepareStatement("select * from tb_user where user_account=? and password=?");
ps.setString(1, account);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
if(rs.next())
b = true;
rs.close();
ps.close();
conn.close();
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
//查询数据库是否有这个用户
// if(account.equals("123") && password.equals("qwe"))
// return true;
// else
// return false;
return b;
}
}
OrsersView.java
package Demo2;
import java.util.List;
import java.util.Scanner;
public class OrdersView
{
public static void ordersMenu()
{
while(true)
{
System.out.println("1--订单的显示");
System.out.println("2--销售额的统计");
System.out.println("3--销售记录的统计");
System.out.println("4--商品销售占比统计");
System.out.println("其他--退出");
//用户输入选项
System.out.println("请输入选项:");
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
//sc.close();
switch(input)
{
case 1:
List<List<Object>> orders = OrdersDao.getOrders();
System.out.println("序号\t订单编号\t\t\t\t所属账户\t\t生成时间\t\t\t\t\t\t商品信息");
for(int i = 0; i < orders.size();i++)
System.out.println(orders.get(i)); break;
case 2:
List<List<Object>> sales = OrdersDao.getSales();
System.out.println("月份\t销售额");
for(int i = 0; i < sales.size();i++)
System.out.println(sales.get(i)); break;
case 3:
List<List<Object>> salesCount = OrdersDao.getSalesCount();
System.out.println("月份\t销售数量");
for(int i = 0; i < salesCount.size();i++)
System.out.println(salesCount.get(i)); break;
case 4:
List<List<Object>> salesRate = OrdersDao.getSalesRate();
System.out.println("品牌\t销售数量\t销售额");
for(int i = 0; i < salesRate.size();i++)
System.out.println(salesRate.get(i)); break;
default: sc.close(); System.out.println("输入的指令不对药~~~"); return;
}
}
}
}
OrdersDao.java
package Demo2;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.Calendar;
public class OrdersDao
{
public static List<List<Object>> getSalesRate()
{
List<List<Object>> table = new ArrayList<List<Object>>();
try
{
int year = getYear();
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","scott","tiger");
PreparedStatement ps = conn.prepareStatement("select p.pro_brand,sum(op.pro_count),sum(op.pro_count*p.pro_price) "
+ " from tb_orders o,tb_orders_product op,tb_product p "
+ " where o.o_code=op.o_code "
+ " and op.pro_id = p.pro_id "
+ " and substr(o.create_date,1,4) = "+year
+ " group by p.pro_brand ");
ResultSet rs = ps.executeQuery();
while(rs.next())
{
List<Object> row = new ArrayList<Object>();
row.add(rs.getString(1));
row.add(rs.getInt(2)+"单");
row.add(rs.getInt(3)+"元");
table.add(row);
}
rs.close();
ps.close();
conn.close();
//sc.close();
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("连接失败或数据库查询失败");
}
return table;
}
public static List<List<Object>> getSalesCount()
{
List<List<Object>> table = new ArrayList<List<Object>>();
try
{
int year = getYear();
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","scott","tiger");
PreparedStatement ps = conn.prepareStatement("select substr(create_date,6,2) 月份,count(1) 数量 from tb_orders"
+ " where substr(create_date,1,4) = "+year
+ " group by substr(create_date,6,2) "
+ " order by substr(create_date,6,2)");
ResultSet rs = ps.executeQuery();
while(rs.next())
{
List<Object> row = new ArrayList<Object>();
row.add(rs.getInt(1)+"月");
row.add(rs.getInt(2)+"单");
table.add(row);
}
rs.close();
ps.close();
conn.close();
//sc.close();
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("连接失败或数据库查询失败");
}
return table;
}
public static List<List<Object>> getSales()
{
List<List<Object>> table = new ArrayList<List<Object>>();
try
{
int year = getYear();
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","scott","tiger");
PreparedStatement ps = conn.prepareStatement("select substr(create_date,6,2),sum(o_total) "
+ " from tb_orders "
+ " where to_number(substr(create_date,1,4)) = "+year
+ " group by substr(create_date,6,2) "
+ " order by substr(create_date,6,2) ");
ResultSet rs = ps.executeQuery();
while(rs.next())
{
List<Object> row = new ArrayList<Object>();
row.add(rs.getInt(1)+"月");
row.add(rs.getInt(2)+"元");
table.add(row);
}
rs.close();
ps.close();
conn.close();
//sc.close();
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("连接失败或数据库查询失败");
}
return table;
}
public static List<List<Object>> getOrders()
{
//调用sql语句,获取所有订单信息
// String[] arr = {"第一张订单","第二张订单","第三张订单","第四张订单","第五张订单"};
// return arr;
List<List<Object>> table = new ArrayList<List<Object>>();
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
//2、获取连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","scott","tiger");
//3、预执行
PreparedStatement ps = conn.prepareStatement("select rownum ,o.o_code,o.o_user_account,o.create_date,"
+ "p.pro_name,p.pro_price,op.pro_count,o.o_total "
+ "from tb_orders o,tb_orders_product op,tb_product p "
+ "where o.o_code=op.o_code and op.pro_id = p.pro_id");
//4、执行
ResultSet rs = ps.executeQuery();
while(rs.next())
{
List<Object> row = new ArrayList<Object>();
row.add(rs.getInt(1));
row.add(rs.getString(2));
row.add(rs.getString(3));
row.add(rs.getString(4));
row.add(rs.getString(5));
row.add(rs.getInt(6));
row.add(rs.getInt(7));
row.add(rs.getInt(8));
table.add(row);
}
//5、释放
rs.close();
ps.close();
conn.close();
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("连接失败或数据库查询失败");
}
return table;
}
public static int getYear()
{
Calendar cal = Calendar.getInstance();
int currentYear = cal.get(Calendar.YEAR);
boolean cuye;
int year;
System.out.println("请输入近十年的年份:");
do
{
Scanner sc = new Scanner(System.in);
year = sc.nextInt();
if(currentYear-5 < year && year < currentYear+5)
break;
else
{
cuye = true;
System.out.println("输入的年份不对,重新输入:");
}
}while(cuye);
return year;
}
}
配置Apache+Tomcat服务器
接下来就是配置Apache+Tomcat服务器了,这个步骤有很多,要一步一步来
一、先把Apache+Tomcat软件准备好
apache-tomcat软件
二、解压文件
然后把他放到程序安装文件夹里面,我是放在了D盘下
解压
三、修改conf目录下的server.xml文件,按Ctrl+F查找“Connector port="8080" protocol="HTTP/1.1”,把8080端口修改为80端口
修改server.xml文件 修改8080
修改之后
四、然后打开bin目录,双击startup.bat文件,这时候会出现DOS窗口,一堆英文字母正在跑,并且窗口不会自动消失,证明服务器启动成功,不要关闭黑窗口,接下来就可以再浏览器中输入“127.0.0.1:80”或者“localhost:80”,就可以打开这样的一个页面。就证明启动成功了。如果出现黑窗口一闪而过,请看第五步。
startup.bat
黑窗口不会自动关闭 启动成功
五、事先装好JAVA并且知道JAVA的安装路径,然后右击我的电脑-属性-高级系统设置-环境变量,然后按下图步骤操作。
JAVA_HOME的配置
六、这时候我们可以关闭startup.bat黑窗口了。去Eclipse里面配置Apache+Tomcat。双击打开Eclipse,再左边右击New-Other,搜索Web选择Dynamic Web Project。
选择动态网站
七、选择我们的Apache+Tomcat8.5版本,点击Next,这时候我们的Runtime是空的,我们需要新建一个Runtime,单击New Runtime。
选择版本
空的Rubtime
八、选择Tomcat的解压目录,要记得那个路径,然后点击Browse,选择Tomcat的路径。单击Finish。
选择Tomcat目录
九、完成之后直接单击Finish,就可以在左边看到创建成功的项目,我们的html主要放在WebContent文件夹下面。
单击Finish
创建成功
十、然后再新建一个服务器,再左边空白处,右击New-Other,搜索server,点击它选择Next。
新建
搜索server
十一、我们安装的Apache+Tomcat是8.5版本所以选择8.5版本。单击Next
选择Tomcat8.5版本
十二、单击Demo01选择Add添加过去,单击Finish即可。可以看到我们的服务器已经创建成功
添加项目
Tomcat服务器
十二、选择Demo01下的WebContent文件夹,右击New-HTML File,为HTML文件命名。单击Finish就创建成功了。
新建HTML File
为HTML文件命名
十二、输入以下代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户登录</title>
</head>
<body>
<!-- 表单元素 --注释快捷方式Ctrl+Shift+/,取消为Ctrl+Shift+\-->
<form action = "LoginServLet">
<!-- 文本框 -->
账号:<input type = "text" name = "account"/><br/>
<!-- 密码框 -->
密码:<input type = "password" name = "password"/><br/>
<!-- 提交按钮 -->
<input type = "submit" value = "登录"/>
</form>
</body>
</html>
十三、在菜单栏选择Window-Show View-Servers,即可显示下面的窗口。
十四、在服务器上右击,选择start,在Console下出现红字即运行成功。
启动服务器
运行成功
十五、在浏览器输入http://127.0.0.1:80/项目名称/文件名.html。在这里我们的应该是http://127.0.0.1/Demo01/login.html,输入就可以看到我们写的HTML代码的运行效果图了。
运行效果图
好了,今天上午的课程到此结束。
网友评论