DML

INSERT INTO 表名(列名,列名,...) VALUES (值,值,...)
注意:插入值类型必须和列类型匹配
值长度不能超过定义长度
值顺序必须和列顺序对应
字符串和日期类型必须写单引号内
插入空值可以写null

UPDATE 表名 SET 列名=值,列名=值... WHERE条件语句

TRUNCATE命令用于完全清空表数据,但表结构和约束不变,速度相对较快,自增字段从头开始计数
DELETE FROM 命令删除的数据存储在系统回滚段中,需要的时候,数据可以回滚恢复,而TRUNCATE命令删除的数据是不可恢复的,速度相对较慢,自增保留原来最大值

DQL

SELECT [ALL | DISTINCT]
{* | table.* [table.field1[as alias1][,table.field2[as alias2]][,...]]}
FROM table_name [as table_alias]
[LEFT | OUT | INNER JOIN table_name2] #联合查询
[WHERE ...]#指定结果需满足的条件
[GROUP BY ...] #指定结果按照哪几个字段来分组
[HAVING] #过滤分组的记录必须满足的次要条件
[ORDER BY] #指定查询记录按一个或者多个条件排序
[LIMIT {[offset,]row_count | row_count OFFSET offset}];
#指定查询的记录从哪条至哪条

MySQL函数
COUNT() 返回满足SELECT条件的记录总和数,如 SELECT COUT(*)...
SUM() 返回数字字段或表达式列作统计,返回一列的总和
AVG() 通常为数值字段或表达列作统计,返回一列的平均值
MAX() 可以为数值字段,字符字段或者表达式列作统计,返回最大的值
MIN() 可以为数值字段,字符字段或表达式列作统计,返回最小的值

JDBC操作数据库

1.注册驱动
Class.forName("com.mysql.jdbc.Driver");

2.编写url
String url = "jdbc:mysql://localhost:3306/soso_db";
获取连接
Connection conn = DriverManager.getConnection(url,username,pwd);

3.执行sql
String sql = "select * from user where uid = ?";
PreparedStatement statement = conn.prepareStatement(sql);
statement.setInt(1,1001);
ResultSet rs = statement.executeQuery();
while(rs.next()) {
    int uid = rs.getInt("uid");
}

4.释放资源
statement.close();
conn.close();

package pojo;public class User {private int uid;private String username;private String pwd;private String name;private String phone;private String cardid;private Double money;private int points;@Overridepublic String toString() {return "User{" +"uid=" + uid +", username='" + username + '\'' +", pwd='" + pwd + '\'' +", name='" + name + '\'' +", phone='" + phone + '\'' +", cardid='" + cardid + '\'' +", money=" + money +", points=" + points +'}';}public int getUid() {return uid;}public void setUid(int uid) {this.uid = uid;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getCardid() {return cardid;}public void setCardid(String cardid) {this.cardid = cardid;}public Double getMoney() {return money;}public void setMoney(Double money) {this.money = money;}public int getPoints() {return points;}public void setPoints(int points) {this.points = points;}public User(int uid, String username, String pwd, String name, String phone, String cardid, Double money, int points) {this.uid = uid;this.username = username;this.pwd = pwd;this.name = name;this.phone = phone;this.cardid = cardid;this.money = money;this.points = points;}public User() {}}
package pojo;public class Business {private int businessId;//业务编号private String businessTitle;//业务标题private String businessInfo;//业务描述private double businessPrice;//业务价格private int businessCondition;//业务状态public Business(int businessId, String businessTitle, String businessInfo, double businessPrice, int businessCondition) {this.businessId = businessId;this.businessTitle = businessTitle;this.businessInfo = businessInfo;this.businessPrice = businessPrice;this.businessCondition = businessCondition;}public Business() {}public int getBusinessId() {return businessId;}public void setBusinessId(int businessId) {this.businessId = businessId;}public String getBusinessTitle() {return businessTitle;}public String getBusinessInfo() {return businessInfo;}public double getBusinessPrice() {return businessPrice;}public int getBusinessCondition() {return businessCondition;}@Overridepublic String toString() {return "Business{" +"businessId=" + businessId +", businessTitle='" + businessTitle + '\'' +", businessInfo='" + businessInfo + '\'' +", businessPrice=" + businessPrice +", businessCondition=" + businessCondition +'}'+"\n";}
}
package pojo;import utils.JDBCUtil;
import utils.MD5Util;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;/** 有关业务的方法*/
public class DataOperator {//显示所有用户信息public void showAllUser() {List<User> users = getAllUser();if(users != null) {for (User u : users) {System.out.println(u);}}}//从数据库获取所有用户并且实例化为用户集合public List<User> getAllUser() {List<User> users = null;Connection conn = JDBCUtil.getConnection();String sql = "SELECT * FROM `user`";try {PreparedStatement statement = conn.prepareStatement(sql);ResultSet rs = statement.executeQuery();// 遍历ResultSet创建对象users = new ArrayList<User>();while (rs.next()) {int id = rs.getInt("uid");String uname = rs.getString("username");String upwd = rs.getString("pwd");String name = rs.getString("name");String phone = rs.getString("phone");String cardID = rs.getString("cardid");double money = rs.getDouble("money");int points = rs.getInt("points");if (!uname.equals("admin")) {User u = new User(id, uname, upwd, name, phone, cardID,money, points);users.add(u);}}JDBCUtil.close(statement, conn);} catch (Exception e) {System.out.println("查询失败");}return users;}// 添加新业务public void addNewBusiness() {System.out.println("请输入业务标题:");String title = Initialization.sc.next();System.out.println("请输入业务描述:");String describe = Initialization.sc.next();System.out.println("请输入业务价格:");try {double price = Initialization.sc.nextDouble();Business business = new Business(0, title, describe, price, 0);Connection conn = JDBCUtil.getConnection();String sql = "INSERT INTO `soso_db`.`Business` (`businessTitle`, `businessInfo`, `businessPrice`, `businessCondition`) VALUES ( ?, ?, ?, ?)";PreparedStatement statement = conn.prepareStatement(sql);statement.setString(1, business.getBusinessTitle());statement.setString(2, business.getBusinessInfo());statement.setDouble(3, business.getBusinessPrice());statement.setInt(4, business.getBusinessCondition());int i = statement.executeUpdate();System.out.println(i);JDBCUtil.close(statement, conn);} catch (Exception e) {e.printStackTrace();System.out.println("业务价格输入格式错误,请重新操作");Initialization.sc.next();addNewBusiness();}}// 查看所有业务public void showAllBusiness() {List<Business> busis = getAllBusiness();if(busis != null) {for (Business bus : busis) {System.out.println(bus);}}}//从数据库获取所有业务并且实例化为业务对象集合public List<Business> getAllBusiness() {List<Business> busis = null;Connection conn = JDBCUtil.getConnection();String sql = "SELECT * FROM `business`";try {PreparedStatement statement = conn.prepareStatement(sql);ResultSet rs = statement.executeQuery();// 遍历ResultSet创建对象busis = new ArrayList<Business>();while (rs.next()) {int id = rs.getInt("businessId");String title = rs.getString("businessTitle");String info = rs.getString("businessInfo");double price = rs.getDouble("businessPrice");int condi = rs.getInt("businessCondition");Business bus = new Business(id, title, info, price, condi);busis.add(bus);}JDBCUtil.close(statement, conn);} catch (Exception e) {System.out.println("查询失败");}return busis;}// 查看下架业务public void showUnPublishedBusiness() {List<Business> busis = getUnPublishedBusiness();if(busis != null) {for (Business bus : busis) {System.out.println(bus);}}}//从数据库获取下架业务并且实例化为业务对象集合public List<Business> getUnPublishedBusiness() {List<Business> busis = null;Connection conn = JDBCUtil.getConnection();String sql = "SELECT * FROM `business` WHERE businessCondition=0";try {PreparedStatement statement = conn.prepareStatement(sql);ResultSet rs = statement.executeQuery();// 遍历ResultSet创建对象busis = new ArrayList<Business>();while (rs.next()) {int id = rs.getInt("businessId");String title = rs.getString("businessTitle");String info = rs.getString("businessInfo");double price = rs.getDouble("businessPrice");int condi = rs.getInt("businessCondition");Business bus = new Business(id, title, info, price, condi);busis.add(bus);}JDBCUtil.close(statement, conn);} catch (Exception e) {System.out.println("查询失败");}return busis;}// 查看上架中业务public void showPublishedBusiness() {List<Business> busis = getPublishedBusiness();if(busis != null) {for (Business bus : busis) {System.out.println(bus);}}}//从数据库获取上架业务并且实例化为业务对象集合public List<Business> getPublishedBusiness() {List<Business> busis = null;Connection conn = JDBCUtil.getConnection();String sql = "SELECT * FROM `business` WHERE businessCondition=1";try {PreparedStatement statement = conn.prepareStatement(sql);ResultSet rs = statement.executeQuery();// 遍历ResultSet创建对象busis = new ArrayList<Business>();while (rs.next()) {int id = rs.getInt("businessId");String title = rs.getString("businessTitle");String info = rs.getString("businessInfo");double price = rs.getDouble("businessPrice");int condi = rs.getInt("businessCondition");Business bus = new Business(id, title, info, price, condi);busis.add(bus);}JDBCUtil.close(statement, conn);} catch (Exception e) {System.out.println("查询失败");}return busis;}//更新业务价格public void updatePrice() {showAllBusiness();System.out.println("选择要修改价格的业务编号");try {int cbid = Initialization.sc.nextInt();System.out.println("请输入新价格:");double newPrice = Initialization.sc.nextDouble();Business bus = searchByIDbus(cbid);if (bus != null) {Connection conn = JDBCUtil.getConnection();String sql = "UPDATE business SET businessPrice = ? WHERE businessId=?";PreparedStatement statement = conn.prepareStatement(sql);statement.setDouble(1, newPrice);statement.setInt(2, cbid);int i = statement.executeUpdate();System.out.println(i);JDBCUtil.close(statement, conn);}} catch (Exception e) {e.printStackTrace();System.out.println("业务编号或者价格输入格式错误,请重新输入");Initialization.sc.next();Initialization.sc.next();updatePrice();}}// 通过业务编号查询业务,并返回业务对象public Business searchByIDbus(int bid) throws Exception {Business bus = null;Connection conn = JDBCUtil.getConnection();String sql = "select * from business where businessId=?";PreparedStatement statement = conn.prepareStatement(sql);statement.setInt(1, bid);ResultSet rs = statement.executeQuery();if (rs.next()) {int busId = rs.getInt("businessId");String busTitle = rs.getString("businessTitle");String busInfo = rs.getString("businessInfo");double busPrice = rs.getDouble("businessPrice");int busCondi = rs.getInt("businessCondition");bus = new Business(busId, busTitle, busInfo, busPrice, busCondi);}JDBCUtil.close(statement, conn);return bus;}// 上架业务public void publishBusiness() {showUnPublishedBusiness();System.out.println("请选择即将发布的业务编号:");try {int pbid = Initialization.sc.nextInt();Connection conn = JDBCUtil.getConnection();String sql = "SELECT * FROM `business` where businessCondition='0'";PreparedStatement statement = conn.prepareStatement(sql);ResultSet rs = statement.executeQuery();// 遍历ResultSet创建对象int flag = 0;while (rs.next()) {int id = rs.getInt("businessId");if (id == pbid) {flag = 1;}}JDBCUtil.close(statement, conn);if (flag == 1) {Connection conn1 = JDBCUtil.getConnection();String sql1 = "UPDATE business SET businessCondition=1 WHERE businessId=?";PreparedStatement statement1 = conn1.prepareStatement(sql1);statement1.setInt(1, pbid);int i = statement1.executeUpdate();System.out.println(i);JDBCUtil.close(statement1, conn1);}} catch (Exception e) {e.printStackTrace();System.out.println("业务编码格式错误,请重新输入");Initialization.sc.next();publishBusiness();}}// 下架业务public void removeBusiness() {showPublishedBusiness();System.out.println("选择即将下架业务的编号:");try {int ubid = Initialization.sc.nextInt();Connection conn = JDBCUtil.getConnection();String sql = "SELECT * FROM `business` where businessCondition='1'";PreparedStatement statement = conn.prepareStatement(sql);ResultSet rs = statement.executeQuery();// 遍历ResultSet创建对象int flag = 0;while (rs.next()) {int id = rs.getInt("businessId");if (id == ubid) {flag = 1;}}JDBCUtil.close(statement, conn);if (flag == 1) {Connection conn1 = JDBCUtil.getConnection();String sql1 = "UPDATE business SET businessCondition=0 WHERE businessId=?";PreparedStatement statement1 = conn1.prepareStatement(sql1);statement1.setInt(1, ubid);int i = statement1.executeUpdate();System.out.println(i);JDBCUtil.close(statement1, conn1);}} catch (Exception e) {e.printStackTrace();System.out.println("业务编号格式错误,请重新输入");Initialization.sc.next();removeBusiness();}}// 查看个人业务public void showMyBusiness() {List<HashMap<String, Object>> blist = getMyBusiness(Initialization.logier.getUid());if (blist != null) {for (HashMap<String, Object> hashMap : blist) {System.out.println(hashMap);}} else {System.out.println("没有业务");}}// 获取个人业务public List<HashMap<String, Object>> getMyBusiness(int bid) {List<HashMap<String, Object>> blist = null;Connection conn = JDBCUtil.getConnection();String sql = "SELECT business.* FROM uabtab LEFT JOIN business ON uabtab.businessId=business.businessId WHERE uabtab.uid=?";try {blist = new ArrayList<HashMap<String, Object>>();PreparedStatement statement = conn.prepareStatement(sql);statement.setInt(1, bid);ResultSet rs = statement.executeQuery();while (rs.next()) {HashMap<String, Object> map = new HashMap<String, Object>();map.put("businessId", rs.getInt("businessId"));map.put("businessTitle", rs.getString("businessTitle"));map.put("businessInfo", rs.getString("businessInfo"));map.put("businessPrice", rs.getDouble("businessPrice"));map.put("businessCondition", rs.getInt("businessCondition"));blist.add(map);}JDBCUtil.close(statement, conn);} catch (Exception e) {System.out.println("从数据库获取业务失败");}return blist;}// 终止业务:展示用户的业务列表,用户输入编号,判断是否编号是否合理,删除业务public void endBusiness() {List<HashMap<String, Object>> busis = getMyBusiness(Initialization.logier.getUid());for (HashMap<String, Object> bus : busis) {System.out.println(bus);}System.out.println("请输入需要终止的业务编号:");try {int ebid = Initialization.sc.nextInt();int flag = 0;for (HashMap<String, Object> bus : busis) {//遍历我的业务集合获取业务编号int bid = (int)bus.get("businessId");if(bid == ebid){//进来则说明我的业务中有用户正在终止的业务flag = 1;}}if(flag==1){Connection conn = JDBCUtil.getConnection();String sql = "Delete FROM uabtab WHERE uid=? AND businessId=?";PreparedStatement statement = conn.prepareStatement(sql);statement.setInt(1, Initialization.logier.getUid());statement.setInt(2, ebid);int i = statement.executeUpdate();System.out.println(i);System.out.println("从数据库终止业务成功");JDBCUtil.close(statement, conn);} else {System.out.println("编号不存在,终止业务失败");}} catch (Exception e) {e.printStackTrace();System.out.println("业务编号格式错误,请重新输入");Initialization.sc.next();endBusiness();}}/** 办理业务:展示可办理业务列表,用户输入业务编号 判断可办理的业务编号是否合理,若存在判断余额是否充足,充足则将该业务添加进我的业务列表,更新余额*/public void buyBusiness() {showPublishedBusiness();System.out.println("请输入需要办理的业务编号:");try {int bbid = Initialization.sc.nextInt();// 循环的同时取出该业务对象Business bBus = null;// 全局变量使用类名调用List<Business> blist = getPublishedBusiness();for (Business business : blist) {if (business.getBusinessId() == bbid&& business.getBusinessCondition() == 1) {bBus = business;}}if (bBus == null) {System.out.println("业务编号不合理,请重新操作");Index.skip();} else {// 判断余额是否充足if ((Initialization.logier.getMoney() - bBus.getBusinessPrice()) > 0) {// 进来则余额充足double rmoney = Initialization.logier.getMoney()- bBus.getBusinessPrice();int rpoints = (int) bBus.getBusinessPrice() * 10+ Initialization.logier.getPoints();Connection conn1 = JDBCUtil.getConnection();String sql1 = "UPDATE `user` SET `money`=?,`points`=? WHERE (`uid`=?)";PreparedStatement statement1 = conn1.prepareStatement(sql1);statement1.setDouble(1, rmoney);statement1.setInt(2, rpoints);statement1.setInt(3, Initialization.logier.getUid());int i1 = statement1.executeUpdate();System.out.println(i1);JDBCUtil.close(statement1, conn1);Connection conn2 = JDBCUtil.getConnection();String sql2 = "INSERT INTO `uabtab` (`uid`, `businessId`) VALUES (?, ?)";PreparedStatement statement2 = conn2.prepareStatement(sql2);statement2.setInt(1, Initialization.logier.getUid());statement2.setInt(2, bbid);int i2 = statement2.executeUpdate();System.out.println(i2);JDBCUtil.close(statement2, conn2);Initialization.logier.setMoney(rmoney);Initialization.logier.setPoints(rpoints);System.out.println("添加购买业务成功");Index.skip();} else {System.out.println("余额不足,购买失败");Index.skip();}}} catch (Exception e) {e.printStackTrace();System.out.println("业务编号格式错误,请重新输入");Initialization.sc.next();buyBusiness();}}// 充值public void addMoney() {try {System.out.println("请输入你要充值的金额:");double money = Initialization.sc.nextDouble();double rMoney = Initialization.logier.getMoney() + money;Connection conn = JDBCUtil.getConnection();String sql = "UPDATE `user` SET `money`=? WHERE (`uid`=?)";PreparedStatement statement = conn.prepareStatement(sql);statement.setDouble(1, rMoney);statement.setInt(2, Initialization.logier.getUid());int i = statement.executeUpdate();System.out.println(i);//更新全局变量Initialization.logier.setMoney(rMoney);System.out.println("充值成功");JDBCUtil.close(statement, conn);Index.userView();} catch (Exception e) {e.printStackTrace();System.out.println("输入金额格式错误,请重新输入");Initialization.sc.next();addMoney();}}//修改密码public void updatePwd() {System.out.println("请输入新的密码:");String pwd1 = Initialization.sc.next();System.out.println("请再次输入新的密码:");String pwd2 = Initialization.sc.next();if (pwd1.length() < 6) {System.out.println("密码应该大于5位,修改失败");Index.skip();} else {if (pwd1.equals(pwd2)) {String newPwd = MD5Util.getMD5(pwd1);try {Connection conn = JDBCUtil.getConnection();String sql = "UPDATE `user` SET `pwd`=? WHERE (`uid`=?)";PreparedStatement statement = conn.prepareStatement(sql);statement.setString(1, newPwd);statement.setInt(2, Initialization.logier.getUid());int i = statement.executeUpdate();System.out.println(i);Initialization.logier.setPwd(newPwd);System.out.println("密码修改成功");JDBCUtil.close(statement, conn);Index.skip();} catch (Exception e) {System.out.println("新密码写入数据库失败");}} else {System.out.println("两次密码不一致");Index.skip();}}}// 展示个人信息public void showMyInfo() {HashMap map = getUser(Initialization.logier.getUid());System.out.println(map);}public HashMap getUser(int uid) {HashMap u = null;try {Connection conn = JDBCUtil.getConnection();String sql = "SELECT * FROM `user` WHERE uid=?";PreparedStatement statement = conn.prepareStatement(sql);statement.setInt(1, uid);ResultSet rs = statement.executeQuery();if (rs.next()) {System.out.println(rs.getInt("uid"));u = new HashMap();u.put("uid", rs.getInt("uid"));u.put("username", rs.getString("username"));u.put("pwd", rs.getString("pwd"));u.put("name", rs.getString("name"));u.put("phone", rs.getString("phone"));u.put("cardid", rs.getString("cardid"));u.put("money", rs.getDouble("money"));u.put("points", rs.getInt("points"));}JDBCUtil.close(statement, conn);return u;} catch (Exception e) {System.out.println("获取失败");}return u;}// 修改个人信息public void updataMyInfo() {try {System.out.println("请输入你的姓名:");String myname = Initialization.sc.next();System.out.println("请输入你的联系方式:");String myphone = Initialization.sc.next();System.out.println("请输入你的身份证号:");String mycardid = Initialization.sc.next();Connection conn = JDBCUtil.getConnection();String sql = "UPDATE user SET name=?,phone=?,cardid=? WHERE uid=?";PreparedStatement statement = conn.prepareStatement(sql);statement.setString(1, myname);statement.setString(2, myphone);statement.setString(3, mycardid);statement.setInt(4, Initialization.logier.getUid());int i = statement.executeUpdate();System.out.println(i);JDBCUtil.close(statement, conn);System.out.println("修改个人信息成功");} catch (Exception e) {System.out.println("修改失败");}}/** 充值积分* 使用用户余额充值积分,1:10*/public void addPoints() {System.out.println("请输入你要花费的金额:");try {double cmoney = Initialization.sc.nextDouble();// 冲积分的钱double myMoney = Initialization.logier.getMoney();// 账户余额if (myMoney < cmoney) {System.out.println("您的余额不足,请重新输入或者充值后再冲积分");} else {int rPoints = (int) (cmoney * 10)+Initialization.logier.getPoints();// 充值后的积分double rmoney = myMoney - cmoney;//充值后的账户余额Connection conn = JDBCUtil.getConnection();String sql = "UPDATE user SET money=?,points=? WHERE uid=?";PreparedStatement statement = conn.prepareStatement(sql);statement.setDouble(1, rmoney);statement.setInt(2, rPoints);statement.setInt(3, Initialization.logier.getUid());int i = statement.executeUpdate();System.out.println(i);Initialization.logier.setMoney(rmoney);Initialization.logier.setPoints(rPoints);JDBCUtil.close(statement, conn);System.out.println("充值成功");Index.userView();}} catch (Exception e) {e.printStackTrace();System.out.println("输入花费金额格式错误,请重新输入");Initialization.sc.next();addPoints();}}
}
package pojo;import java.util.Scanner;public class Initialization {static DataOperator dataOperator = new DataOperator();static User logier = new User();static Scanner sc = new Scanner(System.in);
}
package pojo;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.List;import utils.MD5Util;
import utils.JDBCUtil;public class Index {public static void index() {System.out.println("欢迎来到嗖嗖移动大厅");System.out.println("请选择:");System.out.println("1:注册");System.out.println("2:登录");System.out.println("0:退出程序");System.out.print("请输入:");String num = Initialization.sc.next();switch (num) {case "1":register();break;case "2":login();break;case "0":System.out.println("欢迎下次再来");System.exit(0);default:System.out.println("输入错误");index();break;}}public static String yanzhengma() {String random = Math.random() + "";String str = random.substring(random.length() - 4);System.out.println(str);return str;}public static void register() {System.out.println("请输入用户名:");String myname = Initialization.sc.next();System.out.println("请输入密码:");String mypwd1 = Initialization.sc.next();System.out.println("请再次输入密码:");String mypwd2 = Initialization.sc.next();System.out.println("请输入验证码:");String str = yanzhengma();String yanzhengma = Initialization.sc.next();//从数据库实例化所有用户对象集合List<User> users = Initialization.dataOperator.getAllUser();int flag = 0;for (User u :users) {//遍历users查找有没有和输入的用户名相同的对象if (u.getUsername().equals(myname)) {//进来则有相同用户flag = 1;System.out.println("用户名相同,注册失败");break;}}if (flag == 1) {//用户名相同,重新注册index();} else {if (myname.length() < 10 && myname.length() > 4 && mypwd1.length() > 5) {//进来表示用户名符合规范if (mypwd1.equals(mypwd2)) {//进来表示两次密码输入一致if (yanzhengma.equals(str)) {//用户设置的密码先转成密文再存储mypwd1 = MD5Util.getMD5(mypwd1);//初始化一个新的用户对象存入用户集合User user = new User();user.setUsername(myname);user.setPwd(mypwd1);user.setMoney(0.0);user.setPoints(10);//获取连接对象Connection conn = JDBCUtil.getConnection();//编写sql语句String sql = "INSERT INTO `soso_db`.`user`(username,pwd,money,points) VALUES (?, ?, ?, ?)";try{PreparedStatement statement = conn.prepareStatement(sql);statement.setString(1, user.getUsername());statement.setString(2, user.getPwd());statement.setDouble(3, user.getMoney());statement.setInt(4, user.getPoints());int i = statement.executeUpdate();System.out.println(i);JDBCUtil.close(statement, conn);}catch(Exception e){System.out.println("注册失败");}System.out.println("注册成功");index();} else {System.out.println("验证码错误");index();}} else {System.out.println("密码输入不一致");index();}} else {System.out.println("用户名不合规范,4-10位,或者密码小于6位");index();}}}public static void login() {System.out.println("请输入用户名:");String myname = Initialization.sc.next();System.out.println("请输入密码:");String mypwd = Initialization.sc.next();String md5pwd = MD5Util.getMD5(mypwd);System.out.println("请输入验证码:");String str = yanzhengma();String yanzhengma = Initialization.sc.next();//创建user对象接受查询到的数据User u = null;Connection conn = JDBCUtil.getConnection();String sql = "SELECT * FROM `user`";try{Statement statement = conn.createStatement();ResultSet rs = statement.executeQuery(sql);while (rs.next()) {int uid = rs.getInt("uid");String uname = rs.getString("username");String upwd = rs.getString("pwd");String name = rs.getString("name");String phone = rs.getString("phone");String cardId = rs.getString("cardid");double money = rs.getDouble("money");int points = rs.getInt("points");if(uname.equals(myname)&&upwd.equals(md5pwd)){u = new User(uid, uname, upwd, name, phone, cardId, money, points);System.out.println("登录成功");}}}catch(Exception e){System.out.println("登录失败");}if (u!=null) {//注意,用户输入的密码需要先转成密文再比较if (str.equals(yanzhengma)) {Initialization.logier = u;System.out.println("登录成功");skip();} else {System.out.println("验证码错误");index();}} else {System.out.println("错误的用户名或密码");index();}}//判断是管理员还是普通用户,跳转不同界面public static void skip() {if (Initialization.logier.getUsername().equals("admin")) {adminView();} else {userView();}}public static void userView() {System.out.println("欢迎你:" + Initialization.logier.getUsername());System.out.println("1:查看个人信息");System.out.println("2:更新密码");System.out.println("3:充值");System.out.println("4:显示个人业务");System.out.println("5:业务大厅");System.out.println("6:办理业务");System.out.println("7:终止业务");System.out.println("8:修改个人信息");System.out.println("9:充值积分");System.out.println("10:返回主页");String num = Initialization.sc.next();DataOperator dataOperator = new DataOperator();switch (num) {case "1":dataOperator.showMyInfo();userView();break;case "2":dataOperator.updatePwd();userView();break;case "3":dataOperator.addMoney();userView();break;case "4":dataOperator.showMyBusiness();userView();break;case "5":dataOperator.showPublishedBusiness();userView();break;case "6":dataOperator.buyBusiness();userView();break;case "7":dataOperator.endBusiness();userView();break;case "8" :dataOperator.updataMyInfo();userView();break;case "9":dataOperator.addPoints();userView();break;case "10":index();break;default:System.out.println("欢迎下次再来");System.exit(0);}}public static void adminView() {System.out.println("欢迎你:管理员");System.out.println("1:查看用户");System.out.println("2:已发布业务");System.out.println("3:添加业务");System.out.println("4:删除业务");System.out.println("5:发布业务");System.out.println("6:未发布业务");System.out.println("7:修改业务价格");System.out.println("8:返回主页");System.out.println("9:查看所有业务");System.out.println("请选择要办理的业务");String num = Initialization.sc.next();switch (num) {case "1":Initialization.dataOperator.showAllUser();adminView();break;case "2":Initialization.dataOperator.showPublishedBusiness();adminView();break;case "3":Initialization.dataOperator.addNewBusiness();adminView();break;case "4":Initialization.dataOperator.removeBusiness();adminView();break;case "5":Initialization.dataOperator.publishBusiness();adminView();break;case "6":Initialization.dataOperator.showUnPublishedBusiness();adminView();break;case "7":Initialization.dataOperator.updatePrice();adminView();break;case "8":index();break;case "9":Initialization.dataOperator.showAllBusiness();adminView();break;default:System.exit(0);}}
}package pojo;public class Demo {public static void main(String[] args) {Index index = new Index();index.index();}
}
package utils;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;public class JDBCUtil {public static Connection getConnection() {Connection conn = null;String driver = "com.mysql.jdbc.Driver";String url = "jdbc:mysql://localhost:3306/soso_db";String username = "root";String pwd = "ANHUIaq0415";try {Class.forName(driver);conn = DriverManager.getConnection(url, username, pwd);} catch(Exception e) {System.out.println("获取连接失败");}return conn;}public static void close(PreparedStatement statement,Connection conn) {if(statement != null){try{statement.close();}catch(Exception e){}}if(conn != null){try{conn.close();}catch(Exception e){}}}
}
package utils;import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;public class MD5Util {public static void main(String[] args) {String pwd = getMD5("111");System.out.println(pwd);}public final static String getMD5(String str) {try {MessageDigest md = MessageDigest.getInstance("SHA");md.update(str.getBytes());byte mdBytes[] = md.digest();String hash = "";for (int i = 0; i < mdBytes.length; i++) {int temp;if (mdBytes[i] < 0)temp = 256 + mdBytes[i];elsetemp = mdBytes[i];if (temp < 16)hash += "0";hash += Integer.toString(temp, 16);}return hash;} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return null;}
}

Java周总结_mysql_jdbc相关推荐

  1. Baeldung Java 周评 | 第六十一弹(关键词:可移植并支持云的 HTTP 会话、Java 一流的 Money 及 Currency 支持、Java 8 内存管理改进、HTTP 2 客户端)

    开篇词 尤金的第 61 篇 Java 周评,诞生了! Spring 以及 Java 相关 可移植的.支持云的 HTTP 会话 在 Spring Boot 之后,我对使用的所有新 Spring 项目中感 ...

  2. Baeldung Java 周评 | 第一百零五弹(关键词:如果 Java 是今天设计的、内容丰富的 Spring 会议、JPA 测试用例模版、高性能 Java 持久化、自动化订购午餐、前端五强)

    开篇词 尤金的第 105 篇 Java 周评,诞生了! Spring 以及 Java 相关 如果 Java 是今天设计的:可同步接口 [jooq.org] 关于 Java 中 "可能是什么& ...

  3. java周志第二周_第二周JAVA学习日志

    从这周老师讲的东西中,我了解了许多以前不懂得东西.这周老师布置的作业,对我来说真的有点困难.通过上课的学习和下来翻书,勉强完成了一个登录界面的制作.这周学习的事件处理和swing组建以及swing组建 ...

  4. java 周次_JAVA计算学校学期周次

    JAVA计算学校学期周次 2020-09-09 / 0 评论 / 313 阅读 / 正在检测是否收录... 09/09 package com.zs.create.test; import java. ...

  5. java周志第二周_20165325 2017-2018-2 《Java程序设计》结对编程_第二周:四则运算

    20165325 2017-2018-2 <Java程序设计>结对编程_第二周:四则运算 一.码云链接 1.Git提交日志已经实现一个功能/一个bug修复的注释说明,如图所示: 2.测试代 ...

  6. Java 周日期计算工具,获取当前第几周,按周数获取周一至周日,按日期获取周一至周日

    记一个自己写的工具类: 1.按时间获取当前第几周 getzs 3.按日期获取周一至周日getgetBetweenDates2 4.按年份跟周数获取周一至周日 getgetBetweenDates3 结 ...

  7. java 周历_java – 如何从日期获得零售(4-5-4)日历周

    我需要从一个日期获得4-5-4个日历周.是否有像Java格鲁吉亚日历这样的实用程序用于4-5-4零售日历? 如果没有,我该如何创建一个?需要什么逻辑?在闰年的情况下,第53周是什么时候? 例如,如果我 ...

  8. java 周历_Java中公历和ISO 8601周历的一个坑

    作者:flhuoshan链接:https://hacpai.com/article/1423812556502 如果尝试运行下面的代码,其结果可能会让你意外: 运行结果为: 2014-12-29 20 ...

  9. java 周次,java处置年、月、周次以及起至日期大全

    java处理年.月.周次以及起至日期大全 /* * 创建日期 2007-03-14 * * 功能  取日期时间工具 * */ package com.util; import java.text.Pa ...

最新文章

  1. windows10上使用一个tomcat部署2个项目
  2. 亿级流量场景下如何为HTTP接口限流?看完我懂了!!
  3. vscode 在标签的src引入别名路径_从零开始 - VSCode 插件运行机制
  4. 腾讯内部产品课:细分用户
  5. 【数据结构与算法】之深入解析“二叉搜索树中的搜索”的求解思路与算法示例
  6. Elasticsearch嵌套查询
  7. 导数与微分的知识点思维导图_高中生物思维导图知识点总结
  8. 如何提高数据分析的效率
  9. 【题解】Making The Grade(DP+结论)
  10. java添加缓存_实现 Java 本地缓存的方法解析
  11. win7共享20人限制 清除_中控智慧考勤门禁_机器直连软件及清除管理员
  12. 软件的生命周期分为哪几个阶段
  13. html中加入emjio表情,jqueryemoji表情插件
  14. 管仲(约前723年-前645年)
  15. 《论文阅读》PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection
  16. 人到中年,程序猿的人生路~
  17. 感恩节 | Hulu Thanksgiving Potluck聚餐
  18. 【Python工具】Python版本的天眼查,是不是就很nice啦 | 附带源码
  19. 4872: [Shoi2017]分手是祝愿
  20. 【报错】安装scrapy时Could not build wheels for cryptography which use PEP 517 and cannot be installed direc

热门文章

  1. 百度飞桨、郑州大学联合培养AI工程人才,破解无纺布瑕疵检测难题
  2. SharePoint 2010 Url Shortener --SharePoint 2010 短URL生成器
  3. 如何增强自己的UI审美,如何提高自己的产品平面设计的能力呢?
  4. 利用js制造一个星座查询的效果
  5. 如何查看自己oracle版本,如何查看oracle数据库的版本
  6. oracle19c的版本号_Oracle 版本查看及版本号说明
  7. excel 宏 数据透视表_宏从多个文件创建Excel数据透视表
  8. 常见电脑硬件故障有哪些?如何解决?~~~内存故障
  9. 教你用简单几个步骤快速重命名文件夹名
  10. 手机长曝光是什么意思_实用贴!手把手教你如何实现手机长曝光!