JDBC ゞ 浴缸里的玫瑰 2022-02-24 15:08 178阅读 0赞 ### JDBC ### * * 一、JDBC概述 * 二、 数据库准备代码 * 三、导入驱动jar包 * 四、开发步骤 * 五、代码实现 * 六、注意事项 ## 一、JDBC概述 ## JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。JDBC是Java访问数据库的标准规范,可以为不同的关系型数据库提供统一访问,它由一组用Java语言编写的接口和类组成。 ## 二、 数据库准备代码 ## 创建mysql数据库 select \*from category; CREATE DATABASE JDBCTest; USE JDBCTest;\#使用数据库 \#创建商品表 CREATE TABLE category( id INT PRIMARY KEY AUTO\_INCREMENT, cname VARCHAR(200) ); //插入数据 INSERT INTO category(cname) VALUES(‘华为’); INSERT INTO category(cname) VALUES(‘小米’); \#查询商品列表 SELECT \*FROM category; ## 三、导入驱动jar包 ## ![导入jar包][jar] ## 四、开发步骤 ## 1、注册驱动 2、创建连接 3、创建SQL语句对象 4、创建SQL语句 5、执行SQL语句 6、处理执行结果 7、关闭资源 ## 五、代码实现 ## (1)创建JDBCUtils工具类(使用的配置文件) 代码如下: import java.io.InputStream; import java.sql.*; import java.util.Properties; public class JDBCUtils { private static String url; private static String user; private static String password; private static String className; //私有方法 防止类创建对象和方法 只能调用写好的方法 private JDBCUtils(){} static { try { init(); //注册驱动 Class.forName(className); } catch (Exception e) { e.printStackTrace(); } } private static void init() throws IOException { Properties p=new Properties(); InputStream in = JDBCUtils.class.getClassLoader().getResourceAsStream("configJDBC.properties"); p.load(in); in.close(); className=p.getProperty("className"); url = p.getProperty("url"); user=p.getProperty("user"); password=p.getProperty("password"); } public static Connection getConnection() { //创建连接 Connection con = null; try { con = DriverManager.getConnection(url,user,password); return con; } catch (Exception e) { throw new RuntimeException("连接失败"+e); } } public static void close(ResultSet rs, Statement stat, Connection con){ try { if(rs!=null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } try { if(stat!=null) stat.close(); } catch (SQLException e) { e.printStackTrace(); } try { if(con!=null) con.close(); } catch (SQLException e) { e.printStackTrace(); } } } (2)测试工具类 代码如下: import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; public class Test\_JDBCUtils \{ public static void main(String\[\] args) \{ methodInsert(); methodSelect(); \} private static void methodInsert() { //创建连接 Connection con = JDBCUtils.getConnection(); Statement stat=null; try{ //获取SQL对象 stat=con.createStatement(); //执行SQL语句并处理结果 String sql="insert into category(cname) values('三星')"; int row = stat.executeUpdate(sql); //打印影响的行数 System.out.println(row); } catch (Exception e){ e.printStackTrace(); }finally { JDBCUtils.close(null,stat,con); } } private static void methodSelect() { //创建连接 Connection con = JDBCUtils.getConnection(); Statement stat=null; ResultSet rs=null; try{ //获取SQL对象 stat=con.createStatement(); //执行SQL语句并处理结果 String sql="select *from category"; rs = stat.executeQuery(sql); while(rs.next()){ int id=rs.getInt("id"); String cname=rs.getString("cname"); System.out.println(id+" "+cname); } } catch (Exception e){ e.printStackTrace(); }finally { JDBCUtils.close(rs,stat,con); } } \} (3)配置文件 注意配置文件一定要放在src文件夹下,不然会造成空指针异常NullPoninterException 代码如下: url=jdbc:mysql://localhost:3306/jdbctest user=root password=root className=com.mysql.jdbc.Driver ## 六、注意事项 ## 常见的错误: 1.JDBCUtils 类里面的方法私有private导致测试类无法获取该方法 2.私有构造方法 不让任何人创建对象 所有方法静态 类名直接调用 private JDBCUtils() \{ \} 3. 配置文件一定要放在src文件夹下,不然会造成空指针异常NullPoninterException 4. 返回的数据的类型要和数据库列名类型一致 不然会出现异常java.sql.SQLException: Invalid value for getInt() String sql=“select \*from category”; //1 ResultSet rs=stat.executeQuery(sql); //2 int id=rs.getInt(“id”); //3 String cname=rs.getString(“cname”); //4 5.url的路径一定要写对 url=jdbc:mysql://localhost:3306/jdbctest 不然会出现异常 Exception in thread “main” java.lang.RuntimeException: 连接失败com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database ‘jdbctest1’ 6.使用Properties获取配置文件 java.util.Properties 继承于Hashtable ,来表示一个持久的属性集。它使用键值结构存储数据,每个键及其对应值都是一个字符串。该类也被许多Java类使用,比如获取系统属性时,System.getProperties 方法就是返回一个Properties对象。 构造方法 * public Properties() :创建一个空的属性列表。 基本的存储方法 * public Object setProperty(String key, String value) : 保存一对属性。 * public String getProperty(String key) :使用此属性列表中指定的键搜索属性值。 * public Set stringPropertyNames() :所有键的名称的集合。 例如 Properties p=new Properties(); InputStream in = JDBCUtils.class.getClassLoader().getResourceAsStream(“configJDBC.properties”); p.load(in); in.close(); [jar]: /images/20220224/f4af5b6d498c4450ab9e5ab60e28c2f3.png
相关 jdbc教程_JDBC教程 jdbc教程 Welcome to JDBC tutorial. Java DataBase Connectivity (JDBC) is one of the most w 今天药忘吃喽~/ 2023年02月28日 05:59/ 0 赞/ 21 阅读
相关 jdbc 1.Jbdc 1.1 DriverManager java.sql 类 DriverManager java.lang.Object java.sql 我就是我/ 2022年06月11日 06:58/ 0 赞/ 141 阅读
相关 JDBC 1. JDBC(Java数据库连接)概念: 是用于执行SQL语句的API,可以为多种关系数据库提供统一访问,由一组Java语言编写的类和接口组成。 JDBC为工具/数据库 喜欢ヅ旅行/ 2022年06月07日 12:23/ 0 赞/ 253 阅读
相关 JDBC JAVA 访问数据库的技术: Jdbc是一种Java连接数据库技术(Java database connectity), 它是 Java 提供的一些接口,这些接口大部分是数据 桃扇骨/ 2022年05月22日 04:35/ 0 赞/ 135 阅读
相关 JDBC 所需jar包 oracle:ojdbc6.jar(在oracle数据库文件夹下的jdbc/lib下能找到) mysql:mysql-connector-java-5.1 向右看齐/ 2022年04月08日 10:59/ 0 赞/ 114 阅读
相关 JDBC [https://www.cnblogs.com/centor/p/6142775.html][https_www.cnblogs.com_centor_p_6142775.h 女爷i/ 2022年01月31日 05:45/ 0 赞/ 397 阅读
相关 JDBC [JDBC][] JDBC:JAVA DATA BASE CONNECTIVITY 1、SQL语言: (1) 数据定义语言:create、alter、drop (2) 喜欢ヅ旅行/ 2021年12月19日 16:25/ 0 赞/ 219 阅读
相关 JDBC 目录 一、JDBC架构 二、数据库连接 三、常用接口 四、事务 五、SQL注入 -------------------- 一、JDBC架构 JDBC有双层架 拼搏现实的明天。/ 2021年11月10日 07:31/ 0 赞/ 313 阅读
相关 JDBC import java.security.Provider; import java.sql.DatabaseMetaData; import java 小鱼儿/ 2021年09月11日 07:46/ 0 赞/ 279 阅读
还没有评论,来说两句吧...