JdbcUtils
项目结构
db.properties
driverClass=com.mysql.jdbc.Driver url=jdbc:mysql:///myTest username=root password=root
JdbcUtils
package com.pers.jdbc.utils; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; /** * @author liangyadong * @date 2016年10月13日 下午3:23:22 * @version 1.0 */ public class JdbcUtils { public static final String DRIVERCLASS; public static final String URL; public static final String USERNAME; public static final String PASSWORD; /** * 静态代码块 * * 步骤 * 1.创建properties对象 * 2.获取db配置文件的输入流 * 3.properties对象加载配置文件 * 4.properties对象通过key获取值 */ static{ // 读取配置文件,将值赋给常量 // 创建properties对象 Properties pro = new Properties(); // 获取db.properties文件的输入流 InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("com/pers/jdbc/utils/db.properties"); // 加载配置文件 try { pro.load(in); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 通过key获取值 DRIVERCLASS = pro.getProperty("driverClass"); URL = pro.getProperty("url"); USERNAME = pro.getProperty("username"); PASSWORD = pro.getProperty("password"); } /** * 加载驱动 */ public static void loadDriver(){ try { Class.forName(DRIVERCLASS); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 获取连接 * @return */ public static Connection getConnection() { // TODO Auto-generated method stub // 加载驱动 loadDriver(); try { // 获取连接 return DriverManager.getConnection(URL,USERNAME,PASSWORD); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } /** * 释放资源 * * 查询的释放资源方法 * @param conn * @param sta * @param rs */ public static void release(Connection conn,Statement sta,ResultSet rs){ if (rs!=null) { try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } rs = null; } if (sta!=null) { try { sta.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } sta = null; } if (conn!=null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } conn = null; } } /** * 释放资源 * * 增删改的释放资源方法 * @param conn * @param sta */ public static void release(Connection conn,Statement sta){ if (sta!=null) { try { sta.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } sta = null; } if (conn!=null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } conn = null; } } }
JdbcTest
package com.pers.jdbc.demo; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.junit.Test; import com.pers.jdbc.utils.JdbcUtils; /** * @author liangyadong * @date 2016年10月13日 上午11:01:22 * @version 1.0 */ public class JdbcTest2 { /** * 测试添加数据 */ @Test public void InsertTest(){ /** * 步骤 * 1.加载驱动 * 2.获取连接 * 3.编写sql * 4.获取执行sql的对象 * 5.执行sql * 6.释放资源 */ Connection conn = null; Statement sta = null; try { // 加载驱动 Class.forName("com.mysql.jdbc.Driver"); // 获取连接 conn = DriverManager.getConnection("jdbc:mysql:///myTest","root","root"); // 编写插入sql String sql = "insert into t_user values (null,'ddd','123','ddd@163.com')"; // 获取执行sql的对象 sta = conn.createStatement(); // 执行sql /*boolean b = sta.execute(sql); if (b=true) { System.out.println("添加数据成功!"); }*/ // 或 int i = sta.executeUpdate(sql); if (i>0) { System.out.println("添加数据成功!"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { /** * 释放资源 */ if (sta!=null) { try { sta.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } sta=null; } if (conn!=null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } conn=null; } } } /** * 修改第四条数据名称为eee */ @Test public void UpdateTest(){ /** * 步骤 * 1.加载驱动 * 2.获取连接 * 3.编写修改数据的sql * 4.创建执行sql的对象 * 5.执行sql * 6.释放资源 */ Connection conn = null; Statement sta = null; try { // 加载驱动 Class.forName("com.mysql.jdbc.Driver"); // 获取连接 conn = DriverManager.getConnection("jdbc:mysql:///myTest","root","root"); // 编写修改数据的sql String sql = "update t_user set username='eee' where id = '4'"; // 创建执行sql的对象 sta = conn.createStatement(); // 执行sql int i = sta.executeUpdate(sql); if (i>0) { System.out.println("修改数据成功!"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { /** * 释放资源 */ if (sta!=null) { try { sta.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } sta=null; } if (conn!=null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } conn=null; } } } /** * 删除数据测试 * 删除第四条数据 */ @Test public void DeleteTest(){ /** * 步骤 * 1.加载驱动 * 2.获取连接 * 3.编写sql * 4.创建执行sql的对象 * 5.执行sql * 6.释放资源 */ Connection conn = null; Statement sta = null; try { // 加载驱动 Class.forName("com.mysql.jdbc.Driver"); // 获取连接 conn = DriverManager.getConnection("jdbc:mysql:///myTest","root","root"); // 编写sql String sql = "delete from t_user where id = '4'"; // 创建执行sql的对象 sta = conn.createStatement(); // 执行sql int i = sta.executeUpdate(sql); if (i>0) { System.out.println("删除数据成功!"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { /** * 释放资源 */ if (sta!=null) { try { sta.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } sta = null; } if (conn!=null) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } conn=null; } } } /** * 测试查询数据 * 使用jdbc工具类 */ @Test public void query(){ /** * 步骤 * 1.加载驱动 * 2.获取连接 * 3.编写sql * 4.创建执行sql的对象 * 5.执行sql * 6.遍历结果 * 7.释放资源 */ Connection conn = null; Statement sta = null; ResultSet rs = null; try { // 加载驱动获取连接 conn = JdbcUtils.getConnection(); // 编写sql String sql = "select * from t_user"; // 创建执行sql的对象 sta = conn.createStatement(); // 执行sql rs = sta.executeQuery(sql); // 遍历结果 while(rs.next()){ int id = rs.getInt("id"); String username = rs.getString("username"); String email = rs.getString("email"); System.out.println(id+"-"+username+"-"+email); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { JdbcUtils.release(conn, sta, rs); } } }
输入流路径: 包名/文件名
*注意:相对路径开头是没有斜杠的