您的位置:首页 > 数据库 > MySQL

MySQL数据库---jdbc学习

2019-10-25 15:57 1416 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_44779847/article/details/102744733

###JDBC

  • Java DataBase Connectivity:Java数据库连接,JDBC实际上就是Sun公司提供的一套和数据库交换的API(Application Program Interface应用程序编程接口)
  • 为什么使用JDBC:因为Java开发语言需要连接多种数据库,为了避免Java程序员每种数据库都学习一套新的api,sun公司提出个JDBC接口,让各个数据库厂商根据JDBC接口写实现类(驱动),这样Java程序员只需要掌握JDBC接口中的方法调用即可访问任何数据库。
    - 如何使用:
  1. 创建一个maven工程
  2. 从maven私服搜索mysql的驱动jar包
    maven.tedu.cn 内网
    maven.aliyun.com 外网
  3. 代码:
    //1. 注册驱动
    Class.forName(“com.mysql.jdbc.Driver”);
    //2. 获取连接对象
    Connection conn =
    DriverManager.getConnection(
    “jdbc:mysql://localhost:3306/newdb3”,
    “root”, “root”);
    System.out.println(conn);
    //3. 创建SQL执行对象
    Statement stat = conn.createStatement();
    //4. 执行SQL
    String sql =
    “create table jdbct1”
    + “(id int,name varchar(10))”;
    stat.execute(sql);
    //5. 关闭连接
    conn.close();
    System.out.println(“执行完成!”);

###Statement执行SQL语句对象

  • execute() 可以执行任意SQL语句,但是推荐执行DDL(数据定义语言)
  • executeUpdate() 推荐执行增删改SQL
  • executeQuery() 执行select查询SQL语句

###数据库连接池DBCP

  • DataBaseConnectivityPool
    ###PreparedStatement
  • 预编译的SQL执行对象
  • 好处:
      可以避免字符串的拼接,使代码结构更为简洁,不易出错
    1. 可以避免SQL注入风险(因为在编译时已经把SQL逻辑锁死,不会被用户输入的内容改变逻辑)
  • 如果SQL语句中有变量则使用PreparedStatement 如果没有变量则使用Statement
    ###批量操作

###事务相关
create table jdbcaccount(id int,name varchar(10),money int);
insert into jdbcaccount values(1,‘Tom’,5000),(2,‘Jerry’,10);

  • 打开或关闭自动提交
    conn.setAutoCommit(true/false);
  • 提交
    conn.commit();
  • 回滚
    conn.rollback();

###获取自增主键的值
create table team(id int primary key auto_increment,name varchar(10));
create table player(id int primary key auto_increment,name varchar(10),team_id int);

###元数据

  • 数据库元数据

  • 表元数据

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: