JDBC:从获取数据库连接到实现CRUD操作

1.JDBC概述

  1. 持久化:把数据保存到可掉电式存储设备中以供之后使用
    在这里插入图片描述

  2. JDBC是java访问数据库的基石,Hibernate、MyBatis等只是更好的封装了JDBC。

  3. JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,

在这里插入图片描述
因此需要给开发人员使用的API和数据库厂商提供的实现

  1. JDBC程序编写步骤
    在这里插入图片描述

2.获取数据库连接

  1. Driver接口
    java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。提供给数据库厂商使用的,不同数据库厂商提供不同的实现。
    而在程序中由(java.sql.DriverManager)去调用这些Driver实现类

  2. 加载与注册JDBC驱动
    加载:Class.forName(“com.mysql.jdbc.Driver”);
    注册:DriverManager.registerDriver(com.mysql.jdbc.Driver)
    ——注册可以不用显示调用,DriverManager中实现的注册

  3. URL
    JDBC URL 用于标识一个被注册的驱动程序,驱动程序管理器通过这个 URL 选择正确的驱动程序,从而建立到数据库的连接。
    在这里插入图片描述

  4. user和password连接数据库的用户名和密码

  5. 实现连接

	@Test
    public  void testConnection5() throws Exception {
   
    	//1.加载配置文件
        InputStream is = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");
        Properties pros = new Properties();
        pros.load(is);
        
        //2.读取配置信息
        String user = pros.getProperty("user");
        String password = pros.getProperty("password");
        String url = pros.getProperty("url");
        String driverClass = pros.getProperty("driverClass");

        //3.加载驱动
        Class.forName(driverClass);

        //4.获取连接
        Connection conn = DriverManager.getConnection(url,user,password);
        System.out.println(conn);

    }

jdbc.properties配置文件

user=root
password=123456
url=jdbc:mysql://localhost:3306/test
driverClass=com.mysql.jdbc.Driver

3.使用PreparedStatement实现CRUD操作

  1. 操作和访问数据库
    在这里插入图片描述
  • Statement:执行静态 SQL 语句,返回结果对象
    ——需要拼串,存在SQL注入问题
  • PrepatedStatement:预编译SQL语句,存储在对象中
    ——预编译SQL语句,防止SQL注入,编译后的代码会缓存下来
  • CallableStatement:执行SQL存储过程
    在这里插入图片描述
  1. PreparedStatement实现增、删、改操作
//通用的增、删、改操作(体现一:增、删、改 ; 体现二:针对于不同的表)
	public void update(String sql,Object ... args){
   
		Connection conn = null;
		PreparedStatement ps = null;
		try {
   
			//1.获取数据库的连接
			conn = JDBCUtils.getConnection();
			
			//2.获取PreparedStatement的实例 (或:预编译sql语句)
			ps = conn.prepareStatement(sql);
			//3.填充占位符
			for(int i = 0;i < args.length;i++){
   
				ps.setObject(i + 1, args[i]);<
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值