今日知识
1. JDBC基本概念2. 快速入门3. 对JDBC中各个接口和类详解
JDBC:
1. 概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库 * JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。2. 快速入门 *步骤: 1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar 1.复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下 2.右键-->Add As Library 2. 注册驱动 3. 获取数据库连接对象 Connection 4. 定义sql 5. 获取执行sql语句的对象 Statement 6. 执行sql,接受返回结果 7. 处理结果 8. 释放资源 * 代码实现: //1. 导入驱动jar包 //2.注册驱动 Class.forName("com.mysql.jdbc.Driver"); //3.获取数据库连接对象 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db3", "root", "root"); //4.定义sql语句 String sql = "update account set balance = 500 where id = 1"; //5.获取执行sql的对象 Statement Statement stmt = conn.createStatement(); //6.执行sql int count = stmt.executeUpdate(sql); //7.处理结果 System.out.println(count); //8.释放资源 stmt.close(); conn.close();
JDBC:封装
1. 新建文件db.properties //存放对应的键值对 driverClass=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test?characterEncoding=utf8 user=root password=123456
2. JDBCUtils编写
public class JDBCUtils { -- 获取Connection对象 public static Connection getConnection() throws Exception{ Connection connection = null; //加载Driver类 Properties properties=new Properties();//获取键值对 //获取输入流,读取文件 properties.load(new FileReader("db.properties")); String driver=properties.getProperty("driverClass"); String url=properties.getProperty("url"); String user=properties.getProperty("user"); String password=properties.getProperty("password"); //2. 注册驱动 Class.forName(driver); // 3. 获取数据库连接对象 Connection connection= DriverManager.getConnection(url,user,password); return connection; } -- 释放资源 public static void releaseResource(Connection connection, Statement statement, ResultSet resultSet){ if (connection!=null){ try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } if (statement!=null){ try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (resultSet!=null){ try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } }
}
对JDBC中各个接口和类详解
1. DriverManager:驱动管理对象 *功能 1. 注册驱动 Class.forName("com.mysql.jdbc.Driver"); 2. 获取数据库连接 Connection connection= DriverManager.getConnection(url,user,password); *参数: * URL:指定的链接的路径 *url=jdbc:mysql://localhost:3306/test?characterEncoding=utf8 * user:用户名 * password:密码2. Connection *功能: 1.获取执行SQL的对象 *PreparedStatement preparedStatement(String sql): *Statement creatStatement(); 2. 管理事务 1. 开启事务:*con.setAutoCommit(false):开启事务 2. 回滚:rollback; *在catch中回滚事务 3. 提交事务:commit;3. Statement:执行sql的对象 *功能: 1.boolean execute(String sql);//执行任意类型的sql语句 2. int executeUpdate(String sql);//执行任意类型的sql语句 执行DML(insert,update,delete),DDL(create,alter,drop) * 返回值影响行数,可以通过返回值判断DML语句是否执行成功 3. ResultSet executeQuery(String sql):DQL(select)类型4. ResultSet: * 功能 *next():游标下移一个 *st.next():判断当前行是否是最后一行 *getXxx():获取值,Xxx代表获取的值的类型 getXxx(int i):获取值 i:代表列,第i列 例如:getString(1); getXxx(String i):获取值 i:代表列的属性值 例如;getString("id");
5. PreparedStatement *功能: 使得sql执行语句分两步执行,防止用户使用sql的关键字达到非法访问数据库的目的 例如: //2.定义sql语句 String sql="insert into account values(null,?,?)"; //定义sql语句执行对象,防止注入 PreparedStatement st=con.prepareStatement(sql); //给? 赋值 st.setString(1, xxx); st.setString(2, xxx); //执行sql rs=st.executeQuery(sql);
原文地址:https://www.cnblogs.com/rqy0526/p/11067264.html
时间: 2024-11-05 19:38:58