栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA—JDBC

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA—JDBC

文章目录
    • JDBC 介绍
    • 几个重要的类
    • 主要步骤
    • 创建表
    • 创建项目
    • 编写JDBC工具类
    • 具体操作

JDBC 介绍

  这就要用到sun公司设定的一套数据库标准了,这套标准就是JDBC(Java Database Connectivity)。但它只是规范,不做具体实现。通过提供DriverManager、Connection、Statement、ResultSet等接口将开发人员与数据库提供商隔离,开发人员只需要面对JDBC接口,无需关心怎么跟数据库交互。

public interface Connection extends Wrapper, AutoCloseable {}

public interface Statement extends Wrapper, AutoCloseable {}

public interface PreparedStatement extends Statement {}

public interface CallableStatement extends PreparedStatement {}

public interface ResultSet extends Wrapper, AutoCloseable {}

几个重要的类
类名作用
DriverManager驱动管理器,用于注册驱动,是获取Connection对象的入口
Driver数据驱动,用于注册驱动,是获取Connection对象的入口
DriverManager驱动管理器,用于获取Connection对象
Connection数据库连接,用于获取Statement对象、管理事务
StatementSQL执行器,用于执行SQL
ResultSet结果集,用于封装和操作查询结果
prepareCall用于调用存储过程

使用中的注意事项

  • 记得释放资源,另外ResultSet和Statement的关闭都不会导致Connection的关闭。
  • 需要引入MySQL或者Oracle的驱动包,要把jar包安装在本地(即本项目中)
  • 使用PreparedStatement而不是Statement。可以避免SQL注入,并且利用预编译的特点可以提高效率。
主要步骤

 一个完整的JDBC保存操作主要包含一下步骤:

  1. 注册驱动;
  2. 通过DriverManager获取Connection对象;
  3. 开启事务;
  4. 通过Connection获取PreparedStatement对象;
  5. 设置PreparedStatement的参数;
  6. 执行保存操作;
  7. 保存成功提交事务,保存失败回滚事务;
  8. 释放资源,包括Connection、PreparedStatement、ResultSet。
创建表
drop table if exists `student`;
create table `student`(
`id` varchar(4) not null,
`NAME` varchar(20) default null comment '学生姓名',
`sex` char(2) default null comment '性别;0-代表女,1-代表男',
`birthday` date default null comment '出生日期',
`salary` decimal(7,2) default null comment '薪资',
primary key (`id`)
)engine = innodb default charset= utf8;
创建项目

编写JDBC工具类
public class JdbcUtil{
	//路径
	private static final URL= "jdbc:mysql://localhost:3306/test?characterEncoding=utf8 & serverTimezone=Asia/Shanghai&useSSL=false";
	#这里指定字符编码,时区
	//数据库用户名
	private static final USER = "root";
	//数据库密码
	private static final PASSWORD = "root";
	//数据库连接
	public static Connection con = null;
	//SQL执行器
	public static PreparedStatement st = null;
	//结果集
	public static ResultSet rs = null;

	

	public static Connection getConnection(){
		try{
			// 注册驱动
			Class.forName("com.mysql.jdbc.Driver");
			// 数据库连接
			con = DriverManager.getConnection(URL,USER,PASSWORD);
		} catch (Exception e){
			 e.printStackTrace();
		}
		return con;
	}
	
	// 释放资源
	public static void getClose(){
		if (rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (st != null){
            try {
                st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (con != null){
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
	}
}
具体操作
private  void Login(String name, String password) {
   try {
       Connection con = JdbcUtils.getConnection();
       String sql = "select username,password from tb_user where username = ? and password = ?";
       PreparedStatement st = con.prepareStatement(sql);
       st.setString(1, name);
       st.setString(2, password);
       ResultSet rs = st.executeQuery();
       if (rs.next()) {
           System.out.println("登录成功:" + name + " 欢迎你");
       } else {
           System.out.println("登录失败");

       }
   } catch (SQLException e) {
       e.printStackTrace();
   } finally {
       //释放资源
       JdbcUtils.getClose();
   }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/434307.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号