Java连接mysql数据库可重复利用
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class ConDB { static String driver = "com.mysql.jdbc.Driver"; static String url = "jdbc:mysql://localhost:3306/test"; //用户名和密码 static String user = "root"; static String password = "root"; // 获取链接 public static Connection getConn() { Connection connection = null; try { Class.forName(driver); connection = DriverManager.getConnection(url, user, password); } catch (Exception e) { e.printStackTrace(); } return connection; } // 获取Statement类 // @param connection 连接 public static Statement getStatement(Connection connection) { Statement statement = null; try { statement = connection.createStatement(); } catch (SQLException e) { e.printStackTrace(); } return statement; } // 执行sql语句 主要用户查询的操作(适用于一条或多条查询结果) // @param statement statement对象 // @param sql sql语句 public static ResultSet getResultSet(Statement statement, String sql) { ResultSet resultSet = null; try { boolean execute = statement.execute(sql); if (execute) { resultSet = statement.getResultSet(); } } catch (SQLException e) { e.printStackTrace(); } return resultSet; } // 获取去操作的行数 // @param statement statement对象 // @param sql sql语句 // @return 0 为成功 -1 失败 public static int getUpdateCount(Statement statement, String sql) { int count = 0; try { boolean execute = statement.execute(sql); if (execute) { count = statement.getUpdateCount(); } } catch (SQLException e) { count = -1; e.printStackTrace(); } return count; } // 关闭链接 public static void close(ResultSet rs, Statement st, Connection conn) { try { if (rs != null) { rs.close(); } if (st != null) { st.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } public static void main(String[] args) throws SQLException { // 查找 /* * ArrayList<Customer> list = new ArrayList<Customer>(); Connection conn = * ConDB.getConn(); String sql = "select * from customer_info"; Statement * statement = ConDB.getStatement(conn); ResultSet resultSet = * ConDB.getResultSet(statement, sql); while (resultSet.next()) { Customer * customer = new Customer(); customer.setLoginName(resultSet.getString(2)); * customer.setLoginPassword(resultSet.getString(3)); * customer.setRealName(resultSet.getString(4)); * customer.setAge(resultSet.getInt(5)); list.add(customer); } * System.out.println(list.toString()); ConDB.close(resultSet, null, conn); */ // 插入 /* * Customer customer = new Customer(); customer.setLoginName("xiaoming"); * customer.setLoginPassword("123456"); customer.setRealName("小蓝"); * customer.setAge(23); Connection conn = ConDB.getConn(); String sql = * "insert into customerinfo " + * "(login_name,login_password,real_name,age) value " + * "("+customer.getLoginName()+","+customer.getLoginPassword() * +","+customer.getRealName()+","+customer.getAge()+")"; Statement statement * = ConDB.getStatement(conn); int updateCount = ConDB.getUpdateCount(statement, * sql); System.out.println(updateCount); ConDB.close(null, statement, conn); */ } }
前几天看到了关于事务的东东,在Dao层的处理多条语句的时候,可以将事务关闭(默认是开启的)
conn.setAutoCommit(false);
然后执行任意多条的DML语句,在执行后进行事务的提交,
conn.commit();
在报出异常的时候进行事务的回滚
conn.rollback();
下一篇:
uboot中Kconfig架构的理解