最近花两天的时间单独做了一个超市收银系统,虽然比较简单,但感触还是颇深的!
刚开始写的时候,一脸懵逼,如果不是别人说过,我都不知道eclipse可以编写界面的,
下面开始正题:我所遇到的一些坑
1
使用eclipse编写界面:
需要导入java.swing和java.awt等jar包,导入成功之后
文件-->新建-->其他-->
点击确定之后,出现这样的界面
选择Application Window,然后选择下一步,填写名称之后,就会跳出视图编辑界面了,选择左下角的“design”,这样就可以拖控件来编辑界面了!!!
2
下面是我链接SQL并执行插入操作以及查询操作
public class Mysql {
static String driver = "com.mysql.jdbc.Driver";
// URL指向要访问的数据库名world
static String url = "jdbc:mysql://127.0.0.1:3306/sale";
// MySQL配置时的用户名
static String user = "root";
// MySQL配置时的密码
static String password = "123456";
public static void main(String[] args) {
try {
// 加载驱动程序
Class.forName(driver);
// 连续数据库
Connection conn = DriverManager.getConnection(url, user, password);
if (!conn.isClosed())
System.out.println("Succeeded connecting to the Database!");
// statement用来执行SQL语句
Statement statement = conn.createStatement();
// 要执行的SQL语句
String sql = "INSERT INTO saledetail(product_id,product_name,product_price,product_mount,product_time,product_saler)"+"VALUES(201311200007,'apple',3.00,20,'2017-12-18 19:15:00','cj')";
// 结果集
// ResultSet rs = statement.executeQuery(sql);
// while (rs.next()) {
// bean.setID(rs.getInt("Cno"));
// bean.setCname(rs.getString("Cname"));
// bean.setCpno(rs.getString("Cpno"));
// bean.setCcredit(rs.getString("Ccredit"));
// System.out.printf(bean.toString());
// }
// rs.close();
statement.executeUpdate(sql);
statement.close();
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Sorry,can`t find the Driver!");
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
package model.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import model.vo.User;
import util.DBManager;
/*
* dao即data access object,用于操作的封装
*/
public class UserDao {
/*
* 该方法实现按各个字段的组合查询,,各个查询参数存放于user对象中,并保存在list对象中
*/
public List query(User user){
List list=new ArrayList();
/*
*
*/
/*
* 组合查询生成的动态sql语句
*/
String sql="select * from tuser where 1=1 ";
if(user.getUserName()!=null){
sql+=" and userName='"+user.getUserName()+"' ";
}
if(user.getPassword()!=null){
sql+=" and password='"+user.getPassword()+"' ";
}
if(user.getChrName()!=null){
sql+=" and chrName='"+user.getChrName()+"' ";
}
if(user.getRoleName()!=null){
sql+=" and roleName='"+user.getRoleName()+"' ";
}
//System.out.println(sql);
DBManager db=new DBManager(); //在DBManager中已经实现了数据库的链接
ResultSet rs=null;
try {
rs=db.executeQuery(sql);
while(rs.next()){
User user1=new User();
user1.setUserName(rs.getString("userName"));
user1.setPassword(rs.getString("password"));
user1.setChrName(rs.getString("chrName"));
user1.setRoleName(rs.getString("roleName"));
//System.out.println(" aaaaaaaa"+user1);
list.add(user1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
try {
if(rs!=null){
rs.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
db.close();
}
return list;
}
public boolean add(User user){
boolean ret=false;
/*
*
*/
return ret;
}
/*
* 用户登陆
*/
public boolean checkUser(User user){
boolean ret=false;
List list=query(user);
//System.out.println(list.get(0).getPassword());
if(list.size()>0){
ret=true;
}
return ret;
}
}
在链接数据库时候,有一次突然出现了 “不能上到mysql服务器连接127.0.0.1”,详细解决方式,请看“使用360杀毒后,360将MySQL的注册表当作病毒给kill掉了,导致不能上到mysql服务器连接127.0.0.1问题的解决办法”。
3:在使用String的equils()方法时候,出现了这样一个奇怪的问题:两个字符串
a:2017-12-13
b:2017-12-13
a,b这两个字符串明明相同,但是使用equils()方法时,一直返回的事false。看了半天,才发现是a字符串后面多了一个“ ”!!!
为了解决这个问题,String类中提供了这样一个方法:trim()方法,此方法用于去掉字符串首位的空格字符。在一般比较字符串时候都会用到此方法。
下面介绍一下这个项目中所用的知识:
1:eclipse界面的编写,2:链接数据库并执行操作:(插入和查询操作)3:读取数据库中的数据后结合组件对这些数据进行操作
源码地址:https://gitee.com/cj1024_0215/JianDanChaoShiShouYinXiTong