【mysql】jdbc连接
一、回顾JDBC连接:不要写sql。先写中文约束:唯一约束默认约束非空约束主键自增idea的安装工具的概念:方便被使用的DB2AS400jdbc:jdbc的连接步骤1.加载驱动(注册驱动)—>反射—>异常2.获取连接对象connection---->url(jdbc格式)username(数据库登陆的)password(密码)3.获取执行sql的对象4.执行sql语句,并接受结果
·
一、回顾
JDBC
连接:不要写sql。先写中文
约束:唯一约束 默认约束 非空约束 主键 自增
idea的安装
工具的概念:方便 被使用的
DB2 AS400
jdbc:
jdbc的连接步骤
1.加载驱动(注册驱动)—>反射—>异常
2.获取连接对象connection ---->url(jdbc格式) username(数据库登陆的) password(密码)
3.获取执行sql的对象
4.执行sql语句,并接受结果,返回受影响行数
5.处理结果
6.释放资源(关闭连接)
核心api
jdbc的核心思想
二、jdbc的链接
基本实现jdbc连接的步骤:
// 1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.获取连接
// url:统一资源定位符 遵循jdbc的格式
// jdbc:驱动类型://本机地址:端口号/数据库的名字
// jdbc:mysql://localhost(127.0.0.1):3306/库名 ==== url
// root 用户名
// root 密码
// https://www.baidu.com/
Connection connection = DriverManager.getConnection("","","");
// 3.获取执行sql的对象
Statement statement = (Statement) connection.createStatement();
// 4.执行sql
sql: delete from t_jobs where job_id = "AC_ACCOUNT";
String sql = "delete from t_jobs where job_id = 'AC_ACCOUNT';";
int count = statement.executeUpdate(sql);
// 第二种 int count = statement.executeUpdate(“delete from t_jobs where job_id = 'AC_ACCOUNT';”);
// 5.处理结果
if (count==1){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
// 6.释放资源:开启的时候 从前往后 关闭的时候 从后往前
statement.close();
connection.close();
三、jdbc的优化实现方式——DDL
// 固定的常量 可以写成静态变量
// url 用户名 密码
// 1.定义数据库必要信息的静态变量
private static String URL = "jdbc:mysql://127.0.0.1:3306/companydb"; //数据库链接的url
private static String USER = "root"; //数据库的用户名
private static String PASSWORD = "root"; //数据库的密码
/*
* 单元测试:
* junti:在一个类里面可以执行多个方法,但是这个方法不可以有返回值类型(void),不可以进行输入,不可以存在参数。
*
* 注解:一个被封装的方法将那些特定形式的调用
* 注释:对某一段的代码进行解释,不可以执行
* 注解的写法:@Test
* alt+shiet+s+ctrl
* */
// DDL----create table drop
@Test
public void test1(){
// 先把对象进行声明的实例化 初始化链接的所有对象
Connection connection = null;
Statement statement = null;
try {
// java.sql java对执行sql语句的工具
// 2.注册数据库的驱动
Class.forName("com.mysql.jdbc.Driver");
// 3.通过驱动管理设置链接的必要信息
connection = (Connection) DriverManager.getConnection(URL,USER,PASSWORD);
// 4.创建执行sql的对象
statement = (Statement) connection.createStatement();
// 5.通过执行对象执行sql
String sql = "create table stu(id int(11) primary key,name varchar(20),sex varchar(5));";
int count = statement.executeUpdate(sql);
System.out.println("你的操作影响了"+count+"行"); //如果提示影响了0行 去数据库中刷新
} catch (Exception e) {
e.printStackTrace();
}finally {
// 6.释放资源 判断当前链接是否还继续存在
if (statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 释放连接
if (connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
四、jdbc的实现方式——DML
@Test
public void test2(){
Connection connection = null;
Statement statement = null;
try {
// 1.注册驱动
// Class.forName("com.mysql.jdbc.Driver");
// 2. 获取链接的对象
connection = (Connection) DriverManager.getConnection(URL,USER,PASSWORD);
// 3.创建执行sql的对象
statement = (Statement) connection.createStatement();
// 4.执行sql 返回结果
String sql = "insert into stu(id,name,sex) values(10,'王老五','male');";
int count = statement.executeUpdate(sql);
System.out.println("你的操作影响了"+count+"行");
} catch (Exception e) {
e.printStackTrace();
}finally {
// 关闭资源
if (statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
五、jdbc的实现方式——DQL
@Test
public void test4(){
// resultSet
Connection connection = null;
Statement statement = null;
// 迭代的过程 结果集
ResultSet resultSet = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = (Connection) DriverManager.getConnection(URL,USER,PASSWORD);
statement = (Statement) connection.createStatement();
// 执行查询全部的sql
String sql = "select * from stu;";
// 执行的方法选择查询 update query
resultSet = statement.executeQuery(sql);
// 看看结果 迭代的两种方法
// 第一种
// while(resultSet.next()){
使用列名称 一些使用过程中 会将数据表的字段写成一个类的形式
// int id =resultSet.getInt("id");
// String name = resultSet.getString("name");
// String sex = resultSet.getString("sex");
// System.out.println(id+"\t"+name+"\t"+sex+"\t");
// }
// 第二种
if (resultSet.next()){
// 使用列索引
int id = resultSet.getInt(1);
String name = resultSet.getString(2);
String sex = resultSet.getString(3);
System.out.println(id+"\t"+name+"\t"+sex+"\t");
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if (resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection!=null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
六、ResultSet结果集
结果集获取存储数据的方式:
resultSet:以表结构进行临时结果的存储,通过jdbc的API将其中数据依次获取
数据行指针:初始位置的第一行数据前,每调用一次boolean.next()方法,那么将数据结果集中的执行下移一行
rs.getXXX(整数) 代表根据数据表中列的序号进行获取(索引)
rs。getXXX(字符串) 代表数据表中列的名的进行获取(列名)
Boolean.next() //判断结果集中下一行中是否存在数据,存在返回true 不存在false
遍历方法:
getInt(XX) ** //获取当前行的第XX列的值
getInt(列名) ** //获取当前行列的值
getDouble(列) //。。
。
getString(列名) //。。
更多推荐
所有评论(0)