java mysql数据库编程_java JDBC数据库(mysql)编程

什么是JDBC

• JDBC(Java Data Base Connectivity,Java数据库连接)

• 是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问

• 它由一组用Java语言编写的类和接口组成

JDBC访问数据库步骤

• 1:加载一个Driver驱动

要通过JDBC与数据库连接,先要加载JDBC驱动Driver,这个要想导入一个mysql-connector-java.jar包;各版本

不同的JDK版本可能对应不同的jar包,如果不行可以换一个jar包试一下;具体不同的编辑器导入jar包的方式可能不一样,所以导入包的方式不懂的话可以到网上搜一下;

java加载mysql数据库Driver驱动的形式:

5.XXX之前版本: Class.forName("com.mysql.JDBC.Driver");

6.XXX版本之后的就是    Class.forName("com.mysql.cj.JDBC.Driver")

• 2:创建数据库连接(Connection)

与数据库建立连接的方法是调用DriverManager.getConnection(String url, String user, String password )方法

• Connection conn=null;

• String url="jdbc:mysql://localhost:3306/login";  // 格式是 "jdbc:mysql://IP地址:端口号/数据库名称"

• String user=“root";  //用户名

• String password=“7820170";  //密码

• conn = DriverManager.getConnection(url, user, password);  //建立连接

• 3 :创建SQL命令发送器Statement对象

有三种 Statement对象:

• Statement:用于执行不带参数的简单SQL语句;(这个对象要直接传一个字符串来操作数据库,虽然可以拼接字符串,但不方便,还有sql注入的危险;)

String sql="select * from user where id=1";//创建sql语句

Statement stmt=conn.createStatement();//创建Statement对象

stmt.execute(sql);//发送sql语句,对于发送还有其他的方法,有不同的功能,后面再讲

• PreparedStatement(从 Statement 继承):用于执行带或不带参数的预编译SQL语句;(这个对象可以,通过传参数的方式来完成sql语句的编写,比较方便和安全,但这个SQL语句要预编译,对于操作大量SQL语句不合适,如果需要操作大量SQL语句还是使用Statement比较好)

String sql="insert into students (name,age,school) values (?,?,?)";//?表示占位符

PreparedStatement ps =conn.prepareStatement(sql);//因为 PerparedStatement 中的 SQL 语句数据库需要进行预编译和缓存,

因此要在创建 PerparedStatement 对象时给出 SQL 语句

ps.setString(1, "hhh");//传参数,从1开始,而不是从0开始

ps.setString(2, "18");

ps.setString(3, "广财");

System.out.println("成功插入一条信息");

ps.execute();//提交

• CallableStatement(从PreparedStatement 继承):用于执行数据库存储过程的调用。

这个暂时不清楚,就不写了

• 4:通过Statement发送SQL命令并得到结果

ResultSetexecuteQuery(String sql); 执行SQL查询,并返回ResultSet 对象。intexecuteUpdate(String sql); 可执行增,删,改,返回执行受到影响的行数。booleanexecute(String sql); 可执行任何SQL语句,返回一个布尔值,表示是否返回ResultSet 。

• 5:处理结果(select语句)

返回的RsultSet如何遍历:

ResultSet rs=ps.executeQuery();//返回的是一个迭代对象while(rs.next()) {//判断是否还有可以迭代的对象

System.out.println(rs.getInt(1)+"---"+rs.getString(2)+"---"+rs.getInt(3));//getInt(1)返回第一列的int行的数据,如果数据类型不对会报错当然也可以直接传第一列的名称,比如:getInt("id");

}

• 6:关闭数据库资源

• 作为一种好的编程风格,应在不需要Statement对象和Connection对象时显式地关闭它们。关闭Statement对象和Connection对象的语法形式为:

• public void close() throws SQLException

• 用户不必关闭ResultSet。当它的 Statement 关闭、重新执行或用于从多结果序列中获取下一个结果时,该ResultSet将被自动关闭。

• 注意:要按先ResultSet结果集,后Statement,最后Connection的顺序关闭资源,因为Statement和ResultSet是需要连接是才可以使用的,所以在使用结束之后有可能其他的Statement还需要连接,所以不能先关闭Connection。

try{

rs.close();

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}try{

ps.close();

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}try{

conn.close();

}catch(SQLException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244454.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python数据分析包pandas_Python 数据分析包:pandas 基础

pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包 类似于 Numpy 的核心是 ndarray,pandas 也是围绕着 Series 和 DataFrame 两个核心数据结构展开的 。Series 和 DataFrame 分别对应于一维的序列和二维的表结构。pandas 约定俗成的导入方法如下&…

mysql 查询分析器中使用if_查询分析器中开发代码测试检查_MySQL

如果您像我一样,则可能已经花费了很多时间在查询分析器中开发代码。在您对代码感到满意之后,可以立即对开发服务器上的测试数据库运行一个或两个专设 测试。如果看起来没有什么问题,您便可以将代码投入生产。如果这是一段关键代码&#xff0c…

python文本清洗_【python】TXT文本数据清洗和英文分词、词性标注

删除空白行def clean_line (raw_file_name save_file_name):张开(raw_file_name, r )作为f_r,开放(save_file_name, w ) f_w: f_r_list 列表(设置(f()))在f_r_list句子:如果句子 \u201C\\ n\u201D: f_r_(句子)f (f_r_list)阅读文本的每一行作为一个列表,然后使用一组集合来删除…

centeros6.8 mysql_centeros7安装mysql8,以及设置root密码

2.点击下载后,在下载页面选择操作系统3.点击下载rpm文件,拿到这个下载链接4.移除mariadb数据库yum remove mariadb-libs.x86_645.进入到/tmp目录使用wget下载wget https://repo.mysql.com//mysql80-community-release-el7-2.noarch.rpm6.安装mysql的源yu…

mysql 中文字段名_MySQL全文索引怎么做?| 教程分享

- 点击上方“爱数据学习社”关注我们吧! -文末领取【商业分析资料】为什么要用全文索引我们在用一个东西前,得知道为什么要用它,使用全文索引无非有以下原因:like查询太慢、json字段查询太慢(车太慢了)没时间引入ElasticSearch、S…

centos php mysql 5.6 安装_centos 6.8 yum安装 PHP 5.6

1.检查当前安装的PHP包。yum list installed | grep php2.如果有安装的PHP包,先删除他们。先复制到文本中,编辑成一行,在执行。yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64php-mbstring.x86_64 p…

leftjoin多个on条件_MYSQL|为什么LEFT JOIN会这么慢?

之前谈了怎样后台导出SAP序时账,因为导出的序时账数据量较大(3家主体公司,2017-2020年的数据),用了数据库MYSQL中的LEFT JOIN 来处理连接多表汇总数据,查询太慢啦,后来沦落到用手工分年来汇总数据,然后再导…

python 画布包括不了全部组件?_试验程序:画布版九键琴

近期有读者询问如何制作出滑动琴键连续发出声音的程序,他尝试用一排按钮充当琴键,但每次滑动只能触发一个按钮的点击事件,因此也只能发出一个声音。我提示他用画布替代按钮,他希望给予更具体的提示,于是我索性自己做了…

c 子类对象 访问父类对象受保护成员_06-JavaSe面向对象

一.static1.它是一种修饰符2.使用位置:它用来修饰成员变量和成员方法static修饰成员变量,叫类变量;static修饰成员方法,叫类方法;类成员类变量类方法没有使用static修饰成员变量,叫实例变量;没有…

keil中断函数的写法_在 KeilC里,中断子程序与函数有何不同?( )_学小易找答案

【单选题】8051单片机共有( )个中断优先级【单选题】对定时器 0 进行关中断操作,需要复位中断允许控制寄存器的: ( )【多选题】真理向谬误转化的原因,主要在于( )【多选题】“批判的武器当然不能代替武器的批判,物质的力量只能用物质的力量来摧毁,理论一经群众掌握,也会变成物质…

c++ stack 遍历_C/C++内存分配!

一、预备知识—程序的内存分配一个由c/C编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)…

python读取oracle数据到hvie parquet_关于sparksql操作hive,读取本地csv文件并以parquet的形式装入hive中...

说明:spark版本:2.2.0hive版本:1.2.1需求: 有本地csv格式的一个文件,格式为${当天日期}visit.txt,例如20180707visit.txt,现在需要将其通过spark-sql程序实现将该文件读取并以parquet的格式通过外部表的形式…

el-date-picker设置默认日期_程序员必备:Java 日期处理的十个坑

前言整理了Java日期处理的十个坑,希望对大家有帮助。一、用Calendar设置时间的坑反例:Calendar c Calendar.getInstance();c.set(Calendar.HOUR, 10);System.out.println(c.getTime());运行结果:Thu Mar 26 22:28:05 GMT08:00 2020解析&…

scope python_Python标准库Scope

作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明。谢谢!1 模块简介你一定在很多计算机科学课程上听说过作用域。它很重要,如果你不理解它的工作原理,那么就会出现一些令人…

java命令_JAVA与模式之命令模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述命令(Command)模式的:命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化&#xf…

android 16进制 全透明_你有几种实现方案Android 设备唯一标识?

前言项目开发中,多少会遇到这种需求:获得设备唯一标识DeviceId,用于:1.标识一个唯一的设备,做数据精准下发或者数据统计分析;2.账号与设备绑定;3.....分析这类文章,网上有许多资料&a…

链表的数据域怎么使用结构体_一步一步教你从零开始写C语言链表

为什么要学习链表?链表主要有以下几大特性:1、解决数组无法存储多种数据类型的问题。2、解决数组中,元素个数无法改变的限制(C99的变长数组,C也有变长数组可以实现)。3、数组移动元素的过程中,要对元素进行大范围的移动…

python计算bmi_Python编程语言:如何用Python编程来判断体重指数BMI是否健康

上一篇小编分享了自己学习Python语言有关字符串和模块time使用的相关知识,这一篇小编分享给大家的是比较有趣的运用,那就是如何用Python编程来表示自己体重BMI。 用Python程序来算出我们自己的BMI指数,来判断我们自己的健康情况,首…

drbd实现mysql地热备_heartheartbeat+drbd+mysql主库热备

1 环境主机名网卡磁盘mastereth0 桥接模式 eth0(192.168.1.10) 自定义模式(VMnet2)(192.168.2.10)VIP 192.168.1.200/210系统盘20G外接磁盘slaveeth0 桥接模式(192.168.1.20) eth1 自定义模式(VMnet2)(192.168.2.20)VIP 192.168.1.200/210系统盘20G外接磁盘server3eth0 桥接模式…

dba的前景_运维、测试、程序员,这些技术岗位哪个更有前景?

在一个初具规模的互联网公司,从业务方面出发,有很多岗位类型,比如运营、客服、市场、产品、设计、技术等等。在这些大类下面,还要细分各种小类,以技术为例,可分为前端(客户端)、后端、测试、运维、DBA等等&…