关于JDBC的学习

一、在项目导入mysql的jar包

 

 二、连接数据库

1.在idea自带工具栏连接mysql数据库,默认数据库端口号3306;

2.创建表单等等。

三、JDBC使用

0.声明对象:

Connection conn =null;

Statement stmt =null;

Result rs =null;

1.注册驱动:

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

2.获取连接:

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/First", "root", "xiuluoA1");

3.获取数据库操作对象:    

stmt = conn.createStatement();

4.执行sql语句:

String sql = "select * from Uer_login where loginName='" + userLoginInfo.get("loginName") + "' and loginPwd='" + userLoginInfo.get("loginPwd") + "'";

(将变量拼成字符串:‘“++”’-->‘“+userLoginfo.get("loginName")+”’)(以上正好完成了sql语句的拼接,以下代码的含义是,发送sql语句给DBMS,DBMS进行编译sql)

rs=stmt.executeQuery(sql)

5.处理sql结果集

6.释放资源

-----------

JDBC所有下标都是从1开始的

四、JDBC的特性

1.jdbc的事务是自动提交的,是指只要执行任何一条DMl语句,则自动提交一次。这是jdbc默认的事务行为; 实际开发当中,通常是N条DML语句共同联合才能完成,必须保证这些DMl语句在同一个事务中同时成功或者同时失败

2.以下为事务提交:

 //1.注册驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");
//2.获取连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/First", "root", "xiuluoA1");
//3.获取预编译数据库操作对象
conn.setAutoCommit(false);//取消自动提交
······
   conn.commit();//提交事务
``````
    conn.rollback();//回滚事务,避免数据丢失

3.搜索小结

java使用事务非常简单,首先调用conn.setAutoCommit(boolean b)方法,传入一个false,这样将不会自动提交,而需要使用conn.commit()方法,手动提交事务,当然只有在确认两个步骤都没有出错的情况下,才能提交,这样才能保证整个操作的完整性,一旦出错,使用conn.rollback()方法,回滚事务,这样的话,整个事务都将不被提交。那么如何判断有没有出错呢,非常简单,执行数据库操作的方法,都会抛出java.sql.SQLException,所以需要使用try……catch语句块捕获异常,在catch块中,使用conn.rollback()回滚事务即可

       在数据库调用的javabean中conn.setAutoCommit()的功能是每执行一条SQL语句,就作为一次事务提交。但一般在项目中很有可能需要执行多条SQL语句作为一个事务。若有一个执行不成功,就会rollback();

一般来讲,大家对数据库中的表单,主要是增、删、改、查 这四个操作,如果你的程序当中,遇到一次业务逻辑需要两次或两次以上的对相同数据表的增删改操作,那么,为了数据的一致性,(或者具体说,在你的一次业务逻辑的处理过程中,其他(线程或程序或业务处理)的对相同数据的相同两次查询所得结果相同。)我们会利用数据库的事务操作,将一次业务逻辑所包含的所有操作封装在一个事务里,一次将多个操作进行提交。
而conn的setAutoCommit方法,是指,在事务当中,是否执行一条语句就自动提交一次。
想在一个事务里进行多个操作。就必然将setAutoCommit的参数设置成false,在多个操作的最后调用conn.commit()方法,进行手动提交

 

posted on 2021-09-20 10:30  比企苦  阅读(38)  评论(0编辑  收藏  举报