JDBC入门 CRUD 代码优化 查询返回数据封装 时间处理(mysql)

JDBC实现CRUD(增删改查)

  • 什么是jdbc

JDBC:java database connectivity:java数据库连接,就是java连接数据库的技术
在这里插入图片描述

  • jdbc原理
    sun公司只是提供数据库的接口,不提供驱动,驱动由数据库厂商自己开发,然后java程序通过各个数据库厂商的驱动程序,连接到各个厂商的数据库。
DriverManager  管理jdbc驱动==由java提供
Connection: 连接(通过DriverManager产生) java连接数据库的类
Statement(PreparedStatement) :增删改查  (通过Connection产生 )把sql语句发送到数据库的对象
CallableStatement   调用数据库中的 存储过程/存储函数  (通过Connection产生 
Result :查询数据返回的结果集  (上面的Statement等产生 )查询数据

在这里插入图片描述
在这里插入图片描述

  • 实现步骤
jdbc访问数据库的具体步骤:
a.导入驱动程序jar包(需要buildpath)
b.加载具体的驱动类(Class.forName() 反射机制
/或者使用DriverManager.registerDriver()注册  注册只有mysql有)
c.与数据库建立连接,获取连接对象(DriverManager.getConnection())
d.获取发送sql语句的对象:statement 
e.创建sql语句。这个语句跟数据库中的语句完全一样
f.发送sql,执行(executeUpdate()/executeQuery())
e.处理结果集 (查询)
g.关闭连接,释放资源(statement、connection);

注:现在即使不加载具体驱动类,在DriverManager.getConnection()也会注册。b步骤可以省略

不同数据库具体驱动

数据库驱动
		   驱动jar					 具体驱动类						      连接字符串
Oracle		ojdbc-x.jar				oracle.jdbc.OracleDriver				jdbc:oracle:thin:@localhost:1521:ORCL
MySQL		mysql-connector-java-x.jar		com.mysql.jdbc.Driver					jdbc:mysql://localhost:3306/数据库实例名
SqlServer	sqljdbc-x.jar				com.microsoft.sqlserver.jdbc.SQLServerDriver		jdbc:microsoft:sqlserver:localhost:1433;databasename=数据库实例名

1、使用JDBC连接数据库进行增删改

package com.m.JDBC;

import java.sql.Connection;

import java.sql.DriverManager;
import java.sql.Statement;

import com.mysql.jdbc.Driver;

public class mysqlTest {

	public static void main(String[] args) throws Exception {
//		Class.forName("com.mysql.jdbc.Driver");
//		Driver d=new Driver();
//		DriverManager.registerDriver(d);
		
		System.out.println("驱动完成");
		String url="jdbc:mysql://localhost:3306/emp";
		String name="root";
		String pwd="000000";
		Connection conn = DriverManager.getConnection(url, name, pwd);
		if(conn!=null) {
			System.out.println("连接完成");
		}
		
		Statement statement = conn.createStatement();
//		String sql="insert into department values(205,'办公')";//增加
//		String sql="update department set id=206 where name='办公' ";//修改
		String sql="delete from department where id=205 ";//删除
		int i = statement.executeUpdate(sql);
		System.out.println("语句完成");
		if(i>0) {
			System.out.println("操作成功");
		}
		statement.close();
		conn.close();
		

	}

}


2、使用JDBC连接数据库进行查询
在这里插入图片描述

package com.m.JDBC;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class mysqlTest2 {
	public static void main(String[] args) throws Exception {
		Class.forName("com.mysql.jdbc.Driver");

		String url="jdbc:mysql://localhost:3306/emp";
		String name="root";
		String pwd="000000";
		Connection conn = DriverManager.getConnection(url, name, pwd);
		if(conn!=null) {
			System.out.println("连接完成");
		}
		
		Statement statement = conn.createStatement();

		String sql=" select * from department";//查询
		ResultSet i = statement.executeQuery(sql);
		
		while(i.next()) {
			System.out.println(i.getInt(1)+" "+i.getString(2));
		}
		
		statement.close();
		conn.close();
	}
}

JDBC代码优化

  • 使用工具类来封装JDBC
    1、使用.properties配置文件
    在这里插入图片描述
    2、创建JDBCUtils类

创建JDBCUtils 连接数据库代码

预编译对象的使用

登录小功能代码
防止产出SQL注入问题
预编译对象解决SQL注入问题:
1)使用占位符?来创建SQL语句,当创建预编译对象的时候,就提前把SQL语句发送到数据库保存(缓存)
数据库获取到该SQL语句的结构,无法再修改。
2)执行查询的时候,发送的不是SQL语句,而是占位符的值!!!

查询返回数据的封装

查询数据出来之后,现在需要把这些查询出来的数据保存下来,供其他程序使用
使用JavaBean来保存数据
在这里插入图片描述

  • 使用JavaBean来封装数据的步骤
    1、创建JavaBean的类,类名跟数据库的表的名字一样(实体类)
    2、创建private修饰的属性,属性的名字最好和数据库表字段名字一样
    3、属性类型要和数据库表字段的类型基本一样
    4、提供getter/setter方法
    5、必须提供无参构造方法
    具体实现代码

时间类型处理

在这里插入图片描述

实现代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值