从JAVA到JDBC的感受
来源:互联网 发布:淘宝网的二手市场在哪 编辑:程序博客网 时间:2024/06/05 20:06
1.在JDBC中excuteUpdate()与executeUpdate(sql)的区别:
如果执行的sql语句中有变量,则应选用不带参数的excute语句,若sql语句不带变量,则应选用不带参数的语句。
2.带变量的sql语句可以有两种方式表示(以insert语句为例):
1⃣️ PreparedStatment stmt = new PreparedStatment()
sql = "insert into tableName (a,b,c,d,e) values(?,?,?,?,?)";
stmt.set[String](1,a);
stmt.set[String](2,b);
stmt.set[String](3,c);
stmt.set[String](4,d);
stmt.set[String](5,e);
2⃣️ Statementst =conn.createStatement();
String sql = "insert into tableName (a,b) values ('"+a+"','"+b+"')";
3.可以定义配置文件以工厂形式来存放数据库连接的数据;
4.可以将数据库中的列封装到对象<List>中;
5.初步代码如下:
MysqlCon.java
import java.io.FileReader;import java.io.Reader;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;import com.mysql.jdbc.PreparedStatement;public class MysqlCon { private static String driver; private static String url; private static String username; private static String password; static{ Properties prop = new Properties(); Reader in; try{ in = new FileReader("src//config.properties"); prop.load(in); }catch(Exception e){ e.printStackTrace(); } driver = prop.getProperty("driver"); url = prop.getProperty("url"); username = prop.getProperty("username"); password = prop.getProperty("password"); try{ Class.forName(driver); }catch(ClassNotFoundException e){ System.out.println(e); } } public static String Mysqllogin_compare(String username_cp){ try { Connection conn = DriverManager.getConnection(url, username, password); if(!conn.isClosed()){ System.out.println("Succeeded connecting to the Database!"); Statement st = conn.createStatement(); String sql = "select * from user where user.name='"+username_cp+"'"; ResultSet rs = st.executeQuery(sql); String password_cp = null; if(rs.next()){ password_cp = rs.getString(5); } rs.close(); conn.close(); return password_cp; } }catch (SQLException e) {// e.printStackTrace(); } return null; } public void Mysql_save(String name, String num, String sex, int age){ String name_save = name; String num_save = num; String sex_save = sex; int age_save = age; String password_save = num; try { Connection conn = DriverManager.getConnection(url, username, password); if(!conn.isClosed()){ System.out.println("Succeeded connecting to the Database!"); String sql = "insert into user (name,num,age,sex,password) values(?,?,?,?,?)"; String sql1 = "insert into base (ANAME,NUM,ACCOUNT) values(?,?,?)"; PreparedStatement st= (PreparedStatement) conn.prepareStatement(sql); st.setString(1, name_save); st.setString(2, num_save); st.setInt(3, age_save); st.setString(4, sex_save); st.setString(5, password_save); st.executeUpdate(); PreparedStatement st1= (PreparedStatement) conn.prepareStatement(sql1); st1.setString(1, name_save); st1.setString(2, num_save); st1.setInt(3, 0); st1.executeUpdate(); System.out.println("注册成功"); } conn.close(); }catch(Exception e){ e.printStackTrace(); } } public static void save_money(String username_cp,int account_cp){ String name = username_cp; int account = 0; int account_inc = account_cp; try { Connection conn = DriverManager.getConnection(url, username, password); if(!conn.isClosed()){ System.out.println("Succeeded connecting to the Database!"); Statement st = conn.createStatement(); String sql1 = "select * from base where base.ANAME='"+name+"'"; ResultSet rst = st.executeQuery(sql1); if(rst.next()){ account = rst.getInt(3);// System.out.println(account); } account = account + account_inc; String sql = "update base set base.ACCOUNT='"+account+"' where base.ANAME='"+name+"'"; st.executeUpdate(sql); System.out.println("存款成功"); rst.close(); conn.close(); } }catch (SQLException e) {// e.printStackTrace(); } } public static void out_money(String username_cp,int account_cp){ String name = username_cp; int account = 0; int out_account = account_cp; try { Connection conn = DriverManager.getConnection(url, username, password); if(!conn.isClosed()){ System.out.println("Succeeded connecting to the Database!"); Statement st = conn.createStatement(); String sql1 = "select * from base where base.ANAME='"+name+"'"; ResultSet rst = st.executeQuery(sql1); if(rst.next()){ account = rst.getInt(3);// System.out.println(account); } if((account - out_account) >= 0){ account = account - out_account; String sql = "update base set base.ACCOUNT='"+account+"' where base.ANAME='"+name+"'"; st.executeUpdate(sql); System.out.printf("取款成功,您的账户余额为%d",account); rst.close(); conn.close(); } } else{ System.out.println("您的余额不足,别逗了!"); } }catch (SQLException e) {// e.printStackTrace(); } }public static void pass_money(String username_cp, String num_cp, int account_cp) {String name = username_cp;String num = num_cp; int out_account = account_cp; int left_account = 0; int inc_account = 0; try { Connection conn = DriverManager.getConnection(url, username, password); if(!conn.isClosed()){ System.out.println("Succeeded connecting to the Database!"); Statement st = conn.createStatement(); String sql1 = "select * from base where base.ANAME='"+name+"'"; ResultSet rst = st.executeQuery(sql1); if(rst.next()){ left_account = rst.getInt(3);// System.out.println(account); } if((left_account - out_account) >= 0){ left_account = left_account - out_account; String sql = "update base set base.ACCOUNT='"+left_account+"' where base.ANAME='"+name+"'"; st.executeUpdate(sql); String sq3 = "select * from base where base.NUM='"+num+"'"; ResultSet rst2 = st.executeQuery(sq3); if(rst2.next()){ inc_account = rst2.getInt(3); } inc_account = inc_account + out_account; String sq2 = "update base set base.ACCOUNT='"+inc_account+"' where base.NUM='"+num+"'"; st.executeUpdate(sq2); System.out.printf("转账成功,您的账户余额为%d\n",left_account); rst2.close(); rst.close(); conn.close(); } else{ System.out.println("您的余额不足,别逗了!"); } } }catch (SQLException e) {// e.printStackTrace(); }} public static void lord_money(String username_cp,int account_cp){ String name = username_cp; int account = 0; int account_inc = account_cp; try { Connection conn = DriverManager.getConnection(url, username, password); if(!conn.isClosed()){ System.out.println("Succeeded connecting to the Database!"); Statement st = conn.createStatement(); String sql1 = "select * from base where base.ANAME='"+name+"'"; ResultSet rst = st.executeQuery(sql1); if(rst.next()){ account = rst.getInt(3);// System.out.println(account); } account = account + account_inc; String sql = "update base set base.ACCOUNT='"+account+"' where base.ANAME='"+name+"'"; st.executeUpdate(sql); System.out.println("贷款成功");// System.out.println("您的还款日期为"); rst.close(); conn.close(); } }catch (SQLException e) {// e.printStackTrace(); } } public static void show_money(String username_cp){ String name = username_cp; int account = 0; try { Connection conn = DriverManager.getConnection(url, username, password); if(!conn.isClosed()){ System.out.println("Succeeded connecting to the Database!"); Statement st = conn.createStatement(); String sql1 = "select * from base where base.ANAME='"+name+"'"; ResultSet rst = st.executeQuery(sql1); if(rst.next()){ account = rst.getInt(3);// System.out.println(account); } System.out.println(account); rst.close(); conn.close(); } }catch (SQLException e) {// e.printStackTrace(); } }}ShowWindow.java
import java.util.Scanner;public class ShowWindow {private static String name;private static int in_account;private static int out_account;private static int pass_account;private static String pass_num;private static int lord_account;static MysqlCon msq = new MysqlCon(); public static void show_menu( ){System.out.println(".......1.存款.......\n");System.out.println(".......2.取款.......\n");System.out.println(".......3.转账.......\n");System.out.println(".......4.贷款.......\n");System.out.println(".......5.退出.......\n");System.out.println(".......6.显示余额.......\n");}public static void main(String[] args){System.out.println("请登陆:新用户请输入1创建账户,老用户请输入2登陆");Scanner sc = new Scanner(System.in);int choice = sc.nextInt();if(choice == 2){System.out.println("请输入姓名");name = sc.next();System.out.println("请输入您的密码,您只有三次机会去输入正确的密码\n,如果超过三次,"+ "处于对您财产安全的考虑,您的账户将会被"+ "冻结一小时,请谅解");int count = 1;while(count <= 3){String password = sc.next();if(password.equals(MysqlCon.Mysqllogin_compare(name))){break;}else{System.out.println("\n请输入正确的密码,您还有两次机会");count++;}}if(count > 3)choice = 2;}else if(choice == 1){System.out.println("请输入您的姓名:");String name = sc.next();System.out.println("请输入您的学号:");String num = sc.next();System.out.println("请输入您的性别:");String sex = sc.next();System.out.println("请输入您的年龄:");int age = sc.nextInt();System.out.println("您的密码将自动生成为您的学号:\n");msq.Mysql_save(name, num, sex, age);System.out.println("创建成功,即将退回到登陆界面\n");}System.out.println("登陆成功\n");System.out.println("请选择您要进行的操作\n");int num = 1;while(num != 0){show_menu();num = sc.nextInt();switch(num){case 1: System.out.println("你选择的是存款\n");System.out.println("请输入您要存入的数额:");in_account = sc.nextInt();MysqlCon.save_money(name,in_account);break;case 2: System.out.println("你选择的是取款\n");System.out.println("请输入您要取出的数额:");out_account = sc.nextInt();MysqlCon.out_money(name,out_account);break;case 3:System.out.println("你选择的是转账\n");int i = 1;while(i == 1){System.out.println("请输入您要转入的账号:");pass_num = sc.next();System.out.println("请输入转账金额");pass_account = sc.nextInt();MysqlCon.pass_money(name,pass_num,pass_account);break;}break;case 4:System.out.println("你选择的是贷款\n");System.out.println("请输入您要贷款的金额");lord_account = sc.nextInt();MysqlCon.lord_money(name,lord_account);break;case 5:System.out.println("你选择的是退出\n");num = 0;break;case 6:System.out.println("您选择的是显示余额\n");MysqlCon.show_money(name);}}sc.close();}}
配置文件
阅读全文
0 0
- 从JAVA到JDBC的感受
- 从 JDBC 类型映射到 Java 类型
- 【Mybatis】从JDBC到Mybatis的改进
- 从ODBC到JDBC
- 从jdbc到mybatis
- Android从java->kotlin,感受kotlin的神奇之处
- Java开发系列--JDBC(从基础到封装)
- JAVA WEB从入门到精通 day18 JDBC学习(三)
- 初到哈尔滨的感受
- 到CSDN上课的感受
- 从JDBC到commons-dbutils
- 从JDBC到commons-dbutils
- 【转载】从JDBC到Mybatis
- JDBC从瞎搞到进阶
- 1、从传统的JDBC升级到Hibernate入门
- 从ORACLE切换到MYSQL--JDBC的dataSource配置修改
- 学习Java的感受
- 感受java的简单
- 编程题赏析3
- 常见端口服务渗透
- 极大似然估计详解
- #416 Div.2 B. Vladik and Complicated Book
- 欢迎使用CSDN-markdown编辑器
- 从JAVA到JDBC的感受
- C++字符串格式化 sprintf、printf
- Hybird-App离线缓存系统
- [LeetCode]572. Subtree of Another Tree(判断树t是否是树S的子树)
- 简单但实战性超强的composer笔记
- 28个常见的“蓝屏”故障代码的排查信息
- 存储过程的通过其他的表的查询
- js字符串和数组之间的转换
- 有没有获取积分的方法