一个简单程序快速入门JDBC
首先创建jdbc的库,再在这个库里面创建一张users表。
drop database if exists jdbc;
create database if not exists jdbc; use jdbc; drop table if exists users;
create table if not exists users(
id int(5),
name varchar(10),
sal double(8,2),
hire timestamp
); insert into users(id,name,sal) values(1,'张小明',1111.11);
insert into users(id,name,sal) values(2,'张明',2222.22);
insert into users(id,name,sal) values(3,'张大明',3333.33);
insert into users(id,name,sal) values(4,'刘星',4444.44);
insert into users(id,name,sal) values(5,'刘星雨',5555.55);
insert into users(id,name,sal) values(6,'李金星',6666.66);
insert into users(id,name,sal) values(7,'何小明',7777.77);
(因为一行行的插入,保证李最后一个字段时间值不一样)通过查询操作,可看到表结构如下:
新建web工程,或者javase工程。
快速入门代码详细解释如下:
package cn.ydl.j2ee.dao; /**
* SUN公司JDBC规则
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Timestamp; /**
* JDBC入门,查询users表中的所有记录,并在控制台显示
*/
public class JavaToMysql1 {
public static void main(String[] args) throws Exception{
//连接MySQL数据库服务器的字符串
//jdbc:主协议,即如果你用jdbc规则来连接数据库的话,主协议必定是jdbc
//mysql:子协议,即连接的是哪种数据库服务器,如果是mysql数据库服务器的话,必定是mysql
//127.0.0.1:数据库服务器是位于哪台PC的上,可以用ip表示,也可以用域名表示,例如:localhost
//3306:表示MySQL数据库服务器安装以PC上的端口号
//jdbc:表示需要访问MySQL数据库服务器上的哪个具体的数据库
//如果你访问的MySQL数据库服务器的本机上的话,且端口号是3306的话,可以简写成:jdbc:mysql:///jdbc
String url = "jdbc:mysql://127.0.0.1:3306/jdbc";
//进入MySQL数据库服务器的用户名
String user = "root";
//进入MySQL数据库服务器的密码,项目中密码不可以明文,必须加密
String password = "root";
//需要执行的SQL语句,建议用大写字母 ctrl+shift+x
String sql = "SELECT ID,NAME,SAL,HIRE FROM USERS"; //NO1)表面:在classpath中查询com.mysql.jdbc.Driver这个字符串对象的类,加载到JVM中
//NO1)深层:向DriverManager注册数据库驱动
Class.forName("com.mysql.jdbc.Driver"); //NO2)获取与MySQL数据库服务器的连接
Connection conn = DriverManager.getConnection(url,user,password); //NO3)创建封装SQL语句的对象
Statement stmt = conn.createStatement(); //NO4)执行SQL语句,这里我们使用查询,将结果封装到结果集
ResultSet rs = stmt.executeQuery(sql); //NO5)处理结果集,在默认情况下,指针位于结果集第一行记录之前/上
//rs.next()如果指向有记录的话,返回true;否则返回false
while(rs.next()){
//以行为单位,获取每个字段的值
int id = rs.getInt("id");
String name = rs.getString("name");
double sal = rs.getDouble("sal");
Timestamp hire = rs.getTimestamp("hire");
//显示在控制吧
System.out.println(id+"\t"+name+"\t"+sal+"\t"+hire);
} //NO6)关闭所用过的连接对象
rs.close();
stmt.close();
conn.close(); //rs和stat叫轻量级对象,即创建和销毁不耗时
//conn叫重量级对象,即创建和销毁要耗时
}
}
运行java程序。打印出了数据库中的id和name字段信息:
1 张小明
2 张明
3 张大明
4 刘星
5 刘星雨
6 李金星
7 何小明
一个简单程序快速入门JDBC的更多相关文章
- 一个简单的iBatis入门例子
一个简单的iBatis入门例子,用ORACLE和Java测试 目录结构: 1.导入iBatis和oracle驱动. 2.创建类Person.java package com.ibeats;import ...
- 使用ASP.NET 构建 Web 应用程序快速入门-8小时的免费培训视频
- Scott Hanselman的中文博客[转载] [原文发表地址] Building Web Apps with ASP.NET Jump Start - 8 Hours of FREE Trai ...
- .Net Core 跨平台:一个简单程序的多平台(windows、Linux、osx)发布
.Net Core 跨平台:一个简单程序的多平台(windows.Linux.osx)发布 .Net Core 3.0 已于2019年9月23日发布了,包含了一些新特性,具体参见Announcing ...
- 一个简单的SpringBoot入门程序
1. 使用IDEA构建Maven项目 <?xml version="1.0" encoding="UTF-8"?> <project xmln ...
- JDBC基础:JDBC快速入门,JDBC工具类,SQL注入攻击,JDBC管理事务
JDBC基础 重难点梳理 一.JDBC快速入门 1.jdbc的概念 JDBC(Java DataBase Connectivity:java数据库连接)是一种用于执行SQL语句的Java API,可以 ...
- 微信小程序初使心得【微信小程序快速入门】
摘要: 2016年推出微信小程序,时至今日,历经几个版本的更新,已形成了相对实用和稳定的服务平台.本文简单的介绍了微信小程序的入门用法,今后会继续关注和实践. 2016年推出微信小程序,时至今日,历经 ...
- 如何让一个Java新手快速入门?
问题中问到如何让java新生快速入门,既然想快速入门的话那最简单粗暴的方法就是多看视频,加上跟着视频敲代码,刚开始可能不知道是什么意思,敲得多了就慢慢知道是什么意思了. 刚开始建议在网上找那种结合自己 ...
- 在eclipse中配置一个简单的spring入门项目
spring是一个很优秀的基于Java的轻量级开源框架,为了解决企业级应用的复杂性而创建的,spring不仅可用于服务器端开发,从简单性.可测试性和松耦合性的角度,任何java应用程序都可以利用这个思 ...
- anu小程序快速入门
众所周知,微信推出小程序以来,可谓火遍大江南北,就像当前互联网兴起时,大家忙着抢域名与开私人博客一样.小程序之所以这么火,是因为微信拥有庞大的用户量,并且腾讯帮你搞定后台问题及众多功能问题(如分享,支 ...
随机推荐
- bzoj 4008: [HNOI2015]亚瑟王
Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂 亮.众所周知,亚瑟王是一 ...
- linux 下文件误删恢复
linux 下文件误删恢复 0x01 事件背景 某天晚上写代码的时候,本来想删除当前目录下一个叫xxx的文件夹 rm -rdf ./xxx/*, 结果光顾着和人说话,一不留神手贱把命令敲成了rm -r ...
- HWM、PCTFREE、PCTUSED
什么是水线(High Water Mark)? HWM通常增长的幅度为一次5个数据块,原则上HWM只会增大,不会缩小,即使将表中的数据全部删除,HWM还是为原值,由于这个特点,使HWM很象一个水库的历 ...
- jquery easyui datagrid设置行样式 不可删除某行
rowStyler: function (index,row) { if (parseInt(row.ksrs) > 0) { return 'color:red'; } }, onLoadSu ...
- 详解linux进程间通信-信号
前言:之前说看<C++ Primer >暂时搁浅一下,迷上公司大神写的代码,想要明白,主要是socket.进程间通信! 知道进程间通信:信号.信号量.管道.消息队列.共享内存(共享存储), ...
- redis锁处理并发问题
redis锁处理并发问题 redis锁处理高并发问题十分常见,使用的时候常见有几种错误,和对应的解决办法. set方式 setnx方式 setnx+getset方式 set方式 加锁:redis中se ...
- http协议无状态中的 "状态" 到底指的是什么?!
引子: 最近在好好了解http,发现对介绍http的第一句话[http协议是无状态的,无连接的]就无法理解了:无状态的[状态]到底指的是什么?! 找了很多资料不仅没有发现有一针见血正面回答这个问题的, ...
- Node.js系列文章:利用console输出日志文件
通常我们在写Node.js程序时,都习惯使用console.log打印日志信息,但这也仅限于控制台输出,有时候我们需要将信息输出到日志文件中,实际上利用console也可以达到这个目的的,今天就来简单 ...
- Ruby方法参数默认值的一个小技巧在Rails中的应用
我们需要生成一个gravatar格式的html.image标示,于是写了如下方法: def gravatar_for(user) gravatar_id = Digest::MD5::hexdiges ...
- Django中过期@cache_page中缓存的views数据
django的缓存系统中,cache_page 这个装饰器非常好用,只要添加一个装饰器就可以缓存views的响应内容,但是django没有提供过期这个views缓存数据的功能. @cache_page ...