JDBC----关于JDBC的配置以及我的第一次CRUD操作
JDBC简单来说就是Java与数据库的一个接口,而接口本身是一种规范,我们可以通过JDBC来实现对数据库的增删改查。
首先是JDBC的配置。
所用软件: IDE mysql mysqlworkbench
操作环境 : win10操作系统
首先新建一个项目,选择java模块,配置好jdk,起好项目名称和选择项目路径后,首先要配置JDBC必要的jar包。
去mysql官网上下载你要下载的jar包版本,这里我用的版本是5.1.37。
一般来说从官网上会下载一个zip压缩包,解压后取出文件里面的.jar文件即可。
为项目文件夹创建一个lib目录,放置我们的jar包。
然后写一份配置文件,放置用户名,密码,与本地数据库的链接,以及选择要导入的类。
username, password分别是本地数据库的用户名和密码。
url是本地数据库的连接地址,3306是数据库端口号(默认3306) test是数据库名称
?useUnicode=true&characterEncoding=utf8 //默认不需要这段,但是如果不添加,那么无法实现从idea往数据库中插入中文字符
文件编写好之后就可以写代码了。
首先写我们的工具类,主要是对数据库的连接和关闭资源。
public static Connection getConnection() throws IOException, ClassNotFoundException, SQLException { InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties"); Properties pros = new Properties(); pros.load(is); String user = pros.getProperty("user"); String password = pros.getProperty("password"); String url = pros.getProperty("url"); String driverClass = pros.getProperty("driverClass"); //2、加载驱动 Class.forName(driverClass); //3、获取连接 Connection conn = DriverManager.getConnection(url, user, password); return conn; }
前面三行代码都是传入我们刚刚配置好的文件
为什么用文件而不是直接在代码中写呢?
因为这样能实现数据与代码的解耦,我们代码的灵活性就大大提高了。
这个函数返回的是一个连接对象。
连接完成后也要写对对应的关闭资源的代码。
而关闭资源时,我们实现增删改操作所需要关闭的资源和实现查所需要关闭的资源又不同了。
因为我们实现增删改时需要关闭连接资源和PreparedStatement资源。
而我们实现查询操作时,还要多关闭结果集(ResultSet)资源。
/* 关闭连接和Statement的操作 */ public static void closeResource(Connection conn, Statement ps) { try { if (ps != null) { ps.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } }
下面是关闭查询资源的代码
public static void closeResource(Connection conn, Statement ps,ResultSet rs) { try { if (ps != null) { ps.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (rs != null) { rs.close(); } } catch (SQLException e) { e.printStackTrace(); } }
通过函数重载来实现。
这些就是工具类。