JDBC工具类抽取方法(使用properties配置文件)
2018-04-09 20:26
816 查看
JDBC工具类抽取方式一(测试根据id查询)
package cn.itheima.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * 提供获取连接和释放资源的 方法 * */ public class JDBCUtils_V1 { /** * 获取连接方法 * * @return */ public static Connection getConnection() { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/web08", "root", "root"); } catch (Exception e) { e.printStackTrace(); } return conn; } public static void release(Connection conn, PreparedStatement pstmt, ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
JDBC工具类抽取方式二(测试添加操作)
使用properties配置文件创建properties配置文件
写配置文件时注意不能使用空格!
注意传参问题
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/web08?useUnicode=true&characterEncoding=utf8 username=root password=ao1221
加载配置文件:ResourceBundle对象
在v2版本中使用JDK提供的工具类ResourceBundle加载properties文件,ResourceBundle提供getBundle()方法用于只提供properties文件即可,之后使用getString(key)通过key获得value的值
package cn.itheima.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ResourceBundle; /** * 提供获取连接和释放资源的 方法 * */ public class JDBCUtils_V2 { private static String driver; private static String url; private static String username; private static String password; /** * 静态代码块加载配置文件信息 */ static{ ResourceBundle bundle = ResourceBundle.getBundle("db"); driver = bundle.getString("driver"); url = bundle.getString("url"); username = bundle.getString("username"); password = bundle.getString("password"); } /** * 获取连接方法 * * @return */ public static Connection getConnection() { Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(url, username, password); } catch (Exception e) { e.printStackTrace(); } return conn; } public static void release(Connection conn, PreparedStatement pstmt, ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
JDBC工具类抽取方式三(删除&修改操作)
加载配置文件:Properties对象对应properties文件处理,开发中也会使用Propertise对象进行。在v3版本中采用加载properties文件获得流,然后使用Properties对象进行处理。
package cn.itheima.jdbc; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Properties; import java.util.ResourceBundle; /** * 提供获取连接和释放资源的 方法 * */ public class JDBCUtils_V3 { private static String driver; private static String url; private static String username; private static String password; /** * 静态代码块加载配置文件信息 */ static { try { // 1.通过当前类获取类加载器 ClassLoader classLoader = JDBCUtils_V3.class.getClassLoader(); // 2.通过类加载器的方法获得一个输入流 InputStream is = classLoader.getResourceAsStream("db.properties"); // 3.创建一个properties对象 Properties props = new Properties(); // 4.加载输入流 props.load(is); // 5.获取相关参数的值 driver = props.getProperty("driver"); url = props.getProperty("url"); username = props.getProperty("username"); password = props.getProperty("password"); } catch (IOException e) { e.printStackTrace(); } } /** * 获取连接方法 * * @return */ public static Connection getConnection() { Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(url, username, password); } catch (Exception e) { e.printStackTrace(); } return conn; } public static void release(Connection conn, PreparedStatement pstmt, ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } be98 } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
测试类
package cn.itheima.jdbc.test; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import org.junit.Test; import cn.itheima.jdbc.JDBCUtils_V1; import cn.itheima.jdbc.JDBCUtils_V2; import cn.itheima.jdbc.JDBCUtils_V3; /** * 测试工具类 * */ public class TestUtils { /** * 根据id更新用户信息方法 */ @Test public void testUpdateById() { Connection conn = null; PreparedStatement pstmt = null; try { // 1.获取连接 conn = JDBCUtils_V3.getConnection(); // 2.编写sql语句 String sql = "update tbl_user set upassword=? where uid=?"; // 3.获取执行sql语句对象 pstmt = conn.prepareStatement(sql); // 4.设置参数 pstmt.setString(1, "999"); pstmt.setInt(2, 3); // 5.执行更新操作 int row = pstmt.executeUpdate(); if (row > 0) { System.out.println("更新成功!"); } else { System.out.println("更新失败!"); } } catch (Exception e) { throw new RuntimeException(e); } finally { // 6.释放资源 JDBCUtils_V3.release(conn, pstmt, null); } } /** * 根据id删除信息方法 */ @Test public void testDeleteById() { Connection conn = null; PreparedStatement pstmt = null; try { // 1.获取连接 conn = JDBCUtils_V3.getConnection(); // 2.编写sql语句 String sql = "delete from tbl_user where uid=?"; // 3.获取执行sql语句对象 pstmt = conn.prepareStatement(sql); // 4.设置参数 pstmt.setInt(1, 4); // 5.执行删除操作 int row = pstmt.executeUpdate(); if (row > 0) { System.out.println("删除成功!"); } else { System.out.println("删除失败!"); } } catch (Exception e) { throw new RuntimeException(e); } finally { // 6.释放资源 JDBCUtils_V3.release(conn, pstmt, null); } } /** * 添加用户信息方法 */ @Test public void testAdd() { Connection conn = null; PreparedStatement pstmt = null; try { // 1.获取连接 conn = JDBCUtils_V2.getConnection(); // 2.编写sql语句 String sql = "insert into tbl_user values(null,?,?)"; // 3.获取执行sql语句对象 pstmt = conn.prepareStatement(sql); // 4.设置参数 pstmt.setString(1, "lisi"); pstmt.setString(2, "hehe"); // 5.执行插入操作 int row = pstmt.executeUpdate(); if (row > 0) { System.out.println("添加成功!"); } else { System.out.println("添加失败!"); } } catch (Exception e) { throw new RuntimeException(e); } finally { // 6.释放资源 JDBCUtils_V2.release(conn, pstmt, null); } } /** * 根据id查询用户信息 */ @Test public void testFindUserById() { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { // 1.获取连接 conn = JDBCUtils_V1.getConnection(); // 2.编写sql语句 String sql = "select * from tbl_user where uid=?"; // 3.获取执行sql语句对象 pstmt = conn.prepareStatement(sql); // 4.设置参数 pstmt.setInt(1, 2); // 5.执行查询操作 rs = pstmt.executeQuery(); // 6.处理结果集 while (rs.next()) { System.out.println(rs.getString(2) + "----" + rs.getString("upassword")); } // 释放资源放在此处行么?【不行滴!】 } catch (SQLException e) { e.printStackTrace(); } finally { // 7.释放资源 JDBCUtils_V1.release(conn, pstmt, rs); } } }
相关文章推荐
- 从零开始学JDBC--1.9 代码抽取--使用Properties读取配置文件
- 从零开始学JDBC--1.9 代码抽取--使用Properties读取配置文件
- Spring配置文件中使用ref local与ref bean的区别. 在ApplicationResources.properties文件中,使用<ref bean>与<ref local>方法如下
- Spring配置文件中使用ref local与ref bean的区别. 在ApplicationResources.properties文件中,使用<ref bean>与<ref local>方法如下
- 如何在JDBC中使用.properties文件配置驱动
- java提供的把中文转化为ascII码(*.properties 文件配置使用)的方法
- 复习课程jdbc:使用配置文件properties进行连接数据库,数据库存取图片,批处理,时间戳,事物回滚等等
- 方法:一个简单的读取配置文件.properties的工具类 JAVA
- MyBatis主配置文件与jdbc.properties文件结合使用
- 在使用servlet时读取database.properties数据库配置文件信息方法
- jdbc数据库连接管理封装工具类,不同使用属性文件配置数据库连接信息(1)
- mybatis 使用jdbc.properties文件设置不起作用的解决方法
- Spring 使用配置文件读取jdbc.properties
- jsp 使用properties配置文件方法
- 比较常用的Properties配置文件的使用方法示例
- java Spring使用配置文件读取jdbc.properties
- Java之数据库MYSQL、JDBC工具类、properties配置文件
- Spring使用配置文件读取jdbc.properties
- jdbc数据库连接管理封装工具类,不同使用属性文件配置数据库连接信息(3)
- 22Spring_JdbcTemplatem模板工具类的使用——使用外部属性文件来配置(properties)