相关学习推荐:java基础
一、JDBC连接数据库的操作
编写时可以封装在一个类里面简化代码。
(1)加载JDBC-MySQL数据库驱动
try { Class.forName("com.mysql.cj.jdbc.Driver");}catch (Exception e){ }登录后复制
(2)连接数据库
Connection con = null;//声明要连接数据库的对象comString uri = "jdbc:mysql://localhost:3306/数据库名?useSSL=true &characterEncoding=utf-8"; //连接地址String user = "root"; //连接数据库的用户名String password = "123456"; //连接数据库的密码try { con = DriverManager.getConnection(uri,user,password); //连接代码}catch(SQLException e){ }登录后复制
(3)编写操作数据库中数据的代码
立即学习“Java免费学习笔记(深入)”;
二、查询操作
1,查询操作的具体步骤
(1)向数据库发送SQL语句:
Statement sql;try{ sql = con.createStatement();}catch (SQLException e){ }登录后复制
首先声明SQL语句对象,然后让已创建的连接对象con调用方法createStatement()创建这个SQL语句对象。
(2)处理查询结果
有了SQL语句对象后,这个对象可以调用相应的方法实现对数据库中表的各项操作,其中查询结果存放在一个ResultSet类声明的对象中。即SQL查询语句对数据库的查询操作讲放回一个ResultSet对象,ResultSet由“列”(字段)组织的数据行构成。
rs = sql.executeQuery("select * from 表的名称");//读取表中的所有列,*为通配符rs = sql.executeQuery("select 行1字段名,行2字段名... from 表的名称");//读取表中特定的列登录后复制
ResultSet对象一次只能看到一行数据,使用next()方法移到下一行。ResultSet对象可以通过getXxx(int columnIndex)获得列值和通过传递列名getXxx(String columnName)获得列值。
(3)关闭连接
con.close(); //关闭con所连接的数据库登录后复制
注意:数据库与连接对象紧密绑定,应在使用完数据库再进行关闭操作。
2,控制游标
结果集的游标的初始位置在结果集第一行的前面,结果集调用next()方法向下(后)移动游标,移动成功返回true,移动失败返回false。如果要在结果集中移动并显示若干条记录,必须返回一个滚动的结果集。方法如下:
Statement stmt = con.createStatement(int type,int concurrency);//获得一个Statement对象,根据参数的值,stmt返回相应类型的结果集:ResultSet re = stmt.executeQuery(SQL语句);type的取值:决定滚动方式: ResultSet.TYPE_FORWARD_ONLY 结果集的游标只能向下滚动 ResultSet.TYPE_SCROLL_INSENSITIVE 游标可以上下移动,数据库变化时,结果集不变 ResultSet.TYPE_SCROLL_SENSITIVE 返回可滚动的结果集,数据变化时,结果集同步改变 Concurrency取值:决定是否可以用结果集更新数据库 ResultSet.CONCUR_READ_ONLY 不能用结果集更新数据库中的表 ResultSet.CONCUR_UPDATABLE 能用结果集更新数据库中的表 滚动查询常用的ResultSet的方法:public boolean previous() 将游标向上移动,当移动到结果集第一行之前时返回falsepublic void beforeFirst() 将游标移动到结果集的初始位置,第一行之前public void afterLast() 将游标移动到结果集的最后一行之后public void first() 将游标移动到第一行public void last() 将游标移动到最后一行public boolean isAfterLast() 判断游标是否在最后一行之后public boolean isBeforeFirst() 判断游标是否在第一行游标之前public boolean isFirst() 判断游标是否指向第一行public boolean isLast() 判断游标是否指向最后一行public int getRow() 得到当前游标所指向的行号,行号从1开始,如果结果集没有行,返回0public boolean absolute(int row) 将游标移动到参数row指定的行(参数取负数即倒数)登录后复制
(3)条件与排序查询
where子语句:select 字段 from 表明 where 条件
(1)字段值与固定值比较 select * from table where name='张三'(2)字段值在某个区间 select * from table where number>5 and number<10 name!='李四' month(表面日期的字段名)<=10select second(表明时间的字段名)=36(5)用操作符like进行模式匹配,使用%代替0个或多个字符,用一个下划线_代替一个字符。> 登录后复制order by语句:可结合where语句使用
select * from table order by height select * from table where name like '%王%' order by name登录后复制三、更新、添加和删除操作
Statement对象调用public int executeUpdate(String sqlStatement);通过参数指定的方式对数据库表中的记录的更新、添加和删除操作。
(1)更新 update 表名 set 字段 = 新值 where <条件子句>(2)添加 insert into 表 values (对应具体的记录)(3)删除 delete from 表名 where <条件子句>登录后复制四、使用预处理语句
Java提供了更高效的数据库操作机制,就是PreparedStatement对象,即预处理语句对象。将SQL语句处理为数据库底层语句,再传输给数据库。
使用通配符:对SQL进行预处理时,可以用 通配符? 来代替字段的值,只要在预处理语句执行之前再设置通配符所代表的具体值即可:String str = "select * from 表名 where 字段1 < ? and 字段2 = ?";PreparedStatement sql = con.prepareStatement(str);sql.setXxx(int parameterIndex,Type x);//该方法设置?代表的值,parameterIndex代表第几个?,x代表要替换的值。登录后复制五、通用查询
编写通用查询类,用户可以将数据库名、SQL语句传递给该类的对象,那么该对象就用一个二维数组返回查询的记录。
编写通用查询类需要知道数据库表列(字段)的名字和数量。常用方法为用结果集ResultSet对象rs调用getMetaData()方法返回一个ResultSetMetaData对象:ResultSetMetaData metaData = rs.getMetaData();登录后复制然后该对象metaData调用getColumnCount()方法既可以返回rs中列的数目,调用getColumnName(int i)就可以返回结果集rs中第i列的名字。
六、事务
1,事务及处理
事务由一组SQL语句组成。所谓事务处理,是指应用程序保证事务中的SQL语句要么全部被执行,要么一个都不被执行。事务处理是保证数据库中数据完整性与一致性的重要机制。2,JDBC事务处理
用setAutoCommit(boolean b)方法关闭自动模式:
即关闭SQL语句的即刻生效性,两个相关联的操作应该在都执行完毕后才改变数据库中的数据。方法为在获取sql对象前让连接对象调用该方法:con.setAutoCommit(false);登录后复制用commit()方法处理事务:
关闭自动模式后,让sql对象提交多条SQL(即同一事务)语句,这些语句不会立即生效,而是直到连接对象调用方法后全部生效:con.commit();登录后复制用rollback()方法处理事务失败:
即撤销事务所作的操作。在con调用commit()方法进行事务处理时,只要有一个SQL语句没有执行成功,那么该事务执行失败,抛出SQLException异常。这时必须让con调用rollback()方法撤销引起数据变化的所有操作:con.rollback();登录后复制相关免费学习推荐:mysql视频教程
以上就是Java程序开发学习之JDBC与MySQL数据库的详细内容,更多请关注慧达安全导航其它相关文章!
免责 声明
1、本网站名称:慧达安全导航
2、本站永久网址:https//www.huida178.com/
3、本站所有资源来源于网友投稿和高价购买,所有资源仅对编程人员及源代码爱好者开放下载做参考和研究及学习,本站不提供任何技术服务!
4、本站所有资源的属示图片和信息不代表本站的立场!本站只是储蓄平台及搬运
5、下载者禁止在服务器和虚拟机下进行搭建运营,本站所有资源不支持联网运行!只允许调试,参考和研究!!!!
6、未经原版权作者许可禁止用于任何商业环境,任何人不得擅作它用,下载者不得用于违反国家法律,否则发生的一切法律后果自行承担!
7、为尊重作者版权,请在下载24小时内删除!请购买原版授权作品,支持你喜欢的作者,谢谢!
8.若资源侵犯了您的合法权益,请持 您的版权证书和相关原作品信息来信通知我们!QQ:1247526623我们会及时删除,给您带来的不便,我们深表歉意!
9、如下载链接失效、广告或者压缩包问题请联系站长处理
10、如果你也有好源码或者教程,可以发布到网站,分享有金币奖励和额外收入!
11、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需
12、因源码具有可复制性,一经赞助,不得以任何形式退款。
13、本文内容由网友自发贡献和站长收集,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系1247526623@qq.com
转载请注明出处: 慧达安全导航 » Java程序开发学习之JDBC与MySQL数据库
发表评论 取消回复