- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- public class SqlHelper {
- // 定义需要的变量
- static Connection ct = null;
- static PreparedStatement ps = null;
- static ResultSet rs = null;
- // 连接数据库的参数
- private static String url = "jdbc:mysql://127.0.0.1:3306/hotel";
- private static String username = "root";
- private static String password = "henry";
- private static String drivername = "com.mysql.jdbc.Driver";
- //static Properties pp = null;
- //static FileInputStream fis = null;
- public SqlHelper(){
- System.out.println(" 0");
- // 加载驱动,只需要一次
- System.out.println(ct+" 1 0");
- //加载驱动
- try {
- System.out.println(ct+" 2 0");
- Class.forName(drivername);
- System.out.println(ct+" 3 0");
- try {
- ct=DriverManager.getConnection(url,username,password);
- System.out.println(ct+" 4 0");
- } catch (SQLException e) {
- e.printStackTrace();
- }
- } catch (ClassNotFoundException e) {
- }
- }
- // 如果有多个增删改[需要考虑事务]
- // 比如:把一个学生,并同时更新该同学的所在班级的总人数
- public void executeUpdate2(String sql[], String[][] parameters) {
- try {
- // 1.获得连接
- //ct = getConnection();
- // 用户出入的可能是多个sql语句
- ct.setAutoCommit(false);
- for (int i = 0; i < sql.length; i++) {
- if (parameters[i] != null) {
- ps = ct.prepareStatement(sql[i]);
- for (int j = 0; j < parameters[i].length; j++) {
- ps.setString(j + 1, parameters[i][j]);
- }
- ps.executeUpdate();
- }
- }
- ct.commit();
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e.getMessage());
- } finally {
- close();
- }
- }
- // 一个增删改
- // sql格式:update 表名 set 字段名=? where 字段=?
- public static void executeUpdate(String sql, String[] parameters) {
- // 1.创建一个ps
- //ct = getConnection();
- try {
- System.out.println(ct+" 5 0");
- System.out.println(sql);
- System.out.println(parameters[0]);
- <FONT color=red>ps = ct.prepareStatement(sql);//.....这里怎么回事啊 搞什么飞机啊 </FONT>
- // 给?赋值
- for (int i = 0; i < parameters.length; i++) {
- ps.setString(i + 1, parameters[i]);
- }
- // 执行
- ps.executeUpdate();
- } catch (SQLException e) {
- e.printStackTrace();
- // 执行异常,抛出异常(好处:可以给调用的函数可以处理也可以不处理)
- throw new RuntimeException(e.getMessage());
- } finally {
- // 关闭资源
- close();
- }
- }
- // 关闭资源的方法
- public static void close() {
- try {
- if (rs != null)
- rs.close();
- if (ps != null)
- ps.close();
- if (ct != null)
- ct.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
复制代码 |