JDBC的连接

  JDBC Java Database connectivity

  Java数据库连接规范(一套接口) Sun公司提供的

  四个核心类 

  DriverManager 创建连接

  Connection 连接类

  Statement 执行sql语句

  ResultSet 结果集

  

  JDBC连接步骤

  1.注册驱动

  2.获取连接 Connection

  3.获取sql语句的执行对象 Statement

  4.执行sql语句 返回结果集 ResultSet

  5.处理结果集

  6.关闭资源


1.注册驱动

//这种注册方式相当于注册了两遍

//Driver类内部的静态代码块 已经注册了一遍

//DriverManager.registerDriver(new Driver());

//注册驱动

//直接把该类加载内存当中 参数是全限定类名 包名+类名

Class.forName("com.mysql.jdbc.Driver");


2.获取连接

//获取连接对象方式一

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/myjdbc","root", "123456");

//获取连接的方式二

Properties info = new Properties();

//添加用户名,密码

info.setProperty("user","root");

info.setProperty("password","123456");

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/myjdbc", info);

//获取连接方式三 相当于使用了一个get请求 携带参数,访问链接

String url = "jdbc:mysql://localhost:3306/myjdbc?user=root&password=123456";

Connection conn = DriverManager.getConnection(url);

3.获取执行sql语句的对象

Statement statement = conn.createStatement();

4.执行sql语句 返回结果集

//字段查询语句结果集中添加的索引要和查询语句中的字段对应

String sql = "select * from users";

ResultSet resultset = statement.executeQuery(sql);

5.处理结果集

//循环遍历结果集 输出结果

//有记录 next()方法 返回true 反之

while(resultset.next()){

//打印数据

//注意:查询数据库时,索引从1开始

System.out.println(resultset.getObject(1));

System.out.println(resultset.getObject(2));

}

6.关闭资源

resultset.close();

statement.close();

conn.close();

增删改查

@Test

public void testInsert() throws Exception {

Class.forName("com.mysql.jdbc.Driver");

String url = "jdbc:mysql://localhost:3306/myjdbc?user=root&password=123456";

Connection connection = DriverManager.getConnection(url);

Statement statement = connection.createStatement();

String sql = "insert into users values(5, 'jianzhong', '123123', '123123@qq.com', '2018-03-22')";

int row = statement.executeUpdate(sql);

System.out.println(row);

if (row > 0) {

System.out.println("插入成功");

}

statement.close();

connection.close();

}


@Test

public void testUpdate() throws Exception {

Class.forName("com.mysql.jdbc.Driver");

String url = "jdbc:mysql://localhost:3306/myjdbc?user=root&password=123456";

Connection connection = DriverManager.getConnection(url);

Statement statement = connection.createStatement();

String sql = "update users set name='xuesheng'";

int row = statement.executeUpdate(sql);

System.out.println(row);

if (row > 0) {

System.out.println("更新成功");

}

statement.close();

connection.close();

}


@Test

public void testSelect() throws Exception {

Class.forName("com.mysql.jdbc.Driver");

String url = "jdbc:mysql://localhost:3306/myjdbc?user=root&password=123456";

Connection connection = DriverManager.getConnection(url);

Statement statement = connection.createStatement();

// 查询

String sql = "select id, name, email from users";

ResultSet resultSet = statement.executeQuery(sql);

// 处理结果集 while (resultSet.next()) {

// 可以直接填字段名称

system.out.print(resultSet.getObject("id") + " ");

System.out.print(resultSet.getObject("name") + " ");

System.out.println(resultSet.getObject("email") + " ");

}

resultSet.close();

statement.close();

connection.close();

}


@Test

public void testDelete() throws Exception {

Class.forName("com.mysql.jdbc.Driver");

String url = "jdbc:mysql://localhost:3306/myjdbc?user=root&password=123456";

Connection connection = DriverManager.getConnection(url);

Statement statement = connection.createStatement();

String sql = "delete from users where id=5";

int row = statement.executeUpdate(sql);

System.out.println(row);

if (row > 0) {

System.out.println("删除成功");

}

statement.close();

connection.close();


连接数据库的异常处理

public class DemoException {


public static void main(String[] args) {
Connection conn = null;
Statement stat = null;
ResultSet resu = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/myjdbc";
conn = DriverManager.getConnection(url,"root","123456");
stat = conn.createStatement();
String sql = "select * from users";
resu = stat.executeQuery(sql);
//处理结果集(把数据的记录封装到对象中)
//把对象保存到数组当中并遍历打印
List<User> u = new ArrayList<>();
while(resu.next()){
//创建对象
User user = new User();
user.setId(resu.getInt("id"));
user.setName(resu.getString("name"));
user.setPassword(resu.getString("password"));
user.setEmail(resu.getString("email"));
user.setBrithday(resu.getDate("brithday"));
//放入集合中
u.add(user);
}
//遍历查看
for(User user:u){
System.out.println(user);
}

} catch (ClassNotFoundException e) {
//停止程序
throw new RuntimeException("驱动加载失败");
}catch(SQLException e){
throw new RuntimeException("");
}finally{
//关闭资源前要做非空判断,防止空指针出现
if(resu != null){
try{
resu.close();
}catch(SQLException e){
throw new RuntimeException("关闭失败");
}
//加快系统回收的速度
resu = null;
}
if(stat != null){
try{
stat.close();
}catch(SQLException e){
throw new RuntimeException("关闭失败");
}
//加快系统回收的速度
stat = null;
}
if(conn != null){
try{
conn.close();
}catch(SQLException e){
throw new RuntimeException("关闭失败");
}
//加快系统回收的速度
conn = null;
}

}

}
}


JDBC工具类

public class JDBCUtil {

private static String driverClass;

private static String url;

private static String user;

private static String password;

static{

//使用系统类来读取配置文件

ResourceBundle rb = ResourceBundle.getBundle("dbinfo");

//获取文件中的数据

driverClass = rb.getString("driverClass");

url = rb.getString("url");

user = rb.getString("user");

password = rb.getString("password");

}

    //使用静态代码块加载驱动 读取配置文件

// static{

// Properties properties = new Properties();

// try{

// FileInputStream fis = new FileInputStream("sre/dbinfo.properties");

// properties.load(fis);

// //读文件

// driverClass = properties.getProperty("driverClass");

// url = properties.getProperty("url");

// user = properties.getProperty("user");

// password = properties.getProperty("password");

// }catch(Exception e){

//

// }

// //获取数据库连接的方法

//        try{

//        Class.forName(driverClass);

//        }catch(Exception e){

//        

//        }

// }

// 获取数据库连接方法

public static Connection getConnection() throws ClassNotFoundException, SQLException {

  return DriverManager.getConnection(url, user, password);

}

//关闭数据库的方法

public static void closeAll(ResultSet resultSet,Statement statement,Connection connection){

//关闭资源前要做非空判断,防止空指针出现

if(resultSet != null){

try{

resultSet.close();

}catch(SQLException e){

throw new RuntimeException("关闭失败");

}

//加快系统回收的速度

resultSet = null;

}

if(statement != null){

try{

statement.close();

}catch(SQLException e){

throw new RuntimeException("关闭失败");

}

//加快系统回收的速度

statement = null;

}

if(connection != null){

try{

connection.close();

}catch(SQLException e){

throw new RuntimeException("关闭失败");

}

//加快系统回收的速度

connection = null;

}

}


}




















 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 内容概要 《计算机试卷1》是一份综合性的计算机基础和应用测试卷,涵盖了计算机硬件、软件、操作系统、网络、多媒体技术等多个领域的知识点。试卷包括单选题和操作应用两大类,单选题部分测试学生对计算机基础知识的掌握,操作应用部分则评估学生对计算机应用软件的实际操作能力。 ### 适用人群 本试卷适用于: - 计算机专业或信息技术相关专业的学生,用于课程学习或考试复习。 - 准备计算机等级考试或职业资格认证的人士,作为实战演练材料。 - 对计算机操作有兴趣的自学者,用于提升个人计算机应用技能。 - 计算机基础教育工作者,作为教学资源或出题参考。 ### 使用场景及目标 1. **学习评估**:作为学校或教育机构对学生计算机基础知识和应用技能的评估工具。 2. **自学测试**:供个人自学者检验自己对计算机知识的掌握程度和操作熟练度。 3. **职业发展**:帮助职场人士通过实际操作练习,提升计算机应用能力,增强工作竞争力。 4. **教学资源**:教师可以用于课堂教学,作为教学内容的补充或学生的课后练习。 5. **竞赛准备**:适合准备计算机相关竞赛的学生,作为强化训练和技能检测的材料。 试卷的目标是通过系统性的题目设计,帮助学生全面复习和巩固计算机基础知识,同时通过实际操作题目,提高学生解决实际问题的能力。通过本试卷的学习与练习,学生将能够更加深入地理解计算机的工作原理,掌握常用软件的使用方法,为未来的学术或职业生涯打下坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值