JDBC原生方式连接数据库示例-Statement方式

    技术2024-03-23  95

     

    1、连接数据库时的配置文件

    ##数据库驱动 driver=com.mysql.jdbc.Driver ##MySQL连接信息 url=jdbc:mysql://127.0.0.1:3306/RUNOOB?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT ##用户名 username=root ##密码 password=admin0001112

    2、JDBC原生方式连接数据库工具类

    package com.wind.ssm.utils; import org.springframework.stereotype.Component; import java.io.InputStream; import java.sql.*; import java.util.Properties; /** * @Date: 2020/7/3 17:10 * @Description: 原生JDBC连接数据库 */ /** * 事务:一组操作,要么都成功,要么都失败 * ACID原则: * (1)原子性:一组操作,要么全都执行完成,要么都不完成。 * (2)一致性:这里是说最终一致性,总数保持不变。 * (3)隔离性:多个事务之间相互隔离,互不干扰(多个进程互不干扰)。 * (4)持久性:事务一旦提交之后,就持久化到数据库了,不能够再去修改。 * 隔离性的级别会带来一些问题: * (1)脏读:一个事务读取到了另一个事务还没有提交的数据 * (2)不可重复度:在同一个事务内,重复读取表中的某个数据,前后两次读取到的数据不一致(数据被更新了,是update操作)。 * (3)幻读:在一个事务内,读取到了另一个事务插入的数据,导致前后两次读出来的结果不一致(记录数增加了或者减少了,是insert或delete操作)。 */ @Component public class JdbcUtils { private static String driver = null; private static String url = null; private static String username = null; private static String password = null; static { try { InputStream inputStream = JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties"); Properties properties = new Properties(); properties.load(inputStream); driver = properties.getProperty("driver"); url = properties.getProperty("url"); username = properties.getProperty("username"); password = properties.getProperty("password"); //1.加载数据库驱动(只需要加载一次即可) Class.forName(driver); } catch (Exception e) { e.printStackTrace(); } } //2.获取数据库连接对象 public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url, username, password); } //3.释放数据库连接资源 public static void release(ResultSet resultSet, Statement statement, Connection connection) { try { if (resultSet != null && !resultSet.isClosed()) { resultSet.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (statement != null && !statement.isClosed()) { statement.close(); } } catch (SQLException e) { e.printStackTrace(); } try { if (connection != null && !connection.isClosed()) { connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } }

    3、测试

    package com.wind.ssm.java.test; import com.wind.ssm.entity.StudentEntity; import com.wind.ssm.utils.JdbcUtils; import org.springframework.stereotype.Component; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * @Date: 2020/7/3 17:39 * @Description: */ @Component public class JdbcUtilsTest { public static void main(String[] args) { Connection connection = null; Statement statement = null; ResultSet resultSet = null; try { //1.获取数据库连接 connection = JdbcUtils.getConnection(); //2.获取SQL的执行对象 statement = connection.createStatement(); //3.写SQL String insertSql = "insert into RUN_Student(Name,ClassId) values(\"上海\",1)"; String updateSql = "update RUN_Student set name = \"上海市长宁区\" where id = 15"; String deleteSql = "delete from RUN_Student where id = 15"; String querySql = "select * from RUN_Student where id in (12,13)"; //4.执行SQL,并且获取结果 //"查"使用executeQuery(),"增删改"使用executeUpdate() int insertRes = statement.executeUpdate(insertSql); int updateRes = statement.executeUpdate(updateSql); int deleteRes = statement.executeUpdate(deleteSql); resultSet = statement.executeQuery(querySql); //5.处理结果 if (insertRes > 0) { System.out.println("插入DB记录成功"); } if (updateRes > 0) { System.out.println("更新DB记录成功"); } if (deleteRes > 0) { System.out.println("删除DB记录成功"); } while (resultSet.next()) { StudentEntity entity = new StudentEntity(); entity.setId(resultSet.getInt("Id")); entity.setName(resultSet.getString("Name")); entity.setClassId(resultSet.getInt("ClassId")); entity.setStatus(resultSet.getInt("Status")); entity.setAddTime(resultSet.getDate("AddTime")); entity.setUpdateTime(resultSet.getDate("UpdateTime")); System.out.println("查询DB记录成功=entity=" + entity.toString()); } } catch (SQLException e) { e.printStackTrace(); } finally { JdbcUtils.release(resultSet, statement, connection); } } }

     

     

     

     

    Processed: 0.010, SQL: 9