###JDBC
- Java DataBase Connectivity:Java数据库连接,JDBC实际上就是Sun公司提供的一套和数据库交换的API(Application Program Interface应用程序编程接口)
- 为什么使用JDBC:因为Java开发语言需要连接多种数据库,为了避免Java程序员每种数据库都学习一套新的api,sun公司提出个JDBC接口,让各个数据库厂商根据JDBC接口写实现类(驱动),这样Java程序员只需要掌握JDBC接口中的方法调用即可访问任何数据库。
- 如何使用:
-
创建一个maven工程
-
从maven私服搜索mysql的驱动jar包
maven.tedu.cn 内网
maven.aliyun.com 外网 -
代码:
//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执行对象
- 好处:
- 可以避免字符串的拼接,使代码结构更为简洁,不易出错
- 可以避免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);
###元数据
-
数据库元数据
-
表元数据
###代码介绍
- 读取配置文件
- PreparedStatement
- 登录 SQL注入
- 批量操作
- 分页查询
- 事务相关
- 获取自增主键
- 球队球员练习
- 元数据
10 6500
4 12000
1.4 22000